<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Record Protocol</anchor></dfn> (<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>記録層</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">record layer</rt></rubyb></dfn>) は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor> の下位側の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル階層</anchor>です。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <strong><cite xml:lang="en">RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2</cite> (<time>2015-02-19 08:58:15 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5246#section-6">http://tools.ietf.org/html/rfc5246#section-6</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite>Transport Layer Security (TLS) Parameters</cite> (<time>2015-02-27 12:03:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-5">http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-5</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite xml:lang="en">RFC 6066 - Transport Layer Security (TLS) Extensions: Extension Definitions</cite> (<time>2015-02-01 18:07:52 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6066#section-4">http://tools.ietf.org/html/rfc6066#section-4</anchor-external></li></ul></refs></section><section><h1>記録層データ構造</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録層</anchor>では、 2<sup>14</sup> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以下</anchor>のデータに分割して
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSPlaintext</anchor></code> として扱います。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録層</anchor>データ構造間で分割した境界は意味を持たず、
同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録内容型</anchor>なら1つの <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSPlaintext</anchor></code> に結合したり、分解したりできます。 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSPlaintext</anchor></code> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮アルゴリズム</anchor>を適用した結果が
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSCompressed</anchor></code> です。 (ここでいう<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮アルゴリズム</anchor>には、無変換の
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor>」も含まれます。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSCompressed</anchor></code> に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MACアルゴリズム</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化アルゴリズム</anchor>を適用した結果が
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSCiphertext</anchor></code> です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSPlaintext</anchor></code> や <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSCompressed</anchor></code> や
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLSCiphertext</anchor></code> は、次のもので構成されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 含まれるデータの意味 (処理状態) が異なるだけで、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欄</anchor>の構成は同じです。</comment-p><figure class="list members"><dl><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">type</anchor></code></dt><dd>含まれているデータを処理する上位層プロトコル (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録内容型</anchor> 1バイト)。</dd><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">version</anchor></code></dt><dd>プロトコルの版 (2バイト)。 3.3 なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS/1.2</anchor>, 3.2 なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS/1.1</anchor>,
3.1 なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS/1.0</anchor>。</dd><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">length</anchor></code></dt><dd>データの長さ (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">uint16</anchor></code>)。</dd><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fragment</anchor></code></dt><dd>データ (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">length</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欄</anchor>の値の長さ)。</dd></dl></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor> のプロトコルの版は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録層</anchor>のメッセージに記述されるだけでなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Handshake Protocol</anchor> の <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ClientHello</anchor></code> や <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ServerHello</anchor></code>
にも記述されます。そちらとこちらの値は異なるかもしれません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> データ (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fragment</anchor></code>) の長さは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS拡張</anchor> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">max_fragment_length</anchor></code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;18</anchor-internal></src> により最大値を折衝できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor> で送受信されるデータはすべて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Record Protocol</anchor> のメッセージという形で送信されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor> が開始された当初は暗号化、圧縮などを行わない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続状態</anchor>なので、
平文のままのメッセージが送信されます。この状態で上位層プロトコルとして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Handshake Protocol</anchor>
を用いて新たな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続状態</anchor>を折衝し、移行します。これによって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Record Protocol</anchor>
のメッセージに暗号化、圧縮などが適用された状態になります。これで上位層プロトコルとして<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS応用データプロトコル</anchor>を用い、上位<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション層プロトコル</anchor>のデータの送受信が行えるようになります。
その後も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">alert protocol</anchor> 等 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>が送受信されることがあります。</p></section><section><h1>内容型</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Record Protocol</anchor> を使って規定される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>はいくつかあり、
その区別を表す値を<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>記録内容型</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">record content type</rt></rubyb></dfn>
(<dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ContentType</anchor></code></dfn>) といいます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 値は1バイトの数値で表されます。</p><figure class="table"><dl><dt>n</dt><dd>数値</dd><dt>name</dt><dd>名称</dd><dt>desc</dt><dd>プロトコル名</dd></dl><dl><dt>n</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">22</anchor></code></dd><dt>name</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">handshake</anchor></code></dd><dt>desc</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">handshake protocol</anchor></dd></dl><dl><dt>n</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">21</anchor></code></dd><dt>name</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">alert</anchor></code></dd><dt>desc</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">alert protocol</anchor></dd></dl><dl><dt>n</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">20</anchor></code></dd><dt>name</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">change_cipher_spec</anchor></code></dd><dt>desc</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">change cipher spec protocol</anchor></dd></dl><dl><dt>n</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">23</anchor></code></dd><dt>name</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application_data</anchor></code></dd><dt>desc</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application data protocol</anchor></dd></dl><dl><dt>n</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">24</anchor></code></dd><dt>name</dt><dd><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">heartbeat</anchor></code></dd><dt>desc</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Heartbeat protocol</anchor></dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</anchor> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal>) もあります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p></section><section><h1>接続状態</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Record Protocol</anchor> の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">運用環境<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">operating environment</rt></rubyb>のことを
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>TLS接続状態</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">TLS connection state</rt></rubyb>といい、
次のもので構成されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。<figure class="list members"><dl><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>セキュリティー引数</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">security parameter</rt></rubyb> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SecurityParameters</anchor></code>)</dt><dd><figure class="list members"><dl><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>接続端</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">connection end</rt></rubyb> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entity</anchor></code>)</dt><dd>自身が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>か<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>か。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRFアルゴリズム</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prf_algorithm</anchor></code>)</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">master secret</anchor> から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵</anchor>を生成するのに使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bulk encryption algorithm</anchor></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bulk encryption</anchor> に使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>
(<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bulk_cipher_algorithm</anchor></code>)。
鍵サイズ (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">enc_key_length</anchor></code>)、
ブロック・ストリーム・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AEAD</anchor> のいずれであるか (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">cipher_type</anchor></code>)、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">cipher</anchor> のブロック長 (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">block_length</anchor></code>)、
明示的および暗示的な初期化ベクトル (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">nonce</anchor>) (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fixed_iv_length</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">record_iv_length</anchor></code>)。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MACアルゴリズム</anchor></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ認証</anchor>に使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mac_algorithm</anchor></code>)。
アルゴリズムが返す値の長さ (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mac_length</anchor></code>)。
鍵の長さ (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mac_key_length</anchor></code>)。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮アルゴリズム</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compression_algorithm</anchor></code>)</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ圧縮</anchor>に使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">master secret</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">master_secret</anchor></code>)</dt><dd>48バイト秘密。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client random</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client_random</anchor></code>)</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>による32バイト値。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">server random</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">server_random</anchor></code>)</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>による32バイト値。</dd></dl></figure></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client write MAC key</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">server write MAC key</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client write encryption key</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">server write encryption key</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client write IV</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">server write IV</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮状態</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">cipher state</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MAC鍵</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シーケンス番号</anchor></dt><dd></dd></dl></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続状態</anchor>は、現在の読み取り用状態、書き込み用状態と、
pending の読み取り用状態、書き込み用状態の4つがあります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>記録</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">record</rt></rubyb>は、現在の読み取り用状態と書き込み用状態に従い処理されます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 現在の接続状態の初期値は、暗号化、圧縮、MAC のいずれも使用しないものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS Handshake Protocol</anchor> は pending <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続状態</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー引数</anchor>を設定します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ChangeCipherSpec</anchor> は pending <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続状態</anchor>を現在の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続状態</anchor>とします。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">RFC 7983 - Multiplexing Scheme Updates for Secure Real-time Transport Protocol (SRTP) Extension for Datagram Transport Layer Security (DTLS)</cite>
(<time>2016-10-03 23:05:12 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7983">https://tools.ietf.org/html/rfc7983</anchor-external></p></section></body></html>