2010-04-19 3 views
1

클라이언트 TLS쪽에 OpenSSL을 사용하는 응용 프로그램을 사용하고 있습니다. OpenSSL 버전을 0.9.8e에서 0.9.8k로 업그레이드합니다. 그리고 TLS가 작동하지 않습니다 ...OpenSSL : SessionTicket TLS 확장 문제가 발생했습니다.

Wireshark는 새 버전 (OpenSSL 0.9.8k)이 SessionTicket 확장명을 가진 클라이언트 hello 패킷을 보내고 서버 측이 치명적인 내부 오류로 응답 함을 보여줍니다.

이전 버전은 거의 동일한 hello 패킷을 보내지 만 SessionTicket ext는 사용하지 않습니다. 내가 SSLv23_client_method로 TLSv1_client_method를 교체 할 때

은, 모든 괜찮 았는데 - 전송 된 클라이언트 안녕하세요

거기 (? 그것은 TLS하지만 SSL 아니었다로) 패킷이 어떤 확장자가없는 (스니퍼에서) SSLv2의 하나였다가 이 확장 기능을 사용하지 않거나 다른 방법으로 문제를 해결하는 더 좋은 방법은 무엇입니까? 사전에

감사합니다, RFC 5077에서 rursw1

답변

5

인용구 : "빈 SessionTicket 확장의 인코딩은 RFC 4507 구현으로 인코딩 수도 RFC 4507.에서 모호한 것을 참고 :

00 23  Extension type 35 
    00 02  Length of extension contents 
    00 00  Length of ticket 

또는 그것이 업데이트와 동일한 방식으로 인코딩 한 수

00 23  Extension type 35 
    00 00  Length of extension contents 

RFC 4507 클라이언트를 지원하려는 서버는 빈 SessionTicket 확장에 응답해야합니다. 는 " 그래서 내가 SSL_OP_NO_TICKET와 SSL_CTX_set_options를 사용하여 '보통'을 제거 지원의 RFC 4507이 아닌 새로운 5077.

와 함께 일 서버 문제를 해결했다. 이 사람을 도움이 될 것입니다

희망 ...

편집은 : 음,이 -no-tlsext 구성 플래그도 수행 할 수 있습니다. (perl Configure 스크립트를 실행할 때). 그러나 OpenSSL 0.9.8n과 OpenSSL 1.0.0에서는 보안 재협상 (자체적으로 안전하지 않은 것으로 간주 됨)으로 소스 코드의 일부를 주석 처리하거나 컴파일하지 않아도됩니다. 그것을 필요로합니다.

관련 문제