MPI实现(OpenMPI,MPICH)如何处理安全性/身份验证

Juk*_*ela 7 security mpi openmpi mpich

当我通过TCP/IP套接字在进程之间发送MPI消息时,OpenMPI和MPICH如何处理安全性?

特别是,它们如何阻止同一网络的其他用户连接到侦听套接字并发送伪MPI消息?

具体方案如下:

  • 管理员是值得信赖的.不受信任的用户无法对任何硬件或网络进行物理访问.不受信任的用户没有root访问权限.
  • 但是,不受信任的用户可以在群集中运行自己的程序; 群集节点是典型的Linux机箱.特别是,不受信任的用户可以打开从任何计算机到群集中任何其他计算机的TCP连接,并发送任意消息.

Jon*_*rsi 7

J Teller的权利; MPI并没有真正做到这一点,它不应该这样做.这是基于MPI用例的设计决策.

MPI用户是那些为亚微秒延迟的互连支付大量资金的人.某种加密签名消息的开销对于这个社区来说是完全不可接受的.

无论如何它都无济于事.MPI的使用方式是作为受控环境中的消息传输接口 - 受限访问集群中的节点,或者计算实验室中的计算机.如果恶意用户获得对这些节点之一的足够控制以干扰MPI通信,则有更容易的方法来破坏通信而不是嗅探数据包,计算出正在进行的计算的哪个阶段,以及做某种类型的man-in-中间的攻击.可以只改变正在运行的作业的内存,或者更容易,只是覆盖共享文件系统上的结果.(注意简单地发送伪造的MPI消息可能会被注意到,因为"真实"消息会堆积起来,使用资源并可能使作业崩溃;类似地,拦截消息而不中继它们几乎肯定会导致死锁).

当然,这些论点并不适用于分布式计算,比如BOINC风格:但MPI并不适合这种用途.

当然,没有任何东西可以阻止具有这种安全性要求的MPI用户简单地将pgp样式的签名与每条消息一起发送并将其合并到他们的代码中; 但是这样做的机制本身并不是MPI的一部分,这当然是正确的决定.