Windowsソケットを使用して「手動で」SSL 3.0を実装しようとしています(openSSLとMS SSL APIが存在することは知っていますが、楽しみのためにそれを行い、内部ビューから学びたいだけです)
新しい SSL セッションを開始するために使用する最初のメッセージ (レコード)、SSL サーバー (実サーバー、https://yahoo.com:443など) に送信する最初の TCP メッセージは、まさにこのようなものです (16 進数) ) :
"16 03 00 00 19 01 00 00 15 03 00 bb 80 f3 8c 5d db f7 6c 94 56 d8 34 7a b5 9d 02 00 39 00"
Explanation:
16 //-- (22 in decimal) SSL3_RT_HANDSHAKE
03 00 //-- version : 3.0
00 19 //-- length of record excluding 5 bytes of header
01 //-- SSL3_MT_CLIENT_HELLO
00 00 15 //-- length of the following data
03 00 //-- SSL version 3.0
bb 80 f3 8c 5d db f7 6c 94 56 d8 34 7a b5 9d 02 00 //---- Random 16 bytes
39 //-- TLS_DHE_RSA_AES_256_CBC_SHA
00 //-- Compression method : none
しかし、サーバーは私に(10進数で)応答します:
21-3-0-0-2-2-40
この参照により、SSL ハンドシェイク プロトコルが理由の手がかりなしに失敗したことがわかります。何がうまくいかなかったのですか?