J Teller's right; MPI realmente no hace esto, y no debería. Esa es una decisión de diseño basada en el caso de uso de MPI.
Los usuarios de MPI son el tipo de personas que pagan mucho dinero por interconexiones con latencia de sub microsegundos. La sobrecarga de algún tipo de firma criptográfica de mensajes sería completamente inaceptable para esta comunidad.
Y realmente no ayudaría en absoluto. La forma en que se utiliza MPI es como una interfaz de transporte de mensajes dentro de un entorno controlado: nodos en un clúster de acceso limitado o quizás máquinas en un laboratorio de cómputo. Si un usuario malintencionado obtiene el control suficiente de uno de estos nodos para interferir con las comunicaciones MPI, existen formas mucho más sencillas de interrumpir la comunicación que olfatear paquetes, averiguar qué etapa del cálculo está en marcha y realizar algún tipo de intervención el ataque medio. Uno podría simplemente alterar la memoria del trabajo en ejecución, o más fácilmente, simplemente sobrescribir los resultados en el sistema de archivos compartidos. (Se notará simplemente el envío de mensajes MPI falsificados, ya que los mensajes "reales" se acumularían, utilizando recursos y posiblemente bloqueando el trabajo; de manera similar, interceptar mensajes sin transmitirlos casi con seguridad provocaría un punto muerto).
Estos argumentos no se aplican tan fuertemente a la computación distribuida, por supuesto, dicen estilo BOINC: pero MPI no es muy adecuado para ese tipo de uso de todos modos.
Por supuesto, nada detiene a un usuario de MPI que tiene este tipo de requisito de seguridad simplemente enviando una firma de estilo pgp junto con cada mensaje e incorporando eso en su código; pero un mecanismo para hacerlo no es parte de MPI per se, y esa es ciertamente la decisión correcta.
Gracias por la respuesta, pero ¿leyó el escenario específico que tuve en la pregunta? * "Uno podría simplemente alterar la memoria del trabajo en ejecución, o más fácilmente, simplemente sobrescribir los resultados en el sistema de archivos compartidos" *: si diferentes usuarios tienen cuentas de usuario diferentes, no veo cómo esto sería posible. Tampoco es posible el rastreo de paquetes (se requeriría una cuenta raíz o acceso físico). Y creo que las firmas criptográficas no serían necesarias en todos los mensajes; si la comunicación es sobre TCP, entonces supongo que sería suficiente para autenticar la creación de nuevas conexiones TCP? –
Y digo que estos clusters suelen ser entornos controlados en los que los usuarios son, en cierto sentido, de confianza, por lo que no están tan endurecidos a los ataques desde dentro. Además, TCP es solo una forma de enviar mensajes; la mayoría de los MPI tienen soporte para muchos transportes. –