← eli5

Pending Token

鍵は渡さない。
先に引換券を渡す。

あなたが 3 つの会社に所属していると、ログインの入口は 「どの会社の人として入りますか?」を勝手に決められない。 だから一度、引換券を渡す。

01

所属が 1 つなら、迷わない

入口は「あなた=A 社の人」と決めて、そのまま通せる。ところが所属が 3 つあると、決め手がない。

あなた A 社 そのまま通せる A 社の証 あなた A 社 B 社 C 社
上:所属が 1 つなら入口が代わりに決められる。下:3 つあると決め手がなく、入口は止まる。この「止まった状態」をどう扱うかが本題。
02

これまでは、白紙の証を出していた

決められないので、会社の欄が空っぽの証を発行していた。持っている本人も、受け取った側も、どの会社の話なのか分からない。

決められないときに「とりあえず空欄で出す」のは、決めたことにはならない。
空欄の証は、あとで誰かが埋めてしまえる。
03

これからは、引換券を渡す

入口は証の代わりに引換券を渡して、こう言う。「どの会社か選んで、この券を持ってまた来て」

入口 決められない 渡す 引換券 5 分・1 回きり 見せる 選ぶ画面 A / B / C 交換 B 社の証 会社が入った
引換券そのものでは何もできない。「選んだ会社」と一緒に持ち帰って、はじめて本物の証と交換される。
04

控えは、指紋だけ取っておく

券を配ったら、番号を控えておかないと本物か確かめられない。でも番号をそのまま棚に書き写すと、棚を盗まれた人が券を作れてしまう。だから指紋だけを取る。

券の番号 a3f9…2b7c すりつぶす 一方向 指紋 9c14…f0a8 棚に置くのはこれだけ 戻せない
指紋から番号は復元できない。だから棚ごと盗まれても、使える券は作れない。持ち込まれた券は、その場で指紋を取り直して照合する。
05

券には、3 つの安全装置がついている

01

指紋だけ

番号そのものはどこにも残さない。

02

1 回きり

使った瞬間に破る。2 度目は通らない。

03

5 分で失効

選ぶのに十分で、拾われて悪用されるには短い。

発行 交換できる 失効 5 分後 1 回目:通る 2 回目:止まる
拾った人が使うには、5 分以内で、かつ本人より先に使うしかない。しかも先に使われれば本人が気づく。
06

今回作ったのは、券を置く棚だけ

大きな流れを 4 つに割った、その 1 つめ。作ったのは 券を置く棚(テーブル)と、指紋の取り方の決まり(ハッシュ契約)だけ。

券を配る人も、受け取って交換する人も、まだいない。だから今の動きは何も変わらない。棚が先にできただけ。

指紋の取り方を 1 か所に集めたのには理由がある。
配る人・調べる人・交換する人が別々に指紋を取ると、取り方が少しずつズレて、 正しい券なのに「そんな券は無い」と言われるようになる。しかもエラーにならず、静かに。