本名不明で会ったことのない人の (ハンドルネームによって作成された) OpenPGP 鍵、ちと悩んだが結局署名しない方に傾いている。後から本名とかに変更された場合に「ハンドルネームや諸々のサーバの真正な持ち主」として認知していたのか「該当の実名の真正な持ち主」として認知していたのか識別できなくなるので。
とはいえこれって signing party しても同じことじゃない? という疑念はあって、実際に会って署名した相手が名前を悪意ある形で変更することはありえるんでないのと
結局のところ本当に紐付けたいのはメールアドレスやアカウントではなくアイデンティティそのものなわけだから、どこまで違いがあるだろうかと。
実際に会うのだって、古くからの知り合いでなければなりすましに騙される可能性はあるわけで、その点では signing party も同じステージでより安全という程度の話でしかない。別格の安全にはなっていない
OpenPGP の電子署名は「ユーザーの身元を保証し」ない | text.Baldanders.info
https://text.baldanders.info/openpgp/web-of-trust/
ふーむ
What is not WoT? (In Japanese: WoT とはなんでないか)
https://www.gniibe.org/memo/software/gpg/what-is-not-wot.html
PGP Key Signing - Phil's PGP Docs
https://www.phildev.net/pgp/gpgsigning.html
encryption - GnuPG/KGpg Sign PGP Key - Sign User ID : What is the difference? - Information Security Stack Exchange
https://security.stackexchange.com/a/40630
なるほど、他人の公開鍵への署名は鍵そのものというより「UID への署名」が最小単位だから、 UID を変更すると他人による署名が無効になって「後から名前を変更してなりすまし」みたいな問題は発生しないのか
https://mastodon.cardina1.red/@lo48576/109617102969454564
これに対する回答としては
「(推奨はしないが) ハンドルネームな UID であっても、本当にそれを名乗る当人の鍵であると確信できる/確認したのなら署名しても問題はない」
ということになりますね。理解しました
「本当にそれを名乗る当人の鍵であると確認する」を本人に会わず行うことにどの程度の信頼性があるのか、というのはまた少し別の議論になるし、保守的な価値観ではそのような真似は認めないわけですが。まあ実際私もその方が良いだろうとは思う
インタネッツのみによって “本人のものと確認した” 場合、 validity は none として設定すべきでしょうね。たぶん。
で、そもそもそのような「インタネッツのみによって “本人のものと確認” してしまうようなユーザ」は、他の人々からは trust level を none として登録されそうだけど、それはまた別の話 (つまり、モデルがそのような運用に対応しているかと、その運用が望ましいものかは、別の話)
実際のところ、現代においては E2E 暗号化の恩恵で「改ざんされている」可能性はかなり排除しやすくなった (とはいえ完全ではない) が、インタネッツのアカウントは「想定していた本人がその瞬間にアカウントを利用している」ことの確信を得ることが極めて困難なんだよね。なので本人確認のブートストラップには使えない
たとえば Mastodon にしてみても、サーバ間で暗号化通信してみたところでサーバ上のデータは平文だから、 VPS などであればサーバ上のマルウェアや攻撃者がデータベースを覗き見したり割り込んで書き換えたりしているリスクは排除できない。攻撃者にメリットや動機があるかは問題ではない。
Keybase や Keyoxide はこの辺りをどうやって解決しているのか。「秘密鍵の所有」を起点とする信頼の伝播で十分ということなのかな?
「登録した瞬間のアカウント操作者」と「秘密鍵の所有者」の対応は “確認できた” として良いと思うのだが、署名は UID に対して行うものであると考えるなら、本来はメールアドレスとの確認は真っ先に取れないといけない気がするし、署名するには確認が足りてない気もする
https://mstdn.maud.io/@unarist/109619381427804790
言われてみるとその点べつに email account でも事情は変わらんよな…… 単に UID は名義に過ぎないと考えるべきか
ちなみに Tails OS に入ってる鍵 A490D0F4D311A4153E2BB7CADBB802B258ACD84F が結構面白くて、同じメールアドレスに対して
* Tails developers (offline long-term identity key) <tails@boum.org>
* Tails developers <tails@boum.org>
の2つの UID が同時に存在している
Tails - Transition to a new OpenPGP signing key
https://tails.boum.org/news/signing_key_transition/
アイデンティティとは何なのか、というモデルが email 一強時代の世界観をベースに作られていそうなので、 SNS アカウント等の話をするときはちゃんと考えないといけなそう。しらんけど。
主に email は「クライアント側で一度受信したら、 (クライアントにマルウェアがない前提では) 改ざんは発生しない」というのがいい感じの特性で、後発の SNS にはこの特性がないのが特徴かもしれない。たとえば Mastodon はサーバへの侵入で過去に発信・受信した投稿が改ざんされかねない。
もっとも、 matrix など例外もありそうだけど (サーバサイドの履歴に依存せず E2E 通信ができる、はず……?)