1: 2019-10-27 (日) 14:28:50 iseki |
現: 2020-09-19 (土) 13:44:00 iseki |
- | ** HTTPS 解析 [#h36615b7] | + | ** TLS [#s4d744d8] |
- | *** PC -> Server [#ka12e7c1] | + | - see also [[OpenSSL]] |
- | 16 03 03 00 9b 01 00 00 97 03 03 5d b5 25 78 67 | + | #br |
- | e5 7b ec 90 7c 44 02 fc 2a d4 e7 fd 5c d0 fc a0 | + | |
- | 05 bf c0 aa c8 10 19 aa 5f 7d 85 00 00 34 c0 28 | + | *** 簡単オレオレ証明書 [#yb18b71c] |
- | c0 27 c0 14 c0 13 00 9f 00 9e 00 39 00 33 00 9d | + | - /etc/pki/tls を使用する. |
- | 00 9c 00 3d 00 3c 00 35 00 2f c0 2c c0 2b c0 24 | + | #br |
- | c0 23 c0 0a c0 09 00 6a 00 40 00 38 00 32 00 0a | + | **** /etc/pki/tls/certs の Makefile [#m4e3972c] |
- | 00 13 01 00 00 3a 00 05 00 05 01 00 00 00 00 00 | + | - make genkey .... /etc/pki/tls/private に秘密鍵 localhost.key を生成する. |
- | 0a 00 06 00 04 00 17 00 18 00 0b 00 02 01 00 00 | + | - make server.key .... カレントディレクトリに秘密鍵 server.key を生成する. |
- | 0d 00 14 00 12 06 01 06 03 04 01 05 01 02 01 04 | + | - make server.csr .... 秘密鍵が無ければ生成して,証明書請求フォーマット(server.csr) を生成する. |
- | 03 05 03 02 03 02 02 00 17 00 00 ff 01 00 01 00 | + | - make server.crt .... server.csr が無ければ生成して,サーバ証明書(server.crt)を生成する. |
- | 16 03 03 00 55 02 00 00 51 03 03 7b 85 b9 ca ff | + | |
| + | - 認証局証明書は /etc/pki/tls/cert.pem |
| + | #br |
| + | |
| + | * RSCH [#va4fb418] |
| + | |
| + | ** HTTPS 解析 [#sd5fc6d6] |
| + | - https://qiita.com/n-i-e/items/41673fd16d7bd1189a29 |
| + | |
| + | - [[Sample 通信データ>./HTTPS Sample Data]] |
| + | #br |
| + | |
| + | *** 1. PC -> Server : Handshake ClientHello [#q12c7c3e] |
| + | |
| + | **** TLS Record Layer (5Byte) [#oc1eb90c] |
| + | 16 03 03 00 9b |
| + | - 0x16 : [[Type>./TLSデータのコンテントタイプ]]: Handshake |
| + | - 0x03 0x03 : [[Version>./TLS Version]]: TLS v1.2 |
| + | - 0x00 0x9b : 続くデータの長さ (155Byte) |
| + | #br |
| + | |
| + | **** メッセージタイプ (4Byte)[#fc523b9f] |
| + | 01 00 00 97 |
| + | - 0x01 : メッセージタイプ([[msg タイプ>./msg タイプ]]): ClientHello |
| + | - 0x00 0x00 0x97 : データ部の長さ (151Byte) |
| + | #br |
| + | |
| + | **** データ部 (151Byte) [#k05a186a] |
| + | 03 03 5d b5 59 02 f8 ... |
| + | |
| + | *** 2. Server -> PC : Handshake SeverHello [#qc7b2e2c] |
| + | |
| + | **** TLS Record Layer (5Byte) [#pf7f0f6e] |
| + | 16 03 03 00 55 |
| + | - 0x16 : [[Type>./TLSデータのコンテントタイプ]]: Handshake |
| + | - 0x03 0x03 : [[Version>./TLS Version]]: TLS v1.2 |
| + | - 0x00 0x55 : 続くデータの長さ (85Byte) |
| + | #br |
| + | |
| + | **** メッセージタイプ (4Byte) [#m3ba242e] |
| + | 02 00 00 51 |
| + | - 0x02 : メッセージタイプ([[msg タイプ>./msg タイプ]]): SeverHello |
| + | - 0x00 0x00 0x51 : データ部の長さ (81Byte) |
| + | #br |
| + | |
| + | **** データ部 (81Byte) [#d8ebb75d] |
| + | 03 03 de b4 cd 12 b2 ... |
| + | |
| + | *** 3. Server -> PC : Handshake Certificate [#d4a502e4] |
| + | 16 03 03 09 73 0b 00 09 6f |
| + | |
| + | **** メッセージタイプ (4Byte) [#qc3f9b0c] |
| + | - 0x0b : メッセージタイプ([[msg タイプ>./msg タイプ]]): Certificate |
| + | - 0x00 0x09 0x6f : データ部の長さ(2415Byte) |
| + | #br |
| + | |
| + | **** データ部 (2415バイト) [#v6bb260b] |
| + | 00 09 6c 00 04 b1 30 82 04 ad 30 82 03 ... |
| + | |
| + | *** 4. Server -> PC : Handshake ServerKeyExchange [#w2e72399] |
| + | 16 03 03 03 0f 0c 00 03 0b |
| + | |
| + | **** メッセージタイプ (4Byte) [#u057577b] |
| + | - 0x0c : メッセージタイプ([[msg タイプ>./msg タイプ]]): ServerKeyExchange |
| + | - 0x00 0x03 0x0b : データ部の長さ(779Byte) |
| + | #br |
| + | |
| + | **** データ部 (779バイト) [#a3b36d44] |
| + | 01 00 ff ff ff ff ff ff ff ff c9 0f da a2 21 68 c2 ... |
| + | #br |
| + | |
| + | *** 5. Server -> PC : Handshake ServerHelloDone [#h5ca3ea0] |
| + | 16 03 03 00 04 0e 00 00 00 |
| + | |
| + | **** メッセージタイプ (4Byte) [#h62cc937] |
| + | 0e 00 00 00 |
| + | - 0x0e : メッセージタイプ([[msg タイプ>./msg タイプ]]): ServerHelloDone |
| + | - 0x00 0x00 0x00 : データ部の長さ(0Byte) |
| + | #br |
| + | |
| + | *** 6. PC -> Server : Handshake ClientKeyExchange [#r576b9e6] |
| + | 16 03 03 01 06 10 00 01 02 |
| + | |
| + | **** メッセージタイプ (4Byte) [#rd97c5be] |
| + | - 0x10 : メッセージタイプ([[msg タイプ>./msg タイプ]]): ClientKeyExchange |
| + | - 0x00 0x01 0x02 : データ部長さ(258Byte) |
| + | #br |
| + | **** データ部 (258バイト) [#f14c53d5] |
| + | 01 00 07 cd 69 f6 91 ... |
| + | |
| + | *** 7. PC -> Server : ChangeCipherSpec [#p732fe57] |
| + | 14 03 03 00 01 01 |
| + | |
| + | **** TLS Record Layer (5Byte) [#q3ede2bf] |
| + | 14 03 03 00 01 |
| + | - 0x14 : [[Type>./TLSデータのコンテントタイプ]]: ChangeCipherSpec |
| + | - 0x03 0x03 : Version |
| + | - 0x00 0x01: 続くデータの長さ (1Byte) |
| + | #br |
| + | |
| + | **** データ部 (1Byte) [#n9c90ec9] |
| + | - 0x01 : ChangeCipherSpec : これ以降は暗号化通信を行う |
| + | #br |
| + | |
| + | *** 8. PC -> Server : Handshake finished? [#u7bebe55] |
| + | |
| + | **** TLS Record Layer (5Byte) [#t2d10104] |
| + | 16 03 03 00 28 |
| + | - 0x16 : [[Type>./TLSデータのコンテントタイプ]]: Handshake |
| + | - 0x03 0x03 : Version |
| + | - 0x00 0x28: 続くデータの長さ (40Byte) |
| + | #br |
| + | |
| + | **** メッセージタイプ (4Byte) [#m6532da2] |
| + | 00 00 00 00 00 00 00 00 97 74 ... |
| + | - 暗号化データ ? Finished か? |
| + | #br |
| + | |
| + | *** 9. Server -> PC : ChangeCipherSpec [#g13e99a7] |
| + | 14 03 03 00 01 01 |
| + | |
| + | **** TLS Record Layer (5Byte) [#xb1be085] |
| + | 14 03 03 00 01 |
| + | - 0x14 : [[Type>./TLSデータのコンテントタイプ]]: ChangeCipherSpec |
| + | - 0x03 0x03 : Version |
| + | - 0x00 0x01: 続くデータの長さ (1Byte) |
| + | #br |
| + | |
| + | **** メッセージ部 (1Byte) [#l432a0ec] |
| + | - 0x01 : ChangeCipherSpec : これ以降は暗号化通信を行う |
| + | #br |
| + | *** 10. Server -> PC : Handshake finished? [#u21f94cd] |
| + | |
| + | **** TLS Record Layer (5Byte) [#u3018017] |
| + | 16 03 03 00 28 |
| + | - 0x16 : [[Type>./TLSデータのコンテントタイプ]]: Handshake |
| + | - 0x03 0x03 : Version |
| + | - 0x00 0x28: 続くデータの長さ (40Byte) |
| + | #br |
| + | |
| + | **** メッセージタイプ (4Byte) [#ee81570f] |
| + | 42 d2 dc b8 50 ... |
| + | - 暗号化データ ? Finished か? |
| + | #br |
| + | |
| + | **** TLS Record Layer (5Byte) [#ze3641fc] |
| + | 16 03 03 00 28 |
| + | - 0x16 : [[Type>./TLSデータのコンテントタイプ]]: Handshake |
| + | - 0x03 0x03 : Version |
| + | - 0x00 0xbb: 続くデータの長さ (187Byte) |
| + | #br |