2011-12-14 2 views
0

서버와 여러 클라이언트간에 암호화 된 양방향 통신을 설정하는 가장 좋은 방법은 무엇입니까?Java : 암호화 된 서버/클라이언트 양방향 통신?

서버에 지속성 데이터베이스가 있으며 클라이언트에 데이터를 보내고 클라이언트가 데이터를 다시 보냅니다. 이것은 네트워크 스니핑 도구 및 기타 등등으로부터 최상의 보호를 위해 암호화되어야합니다.

Netty 서버가이 용도로 사용할 수 있습니까? netty 및 클라이언트 응용 프로그램과 함께 소켓을 사용하여 서버에 연결할 수 있습니까?

감사합니다.

답변

1

소켓을 암호화하고 원하는 프로토콜을 유선으로 보낼 수 있습니다. HTTPS는 그 중 하나 일뿐입니다. 예를 들어 우리는 아무 문제없이 netty 위에 SMTPS를 구현했습니다.

프로토콜을 정의하고 인코더/디코더를 작성한 다음 파이프 라인에 SslHandler를 추가하면됩니다. 그게 전부 야.

3

통신 프로토콜이 HTTP이고 표준 HTTP 환경 (HTTP 서버, 서블릿, JSP 등)을 사용하고 있다면 HTTPS 통신을 사용하십시오. 그것은 양방향으로 데이터의 암호화와 보호를 보장합니다.

+0

다른 http 이외의 솔루션이 있습니까? 내가 https 인증서를 얻기 위해 그것을 읽었 기 때문에 나는 이것을 묻는다. – KJW

+0

SSL을 사용하기 위해 인증 기관을 사용할 필요가 없습니다. 클라이언트의 서버 공개 키를 번들로 묶어두면 CA가 필요하지 않으므로 아무 것도 지불 할 필요가 없습니다. – Vincent

+0

자체 암호화 기능을 사용하는 것보다 HTTPS를 사용하는 것이 더 빠르고 쉽고 안전하며, Java 암호화 API를 직접 사용할 수 있습니다. 당신은 당신 자신의 키를 발급 할 수 있고 심지어 SSL 인증서를 구매한다고해도 그만큼 비용이 들지는 않습니다. 이 답변에 투표하십시오. –