# 鍵配送プロトコル
## 定義
鍵配送プロトコルとは、通信したい二者(Alice, Bob)が信頼できる第三者(Sam)を介して、あるいは第三者なしに、共有すべきセッション鍵を安全に確立するための手続きである。*Security Engineering* 第4章は二つの系統を対比する。第一は**信頼できる第三者(trusted third party, TTP)方式**で、AliceとBobがそれぞれSamと個別の長期鍵を共有しており、Samが新しいセッション鍵`KAB`を生成してそれぞれの鍵で暗号化した証明書を渡す。1978年の**Needham-Schroederプロトコル**(メッセージ1〜5、ノンス`NA`・`NB`で鮮度を保証)が古典であり、その実用化である**Kerberos**(タイムスタンプ`TS`と有効期間`L`で鮮度を保証)がMIT発の標準として広く使われている。第二は**TOFU(trust-on-first-use)/resurrecting duckling**方式で、第三者を介さず、工場出荷後にデバイスが最初に受け取った鍵を無条件に信頼する(タコグラフ、Homeplug AVのLAN拡張器など)。前者は鍵の失効・再認証を集中管理できる代わりにSamという単一障害点・単一の信頼点を持ち、令状によってSamから鍵を引き出せてしまうという性質(TTP性)を持つ。後者は第三者を必要としない代わりに、誤った相手への「刷り込み」(false imprinting)が起きた場合にリセットボタンで再出荷状態に戻す以外の回復手段がない。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.1, §4.7.2, §4.7.3, §4.7.4)
Needham-Schroederプロトコルには、Bobが受け取る鍵`KAB`の鮮度をBob自身が検証できないという既知の欠陥がある。Aliceがメッセージ2とメッセージ3の間で鍵を(意図的・非意図的に)何年も保持していても、Bobにはそれを知る術がない。Kerberosはこれをタイムスタンプで解決するが、代わりにクロック同期という別の脆弱性を持ち込む。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.3, §4.7.4)
## 横断的知見
- **鍵配送における「信頼できる第三者」は、Mark Burgessが論じる「最初の紹介(introduction)」の暗号プロトコル版である**。[[信頼関係]]は、身元の確立(identification)が原理的に不可能で必ず信頼に基づく最初の紹介を要し、認証とはその紹介の再確認に過ぎないと論じる(Principle 62)。Needham-SchroederやKerberosにおけるSamの役割は、まさにこの「最初の紹介」を代行する仕組みであり、AliceとBobは互いを直接知らなくてもSamとの既存の信頼関係だけを頼りに新しい信頼関係(セッション鍵)を確立できる。他方でTOFU/resurrecting duckling方式は、第三者による紹介を省き、デバイス自身が「最初に見た相手」をその場で信頼の起点として採用する点で、Burgessの言う「紹介」を第三者からデバイスの初回体験そのものへ移し替えた設計だと整理できる。両ソースを突き合わせると、鍵配送プロトコルの設計選択(TTPを置くか、TOFUにするか)は、突き詰めれば「最初の紹介を誰が・いつ行うか」という単一の設計問題の異なる解法であることが分かる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.1, §4.7.2, [[信頼関係]])
- **「信頼はリスクの高い場所からより安全な場所へ移し替えられるだけ」という[[信頼関係]]の指摘は、KerberosのTTP性の説明と正確に対応する**。第4章はKerberosについて「警察が令状を持ってくれば、Samから鍵を引き出して通信を読める」性質を指摘するが、これは信頼をAlice・Bob間の直接関係からSamという単一点へ集約したことの裏返しであり、Burgessが言う「信頼を移し替える(鍵の代わりに鍵の製造者を信頼する)」構図と同型である。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.4, [[信頼関係]])
- **第12章(Banking and Bookkeeping)は、鍵配送の銀行実装が単一の方式に収まらず、TTP方式とTOFU方式に似た方式が用途ごとに使い分けられていることを示す**。ATM・カード決済網の鍵配送は明確なTTP方式である——銀行間で個別に鍵を共有する代わりに、VISAのようなスイッチ組織がHSM(hardware security module)を使ってPINを一方の銀行の鍵から他方の銀行の鍵へ「翻訳」する、Needham-SchroederやKerberosにおけるSamと同じ集中仲介の役割を果たす。これは20,000行・数億のカード保有者という規模で二者間鍵交換が非現実的になった結果であり、鍵配送プロトコルにおける「TTPは信頼照合のコストをN²からNのオーダーに減らす」という一般的な動機を、決済網という具体的な規模で裏づける。他方、SWIFTの当初の鍵管理(SWIFT I)は対照的にTTPを避ける設計だった。SWIFTという組織自体を認証の主体にせず、担当者どうしが対面または郵送で鍵を交換する双方向鍵交換方式を採用し、危殆化リスクを下げるため鍵を2つの構成要素に分けて別々の経路で送った。これはTOFU(第三者なしに当事者どうしが最初の関係を確立する)に近いが、resurrecting ducklingのようにデバイスが自動的に「最初に見た相手」を信頼するのではなく、人間どうしの儀礼的な鍵交換手続きという点で異なる、第三の方式(人手による帯域外鍵交換)だと整理できる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.1, §4.7.2, [[@2020__Wiley__Security Engineering 3e - Chapter 12 Banking and Bookkeeping]] ch.12 §12.3.2, §12.4.1, [[SWIFT]])
- **第14章(Monitoring and Metering)は、第4章で名前だけ挙げられていたタコグラフのresurrecting duckling実装を、実際の規制史・実装バグとともに詳述する**。第4章はタコグラフを「TOFU/resurrecting duckling方式の例」として一行で挙げるにとどまっていたが、第14章は1990年代末のEU規則が歯車センサー・車両ユニット間のパルス列暗号化を義務化した経緯、出荷直後の「新生」車両ユニットが最初に受け取った鍵を持つセンサーを「親」として記憶する仕組み、センサー故障時にワークショップカードで鍵ストアを消去して「新生」状態に戻し再刷り込みする回復手順、そして各「蘇生」がログに記録される設計を示す。これは第4章の未解決の問い(「リセット操作が物理アクセスを要求するのか」)に部分的な回答を与える——ワークショップカードという専用の物理トークンを要求する設計であり、遠隔からの蘇生はできない。ただし実装は理論通りではなく、センサー再鍵付けのエラーコードが停電のエラーコードと同一という不備があり、「蘇生ログで乱用を防ぐ」という設計意図が現実には曖昧になっていた。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 14 Monitoring and Metering]] ch.14 §14.3.3.2, [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.2)
- **第22章(Phones)のGSM/SIM鍵配送は、第4章のTTP方式(Needham-Schroeder/Kerberos型)の通信キャリア規模での具体化であり、しかも「TTP自身が信頼を裏切りうる」という性質までTTP方式の一般論と一致する**。SIMは加入者識別番号(IMSI)と認証鍵`Ki`を保持し、ホーム網のHLR(home location register、第12章のVISAスイッチや第4章のSamに相当する集中仲介者)が`Ki`でRANDを暗号化して応答`SRES`と暗号鍵`Kc`の三つ組を生成、これを訪問先網のVLR経由で配布する。これはSamがAlice・Bobそれぞれの長期鍵から新しいセッション鍵を作って渡すTTP方式そのものであり、「TTPは信頼照合のコストをN²からNへ減らす」という一般的な動機を、数十億加入者規模のSIM認証という具体例で裏づける。他方で第4章がKerberosについて指摘した「令状でSamから鍵を引き出せる」というTTP性の裏返しは、第22章ではさらに直接的な形で現れる——GSMの基地局は認証されないため中間者(IMSIキャッチャー)が容易に割り込め、しかも各国の法執行アクセス要求によって暗号強度自体(A5/1・A5/2)が意図的に弱く設計された経緯があり、TTP方式の「信頼の集約点」という性質が、鍵管理者の技術的裏切りだけでなく規制による意図的な脆弱化という形でも悪用されうることを示す。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.1, §4.7.4, [[@2020__Wiley__Security Engineering 3e - Chapter 22 Phones]] ch.22 §22.3.1, [[GSM]])
## 未解決の問い
- OAuth・OpenID Connectは第4章でKerberosと「類似の委譲プロトコル」として簡潔に比較されるにとどまり、TTP性の有無やトークンの失効管理がKerberosとどう異なるのかは詳述されていない。
- SWIFTの双方向鍵交換(人手による帯域外交換)は、鍵の危殆化に対しては2経路分割で耐性を持つが、鍵配送そのものの鮮度(古い鍵がいつまで有効とみなされるか)をどう管理していたかは第12章の記述だけでは分からない。Needham-Schroederの「Bobが鍵の鮮度を検証できない」という既知の欠陥が、SWIFTの人手交換方式にも同型で存在するかは未検証。
- タコグラフのワークショップカードは「トラック整備士が犯罪歴チェックに合格すれば発行される」という人的統制に依存するが、第14章はこれが「悪徳業者が新会社を設立してブラックリストを回避する」抜け穴を持つと指摘する。resurrecting ducklingの安全性が結局は鍵配送プロトコル自体ではなく、物理トークン(ワークショップカード)発行の組織的統制に依存するという構図は、TTP方式が抱える「Samという単一の信頼点」の問題を別の形(トークン発行機関という単一の信頼点)で再導入していないか。
- 第22章のSIM鍵配送は、3G/4G/5Gで相互認証・鍵の到達範囲拡大へと改良が続いているが、いずれの世代でもTTP(HLR/HSS/HE)を法執行や規制当局の圧力から独立させる設計は取られていない。TTP方式が「信頼の集約点」を持つ構造そのものを変えない限り、法執行アクセスという形の意図的脆弱化は世代を超えて再発し続けるのか、それともTTPを排除する方式(TOFUや人手による帯域外鍵交換)に移行しない限り原理的に避けられない問題なのかは、本ページの範囲では未決着。
## 関連
- ソース: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]](§4.7.1〜§4.7.4) / [[@2020__Wiley__Security Engineering 3e - Chapter 12 Banking and Bookkeeping]](§12.3.2, §12.4.1) / [[@2020__Wiley__Security Engineering 3e - Chapter 14 Monitoring and Metering]](§14.3.3.2) / [[@2020__Wiley__Security Engineering 3e - Chapter 22 Phones]](§22.3.1)
- 概念: [[認証プロトコルの失敗モード]](鮮度検証の失敗という観点で接続) / [[信頼関係]](「最初の紹介」としてのTTP・TOFUの一般理論)
- 実体: [[Kerberos]] / [[Michael D. Schroeder]](Needham-Schroederプロトコルの共同考案者) / [[SWIFT]](人手による帯域外鍵交換の具体例) / [[GSM]](SIM鍵配送の具体例)
## 出典
- Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 4, §4.7.1-§4.7.4.
- Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 12, §12.3.2, §12.4.1.
- Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 14, §14.3.3.2.
- Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 22, §22.3.1.