SSL/TLSクライアント(OpenSSL 1.0.0d)をSSL/TLSサーバー(OpenSSL 1.0.2)に接続しようとすると、ハンドシェイクが失敗し、point is not on curve
およびdecryption failed or bad record mac
でエラーが発生することがあります。サーバ。
私は電子技術者でSSL/TLSの初心者ですが、証明書の楕円曲線(EC)テストが失敗したことをエラーから理解していますが、ハンドシェイクが任意に失敗するのはなぜですか?
この問題を解決するにはどうすればよいですか?
更新:
Wiresharkでパケットを検査しました。成功したハンドシェイクと失敗したハンドシェイクのパケット数とパケットサイズは同じです。
クライアント(openssl 1.0.0d)はuclinux上にあり、サーバー(openssl 1.0.2)は32ビットWindows上にあります。
サーバーとクライアントのプラットフォームとバージョンを一致させると(つまり、サーバーがOpenSSL 1.0.0dを使用し、uclinuxで実行されている場合)、SSLハンドシェイクは常に成功します。
openssl 1.0.0dを1.0.2mにアップグレードした後、問題は解決しました(最大30回テストします)。私のプラットフォームに関連する問題は、Baal-zebubとTomのおかげだと思います。 Linux c6x(uclinux for c6000 TI dsp)を使用していますこのレポートが他のユーザーに役立つことを願っています