문제

사용자 이름과 비밀번호 정보를 한 프로세스에서 Windows의 동일한 서버에서 실행중인 다른 프로세스로 전송하고 싶습니다. 안전한 방식 으로이 이전을 달성하기위한 최선의 방법은 무엇입니까? 간단한 접근 방식 중 하나는 암호를 파일에 복사 한 다음 파일에서 다른 프로세스를 읽은 다음 파일을 읽으면 파일을 삭제하는 것입니다. 이것은 간단하지만 단기간 동안 만 살아야하더라도 누군가 가이 파일에 액세스 할 수 있고 다른 사람이 파일이 남지 않을 가능성이 있지만 다른 사람 이이 파일에 액세스 할 수 있기 때문에 안전하다면 걱정됩니다. 프로세스 오류가 발생하거나 충돌합니다. 소켓과 같은 IPC 및 명명 된 파이프는이 문제에 대한 과잉 인 것 같습니다. 아래 링크에서 설명 된대로 메모리 매핑 파일을 사용하는 경향이 더 큽니다. 이것이 올바른 접근법입니까? 또한 Rouge 프로세스 가이 메모리 위치에서 데이터를 청소하는 것을 방지하기 위해 자유/지우기 전에 더미 데이터로 메모리를 채우는 것이 좋습니다.

http://msdn.microsoft.com/en-us/library/aa366551(vs.85).aspx

도움이 되었습니까?

해결책

RPC는 여기에서 친구입니다 (나는 명명 된 파이프를 사용하여 보안 데이터를 전송하지 않을 것입니다 (전 세계 네임 스페이스에서 작동하여 쪼그리고 앉는 공격에 취약하기 때문에).

데이터가 와이어에 전달되지 않으므로 일부는 설명만큼 중요하지 않습니다. 대신 하나의 프로세스가 RPC 서버를 구현하고 다른 쪽 끝이 해당 서버에 바인딩되도록하고, 자격 증명으로 RPC 호출을 발행하고, 바인딩 핸들을 파괴하여 중간 데이터 구조를 중단해야합니다.

메모리를 사용하면 메모리를 안전하게 제로화하는 것을 잊지 마십시오 (그렇지 않으면 디스크에 지속될 수 있습니다).

암호화를 사용하려면 IPC에 사용할 수있는 방식으로 데이터를 암호화하는 CryptProtectMemory를 사용하십시오.

다른 팁

(1)이 디스크로 뒷받침되지 않는 일부 IPC를 사용하십시오. (2) ACL을 지원합니다.

이것은 명명 된 파이프를 나타내는 것 같습니다.

DCOM과 WCF는 모두 컨텐츠 암호화를 지원합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top