2011-06-14 2 views
7

TCP/IP 소켓을 통해 프로세스간에 MPI 메시지를 보낼 때 OpenMPI 및 MPICH가 보안을 처리하는 방법은 무엇입니까?MPI 구현 (OpenMPI, MPICH)이 보안/인증을 처리하는 방법

특히 동일한 네트워크의 다른 사용자가 수신 대기 소켓에 연결하여 가짜 MPI 메시지를 보내는 것을 어떻게 방지합니까?

  • 관리자는 신뢰할 수있는 :

    특정 시나리오는 다음과 같다. 신뢰할 수없는 사용자는 하드웨어 나 네트워크에 실제로 액세스 할 수 없습니다. 신뢰할 수없는 사용자에게는 루트 액세스 권한이 없습니다.

  • 그러나 신뢰할 수없는 사용자는 클러스터에서 자체 프로그램을 실행할 수 있습니다. 클러스터 노드는 일반적인 Linux 상자입니다. 특히 신뢰할 수없는 사용자는 임의의 시스템에서 클러스터의 다른 시스템으로의 TCP 연결을 열 수 있으며 임의의 메시지를 보낼 수 있습니다.

답변

7

J 텔러의 권리; MPI는 실제로 이것을하지 않으며, 그렇게해서는 안됩니다. 이는 MPI의 사용 사례를 기반으로 한 디자인 결정입니다.

MPI 사용자는 잠깐 마이크로 초 대기 시간을 가진 상호 연결에 많은 돈을 지불하는 사람들입니다. 메시지의 일종의 암호 서명 오버 헤드는이 커뮤니티에 대해 완전히 용납 될 수 없습니다.

그리고 실제로는 도움이되지 않을 것입니다. MPI가 사용되는 방식은 제한된 액세스 클러스터의 노드 또는 컴퓨팅 랩의 시스템 인 제어 된 환경 내의 메시지 전송 인터페이스입니다. 악의적 인 사용자가 MPI 통신을 방해하기 위해 이러한 노드 중 하나에 대한 충분한 제어권을 확보하면 패킷을 스니핑하는 것보다 더 쉽게 통신을 방해 할 수 있으며 계산의 어떤 단계가 진행 중인지 파악하고 어떤 종류의 man-in- 중간 공격. 실행중인 작업의 메모리를 변경하거나보다 쉽게 ​​공유 파일 시스템의 결과를 덮어 쓸 수 있습니다. "진짜"메시지가 겹쳐서 리소스를 사용하고 작업이 충돌 할 수도 있으므로 위조 된 MPI 메시지를 보내는 것만으로도 알 수 있습니다. 마찬가지로 메시지를 중계하지 않고 메시지를 가로채는 것은 거의 확실하게 교착 상태가됩니다.

이러한 인수는 분산 컴퓨팅에 그렇게 강력하게 적용되지 않습니다. 물론 BOINC 스타일이라고 말하지만 MPI는 그런 종류의 사용에는 적합하지 않습니다.

물론 보안 요구 사항이있는 MPI 사용자는 모든 메시지와 함께 pgp 스타일의 서명을 보내고 코드에 통합하는 것만으로는 충분하지 않습니다. 그러나 그 일을하기위한 메커니즘은 MPI 자체의 일부가 아니며, 그것은 확실히 올바른 결정입니다.

+0

답변을 주셔서 감사합니다.하지만 질문에 대한 구체적인 시나리오를 읽었습니까? * "실행중인 작업의 메모리를 변경하거나보다 쉽게 ​​공유 파일 시스템의 결과를 덮어 쓸 수 있습니다."* : 다른 사용자가 다른 사용자 계정을 가지고있는 경우, 이것이 가능할 수는 없습니다. 패킷 스니핑도 가능하지 않습니다 (루트 계정 또는 물리적 액세스가 필요합니다). 그리고 나는 모든 메시지에서 암호화 서명이 필요하지 않을 것이라고 생각한다. 통신이 TCP를 통해 이루어 졌다면 새로운 TCP 연결 생성을 인증하는 것으로 충분할 것이라고 생각하십니까? –

+0

그리고 이러한 클러스터는 일반적으로 사용자가 어떤 의미에서 신뢰할 수있는 환경을 제어하기 때문에 내부의 공격에 거의 견딜 수는 없습니다. 또한 TCP는 메시지를 보내는 유일한 방법입니다. 대부분의 MPI는 많은 전송을 지원합니다. –

3

저는 이것에 대해서는 전문가가 아니지만 기본적인 대답은 MPI가 일반적으로 보안을 처리하지 않는다는 것입니다. 설명하는 보안 수준을 제공하기 위해 기본 OS에 의존합니다.

내 mpi 배포판의 경우, 이것은 mpd 데몬 (mpi 프로세스를 시작하는 데몬)을 사용하여 빌드됩니다. mpdboot는 클러스터에 mpd 데몬 링을 설정합니다 (노드 당 1 개). 일단 해당 링이 설정되고 mpd 데몬을 신뢰하면 모든 것이 설정됩니다. Mpd는 자신이 소유 한 프로세스 만 mpi 프로세스에 연결되도록합니다.

그러나 mpd 링이 설정된 "정상적인 방법"을 이해하지 못합니다. 그러나 배포본에서 mpdboot는 파이썬 스크립트이므로, 그것을 살펴보고 충분히 안전한지 확인할 수 있습니다. 실행중인 클러스터가 액세스 제어되면 충분히 안전 할 것입니다.

+2

+1.Mpd는 일반적으로 데몬을 시작하기위한 "공유 된 비밀"을 가지고 있지만 그것은 매우 약한 형태의 보안이며 우발적 인 간섭을 방지하기위한 것입니다. –