<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="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 Handshake Protocol</anchor> の <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CertificateRequest</anchor></code></dfn>
<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:">クライアント</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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <strong><cite xml:lang="en">RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2</cite> (<time>2015-03-25 03:49:56 +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/rfc5246#section-7.4.4">https://tools.ietf.org/html/rfc5246#section-7.4.4</anchor-external></strong></li><li><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> <cite>RFC Errata Report</cite> (<time>2015-04-18 16:06:26 +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.rfc-editor.org/errata_search.php?rfc=5246">http://www.rfc-editor.org/errata_search.php?rfc=5246</anchor-external></li></ul></refs></section><section><h1>構文</h1><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> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CertificateRequest</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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。<figure class="list members"><dl><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">certificate_types</anchor></code></dt><dd>1<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>2<sup>8</sup>-1<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:">クライアント</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:">ClientCertificateType</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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</dd><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">supported_signature_algorithms</anchor></code></dt><dd>2バイト<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>2<sup>16</sup>-2<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:">サーバー</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>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名アルゴリズム</anchor>を表す値の組
(<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SignatureAndHashAlgorithm</anchor></code>) の優先度<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal></src>。</dd><dt><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">certificate_authorities</anchor></code></dt><dd>0<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>2<sup>16</sup>-1<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:">サーバー</anchor>が受け付けられる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DN</anchor> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DER</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>したもの
(1<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>2<sup>16</sup>-1<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ルートCA</anchor>を指定しても、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">下位CA</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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</dd></dl></figure></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> <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="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <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:">cipher suite</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>を要求できます <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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</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="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>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント認証</anchor>を要求するのは、
<code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">handshake_failure</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fatal alert</anchor> です <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</comment-p><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> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CertificateRequest</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:">ServerKeyExchange</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>からの
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Certificate</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>から<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p></section><section><h1>処理</h1><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:">クライアント</anchor>は、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">certificate_authorities</anchor></code> が空なら、
予め別途合意がある場合を除き、
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">certificate_types</anchor></code> に合致する任意の<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p></section></body></html>