2012-11-28 5 views
4

암호화를 사용하여 피어 투 피어 채팅을 프로그래밍하는 가장 좋은 방법은 무엇입니까? 클라이언트가 verisign에 의해 서명 된 인증서를 갖지 않으므로 SSL은 P2P에 유용합니다 ...? 클라이언트에게 채팅 파트너의 IP를 알려주는 마스터 서버없이 이러한 채팅을 프로그래밍 할 수 있습니까?피어 투 피어 채팅 이론

저는 채팅 프로그램을 정말 프로그램하고 싶습니다. 왜냐하면 모든 개인 정보 보호 문제에서 나는 정말로 신뢰할 수있는 프로그램을 원하기 때문입니다. 네트워크 프로그래밍 경험이 있지만 클라이언트 < -> 서버 만 있습니다.

필자는 어떤 코드도 원하지 않고 피어 투 피어 채팅 (스카이프와 같은)의 이론 부분 일뿐입니다.

감사합니다.

답변

2

먼저 양쪽에서 자체 서명 된 인증서를 사용하거나 인증 대신 인증서 대신 '사전 공유 키'를 사용할 수도 있습니다. 사전 공유 키는 사전에 관련된 모든 당사자가 알고 있어야합니다.

두 번째로 SSL은 암호화 메커니즘이므로 통신 모델 (클라이언트/서버와 P2P)의 설계에 영향을 미치지 않습니다.

마지막으로, p2p 노드 모두 공개 또는 라이브 IP를 가지고 있고 각각이 다른 서버에 대해 알고있는 경우 어떤 유형의 중앙 서버도 필요하지 않습니다. 여기 실제 문제는 대부분의 컴퓨터가 NAT 및 개인 IP를 사용하는 방화벽 뒤에 있다는 것입니다. 따라서 NAT를 통과하고 대상 IP와 포트를 확인하여 대상 시스템에 성공적으로 도달 할 수있는 메커니즘이 필요합니다.

다음을 보시고 SO question 그리고 제가 작성한 답변입니다. Skype (Skype의 프로토콜에 대한 지식은 독점적이기 때문에 제한적 임), gtalk 및 다른 XMPP 기반 채팅 응용 프로그램과 같은 일반적인 P2P 응용 프로그램에서 사용되는 몇 가지 기술을 언급합니다.