/
817.txt
34 lines (24 loc) · 1.67 KB
/
817.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
* 仕様書
[REFS[
- [1] [CITE@en[RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2]] ([TIME[2015-02-19 08:58:15 +09:00]] 版) <http://tools.ietf.org/html/rfc5246#section-7.1>
]REFS]
* 意味
[2] [[change cipher spec protocol]] は、 [RUBYB[cipher 戦略]@en[ciphering stragegy]]の遷移を伝えるものです [SRC[>>1]]。
* プロトコル
[3] [DFN[[CODE[[[ChangeCipherSpec]]]]]] [[メッセージ]]は、[RUBYB[型]@en[type]]として値
1 ([CODE[[[change_cipher_spec]]]]) のみから構成されます [SRC[>>1]]。
[FIG(list members)[
[FIGCAPTION[
[CODE[[[ChangeCipherSpec]]]]
]FIGCAPTION]
:[CODE[[[type]]]]:[CODE[[[change_cipher_spec]]]] ([CODE[[[1]]]])
]FIG]
[5] 本[[メッセージ]]を送信した者は、送信後直ちに[[記録層]]において
[[write pending state]] を [[write current state]] に複製します [SRC[>>1]]。
[4] 本[[メッセージ]]を受信した者は、受信後直ちに[[記録層]]において
[[read pending state]] を [[read current state]] に複製します [SRC[>>1]]。
その後 [CODE[[[ChangeCipherSpec]]]] [[メッセージ]]を送信者に対して送ります。
;; [6] ですから、最初の [CODE[[[ChangeCipherSpec]]]] は元の[[接続状態]]に従い暗号化・圧縮されて送信され、
その返信となる [CODE[[[ChangeCipherSpec]]]] は pending から複製された新しい[[接続状態]]に従い暗号化・圧縮されて送信されることになります。
[7] [CODE[[[ChangeCipherSpec]]]] は、 [[handshake]] において[[セキュリティー引数]]を合意した後
[CODE[[[Finished]]]] が送信されたと検証する前に送信します [SRC[>>1]]。