質問

クライアントTLS側にOpenSSLを使用するアプリケーションを使用しています。 OpenSSLバージョンを0.9.8Eから0.9.8Kにアップグレードします。そして、TLSは機能しません...

Wiresharkは、新しいバージョン(OpenSSL 0.9.8Kを使用)がクライアントのハローパケットをセッションチケット拡張機能で送信し、サーバー側が致命的な内部エラーで応答することを示しています。

以前のバージョンは、ほぼ同じハローパケットを送信しますが、SessionTicket Extはありません。

tlsv1_client_methodをsslv23_client_methodに置き換えたとき、すべてが正常に機能しました - 送信されたクライアントのハローパケットは、拡張機能なしで(tlsではなくSSL?)

この拡張機能を無効にしたり、別の方法で問題を解決するためのより良い方法はありますか?

事前に、Rursw1

役に立ちましたか?

解決

RFC 5077からの引用:「空のセッションチケット拡張機能のエンコードはRFC 4507で曖昧だったことに注意してください。RFC4507実装により、次のようにエンコードされている可能性があります。

    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クライアントをサポートしたいサーバーは、受信したのと同じようにエンコードされた空のセッションチケット拡張機能に応答する必要があります。 「それで、私が働いたサーバーは、新しい5077ではなくRFC 4507をサポートしています。

SSL_OP_NO_TICKETを使用してSSL_CTX_SET_OPTIONSを使用して「正常に」削除すると、問題が解決しました。

これが誰かを助けることを願っています...

編集:まあ、これはConfiguration Flag -No -TlSextでも実行できます。 (Perl Configure Scriptを実行するとき)。ただし、OpenSSL 0.9.8NおよびOpenSSL 1.0.0では、ソースコードの一部をコメントする必要があるか、コンパイルしないことに注意してください - 安全な再交渉(それ自体で安全でないと考えられている)が必要なのでそれ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top