2013-06-06 3 views
1

일반 소켓과 SSL 소켓의 차이점은 무엇입니까 (openSSL과 관련)?일반 소켓 대 SSL 소켓

클라이언트가 일반 소켓에서 서버의 포트 443 (https)에 연결 한 다음 ssl 핸드 셰이크를 시작할 수 있습니까?

답변

1

일반 통신과 SSL 통신 간의 유일한 구분은 프로토콜입니다. 또한 이 SSL 프로토콜을 통해 통신 할 것으로 예상한다는 것 이외에 포트 443에 특별한 것은 없습니다.

결과적으로 클라이언트는 특별한 것을 사용하지 않고 포트 443에 확실히 연결할 수 있으며 올바른 바이트 (SSL 핸드 셰이크를 나타내는 문자)를 보내면 포트 443에서 SSL 연결을 수신하는 모든 서버가 응답합니다.

'plain socket'및 'ssl socket'을 사용하면 Java EncryptedSSLSocketConnection과 같은 특정 API를 의미하는 경우 명확히하십시오.

+0

감사합니다. 내가 언급 한 차이점은 C++ 용 OpenSSL API와 관련이 있습니다. 함수 이름은 입니다. 1. connect (winsock.h의 일반 소켓 연결 호출) 2.SSL_connect (SSL.h의 ssl 소켓 연결) – sgowd

2

예. OpenSSL의 고전적인 (비 BIO) API는 SSL/TLS 세션을 언제든지 기존 소켓에 연결할 수 있도록 해당 유형의 사용을 지원하도록 설계되었습니다. HTTPS는 연결시 즉시 핸드 셰이 킹이 필요하기 때문에 HTTPS는이 사용법의 좋은 예가 아닙니다. POP3 또는 SMTP와 유사하게 생각하십시오. STARTTLS 명령을 사용하면 양측이 먼저 일반 연결을 통해 명시 적으로 동의 한 후에 SSL 핸드 셰이크를 동적으로 시작할 수 있습니다.