# セキュリティにおける命名
## 定義
セキュリティ工学における命名とは、セキュアな分散システムの主体(人・組織・役割・鍵・チャネル・サービス)を指し示す名前の設計を、単なる技術的な識別子割り当てではなく、共有・信頼・アイデンティティ・法制度・文化的慣習が絡み合う問題として扱う領域である。証明書に載せる名前をどう選ぶか、名前とアイデンティティ(同一性)をどう区別するか、名前をどれだけ早く・どれだけ固く束縛するかは、いずれも技術的な設計判断であると同時に、失敗すればセキュリティ侵害や大規模な社会的コストに直結する。Anderson は、名前づけが分散システムの中で「厄介な小問題」に見えて実際には最も難しい問題の一つになりうると位置づける。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 7 Distributed Systems]] §7.4)
## Needham の命名十原則(§7.4.1)
Roger Needham が1990年代前半にまとめた10原則は、名前を基盤とするセキュリティ設計の失敗パターンを予見的に説明する枠組みとして本章で参照される。要点は次のとおり。(1) 名前の機能は共有を容易にすることであり、共有しないデータは名前で結びつける必要がない。(2) 名前解決自体が分散システムの一般的な困難を抱え込む(電話番号と銀行口座を結びつける二要素認証が、電話会社の本人確認の甘さゆえにSIMスワップ詐欺の標的になる例)。(3) 必要な名前の数を過小評価してはならない(IPv6・クレジットカード番号の桁数拡張)。(4) グローバルな一意名は思うほどの利益をもたらさない——名前解決サービス自体が保護対象システムと同規模の分散システムになるため。(5) 名前はコミットメントを含意するため、組織変更に耐える柔軟性を持たせるべきである(英国政府のメールアドレス由来鍵管理システムの失敗)。(6) 名前は capability(アクセスチケット)として機能しうるため、今日の識別子が明日の事実上のパスワードにならないよう注意する(ノルウェーの国民ID、米国防総省のEDIPI)。(7) 誤った名前は一目で分かるべきである(クレジットカードのチェックディジット、Prawo Jazdy事件)。(8) 一貫性の確保は難しく、しばしば妥協される(バーコードの表記揺れ)。(9) 賢くしすぎない——電話番号のほうがメールアドレスや公開鍵証明書より頑健であることが多い(PGP・Signal・M-Pesaの対比)。(10) 名前は早期に束縛すべきではない——ただし最終段階の名前解決サービス自体が攻撃対象になりうる(NTPサービス)。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 7 Distributed Systems]] §7.4.1)
## 名前とアイデンティティ(§7.4.2.1)
命名と混同されがちなのがアイデンティティ(同一性)である。アイデンティティとは、異なる名前(または同じ名前の異なるインスタンス)が同一の主体を指すという主張であり、計算機科学では間接名やシンボリックリンクとして扱われる。不動産登記における改姓や、銀行口座番号とパスポート番号を結びつける本人確認の連鎖(「口座12345678の所有者はパスポート98765432のAaron James Bellであり、それはニューヨーク出生登録の当該記録に対応する」)のように、アイデンティティの主張は多段の再帰(recursion)を伴うことがあり、各段が攻撃対象になる。誰にでもなりすませればよい詐欺(マネーロンダリング用口座開設)と、特定の個人になりすます詐欺(CEOのSIMスワップによる送金)は、アイデンティティ侵害の異なる2類型として区別される。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 7 Distributed Systems]] §7.4.2.1)
## 文化・法制度による命名の分化(§7.4.2.2〜§7.4.2.6)
命名の前提は国・文化ごとに大きく異なる。英語圏では複数の名前を自由に使えるが、別名の使用を禁止・登録制にする国もある。南インドの単名(mononym)や父称、アイスランドの父称/母称制(姓を持たない)は、西欧的な「姓」を前提にしたシステムに移植されると誤変換を起こす。身分証の要否も国の被征服経験と相関する(旧植民地では英語圏でも身分証が課される例が多い)という指摘もある。名前の意味論的内容は時間とともに変化しうる(口座番号ベースの管理から氏名住所ベースの管理への移行が誤爆を招いた銀行の事例)。名前の一意性を達成する手段として、ハッシュベースの暗号学的名前(公開鍵や属性のハッシュ)と、Facebookのような社会的文脈によるあいまいさ解消という対照的な2つのアプローチが並存する。名前の安定性も課題であり、住所を含む名前は住所が変わるたびに崩れる。最後に、社会保障番号のように法律で用途が制限される名前や、通信データ(URL)がどこまで「トラフィックデータ」として緩い規制の対象になるかという法的線引きの問題も、命名の一部として扱われる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 7 Distributed Systems]] §7.4.2.2, §7.4.2.3, §7.4.2.4, §7.4.2.5, §7.4.2.6)
## Zooko の三角形(§7.4.2)
2000年代初頭までに、命名システムは「グローバルに一意」「非中央集権的」「人間可読」という3性質を同時には満たせないことが分かった。これはZookoの三角形と呼ばれるトリレンマである。URLのような名前は一意かつ人間可読だが中央集権的、PGPの公開鍵のような名前は一意かつ非中央集権的だが人間可読ではない。人間の名前(Ross Andersonのような)は人間可読だが一意性がなく、検索エンジンの登場で同姓同名が容易に発見できるようになった。この限界を回避する方法として、Facebookのような大規模ソーシャルグラフは、各人を固有の友人関係の集合と結びつけることで、人間の脳が進化的に用いてきた社会的文脈による曖昧性解消をシステムとして大規模に再現している。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 7 Distributed Systems]] §7.4.2)
## 横断的知見
(本概念は本章のみを出典として立ち上げた。今後の ingest で他ソースが命名(セキュリティ文脈)を扱う場合、複数ソースの突き合わせによる知見をここに蓄積する。)
## 未解決の問い
- Zooko の三角形(一意性・非中央集権性・可読性のトリレンマ)は、ハッシュベースの暗号学的名前や社会的文脈による曖昧性解消といった回避策を経てもなお成り立つのか、それとも回避策は実質的にどれか1性質を部分的に緩和しているだけなのか。
- Needham の命名十原則(1990年代前半)は、ブロックチェーン・自己主権型アイデンティティ(SSI)・パスキーのような2020年代以降の命名・認証の仕組みにどこまで当てはまるか。とくに原則6(名前がcapabilityとして機能しうる)は、パスキーの発見可能な資格情報(discoverable credential)にどう当てはまるか。
- アイデンティティの多段再帰(名前Aは名前Bに対応し、名前Bは記録Cに対応する……)が生む攻撃対象の連鎖を、体系的に列挙・評価する方法論はあるか。
- 命名にまつわる文化的・法的な非互換性(南インドの単名、アイスランドの父称制など)を、国際的なオンラインサービスの本人確認フローに公平かつ安全に組み込む設計原則は何か。
## 関連
- 章: [[@2020__Wiley__Security Engineering 3e - Chapter 7 Distributed Systems]]
- 実体: [[Roger Needham]] / [[wiki/entities/Ross Anderson|Ross Anderson]]
- 概念: [[命名]](ソフトウェア設計・ネットワークアーキテクチャにおける命名。本概念とは対象領域が異なるが、「名前の価値は何を捨てるかで決まる」という発想は共通しうる) / [[分散システム障害]]
## 出典
- Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 7, §7.4.