PGPをOpenID Connect的に使えないか考える会
ChromeやFirefox上のブラウザ拡張 Mailvelope にはPGPフォーム機能があり、これはフォームの送信内容を暗号化 と署名 できる(らしい)。
つまり、これを利用すれば原理的には完全にステートレスでOpenID ConnectなIdPが用意できる -- RPからのnonceを単純にPGP署名させ、それを検証することでPGP秘密鍵のオーナーであることが検証できる。と、考えらえる。
... というか普通にそういう機能はKeybaseあたりが持ってるべきだと思うんだけど。。まぁPGP keyserverすら実装していない https://github.com/keybase/keybase-issues/issues/327 ので、あんまり相互運用性には興味が無いんだろう。
Prev
E-Mail verificationされたPGP鍵の入手
簡単には2種類あり、keybaseやOpenPGP.orgがE-Mail verification済のPGP公開鍵を検索できるようにしている。
keybase
- https://keybase.io/docs/api/1.0/call/user/lookup
- https://keybase.io/_/api/1.0/user/lookup.json?usernames=okuoku
このAPIとPGP keyserverプロトコルのゲートウェイ https://github.com/anapsix/keybase-keyserver-proxy も一応存在するが、直接I/Fしてしまって良いだろう。
OpenPGP.org
鍵をアップロードするとメールが来るので、そこでapproveする。日本語対応。
鍵IDの検証だけで良くない?
なんかアイデア倒れな気がしてきた。。
mail address → PGP鍵 だとメールアドレス公開が前提になるので多分世間的にはPGP公開鍵を直接ペーストするオプションが欲しいはず。であればメールアドレスの検証は別にやれば良い説。
認証機構はステートレスにしてRP側にステートを集約するのが望ましいスタイルな気がするので、もっと単機能なIdPを並べられるアーキテクチャを指向するべきなのではないか。