2012-10-08 4 views
0

동일한 호스트에서 안전하게 통신하려면 두 개의 java proceses를 만들어야합니다. 인증서를 사용하지 않으려 고 프로세스를 인증 할 필요가 없습니다.인증서를 사용하지 않고 암호화 된 RMI 통신

서버와 클라이언트에서 임의의 키를 생성하고 Elgamal을 사용하여 프로세스간에 키를 교환하려고합니다. 프로세스 전반에 공통 대칭 키를 설정합니다. 그런 다음 안전하게 통신하십시오.

내가 생각할 수있는 한 RMIServerSocketFactory 및 RMIClientSocketFactory 인터페이스를 구현하여 위에서 설명한 대칭 키를 설정함으로써이를 수행 할 수 있습니다.

이미 구현이 있습니까?

또는 RSA 정적 키마다 생성됩니다 동안

엘가는 엘가 각 악수를 임의 대칭 키를 생성하므로 RSA를 통해 선택의 여지가 바람직하다 키 교환 프로토콜로 엘가 사용을 시작 SslRMIServerSocketFactory의 및 SslRMIClientSocketFactory를 구성하는 방법은 무엇입니까 시각.

+0

Cryptography Stack Exchange에 오신 것을 환영합니다. 여기서 우리는 암호화의 이론적 측면에 초점을 맞추는 경향이 있습니다. 암호 기법의 특정 구현을 사용하는 것이 아닙니다. 따라서, 자매 사이트 인 Stack Overflow로 질문을 이전하고 있습니다. 스택 오버플로는 주제가 훨씬 더 많습니다. –

+0

"안전하게 의사 소통"한다는 것은 무엇을 의미합니까? 무엇으로부터 보호하고 싶습니까? 올바른 프로세스와 대화한다는 것을 어떻게 알 수 있습니까? 또한 암호화가 처음에는 근본적인 문제에 대한 올바른 대답이 아니라고 확신합니다. – CodesInChaos

답변

2

을 안전하게 통신하려면 동일한 호스트에서 두 개의 java proceses를 만들어야합니다. 에 인증서를 사용하지 않으려 고 프로세스를 인증 할 필요가 없습니다.

유감스럽게도 귀하의 추론에는 결함이 있습니다. 통신 채널이 "단련 된"경우 데이터를 비밀리에 교환하려면 항상 원하는 사람과 통신하고 있는지 확인해야합니다. 그렇게하기 위해서는 하나의 양식 또는 다른 인증이 필요합니다.

이론적으로 인증서를 사용하지 않고 PSK 암호 스위트 (실제로 인증 단계 포함)를 사용할 수 있습니다. Oracle/OpenJDK JRE에서는 기본적으로 지원되지 않습니다. 또한 인증서의 개인 키가 손상되었다고 가정하면 (예 : other question에서 제안한 것처럼) 미리 공유 키를 사용하여 동일한 문제가 발생할 수 있습니다.

관련 문제