本
図でつながる 認証と暗号の基礎
ログインの「誰か」と「何をしてよいか」から始めて、ハッシュ、共通鍵と公開鍵、鍵共有、電子署名、証明書へ。そこで揃えた道具が、JWT・OAuth・OIDC・CIMD の中でどう組み合わさっているかまで、全11章を散文と動く図でたどります。前の章の部品が次の章で使われるので、順に読むと「なぜこう作るのか」がつながって見えてきます。
章
- 第1章 認証と認可 ―「あなたは誰?」と「それをしてよい?」を分けるログインしたのに、他人の下書きは編集できない。アオイの一つのリクエストを追いながら、「あなたは誰?」を決める認証と「それをしてよい?」を決める認可の違いを、401と403の違いまで動く図で確かめます。

- 第2章 ハッシュ関数 ― 戻せない指紋で、改ざんを見つけパスワードを守るどんな入力からも決まった長さの値を作り、元には戻せないハッシュ関数。ファイルの改ざんの検出と、パスワードの保管(ソルトと、わざと遅い関数)まで、図の動きで追います。

- 第3章 共通鍵暗号 ― 同じ鍵で閉じて開く、その鍵をどう渡す?同じ鍵で閉じて開く共通鍵暗号を、動く図で追います。鍵だけを秘密にする理由、AES とモード・nonce、改ざんを見抜くタグと認証付き暗号、そして最初の鍵をどう渡すかという難所まで。

- 第4章 公開鍵暗号 ― 配ってよい鍵と、手放さない鍵配っても困らない公開鍵と、持ち主が手放さない秘密鍵。南京錠のたとえから鍵ペア、暗号化と復号、送り主が分からない理由、鍵のすり替えまで、動く図で順に確かめます。

- 第5章 ハイブリッド暗号と鍵共有 ― 鍵は公開鍵で整え、本文は共通鍵で守る速いけれど鍵を渡せない共通鍵と、配れるけれど重い公開鍵。二つを組み合わせて大きなデータを守る仕組みを、鍵を包むモデル、HPKE、絵の具でたとえる鍵共有、TLS 1.3 と前方秘匿性まで、動く図でたどります。

- 第6章 電子署名 ― 誰が作り、途中で変わっていないかを確かめる届いた案内は本当にアオイが作ったのか、途中で書き換わっていないか。ハッシュや MAC では足りない理由から、秘密鍵で作り公開鍵で確かめる電子署名の仕組みと、署名で分かること・分からないことを図の動きで追います。

- 第7章 証明書と認証局 ― その公開鍵は、本当に相手のものか届いた公開鍵は、本当にその店のもの? 証明書と認証局、証明書の連鎖から、TLS の CertificateVerify、ドメイン認証と ACME、Certificate Transparency、短くなる有効期間まで、鍵マークの意味を図の動きでたどります。

- 第8章 JWT ― 中身の読める札に、改ざん防止の印を付けるJWT は、中身を書いた札に改ざん防止の印を付けて渡す形式です。三つの部分、誰でも読める Base64url、クレーム、署名と鍵、検証の関門、宛先と失効の落とし穴を、図の動きで順にたどります。

- 第9章 OAuth ― パスワードを渡さずに、できることだけを任せる印刷アプリに写真サービスのパスワードを渡さず、「写真を読む」ことだけを任せる仕組み OAuth。認可コードフローと PKCE を1歩ずつ動かし、引換券とトークンの行き先、state と redirect_uri の役目までを図で追います。

- 第10章 OIDC ― OAuth に「誰がログインしたか」を伝える層を足す「〜でログイン」の裏で何が起きているのか。OAuth の上に OIDC を重ね、紫の IDトークンと橙のアクセストークンの行き先を色で追いながら、nonce・検証・iss と sub・UserInfo を順に見ていきます。

- 第11章 CIMD ― client_id を、アプリの自己紹介が置かれた URL にするOAuth の client_id を、アプリの自己紹介 JSON を置いた HTTPS の URL にする CIMD を図解。取得と照合の流れ、秘密を書かない理由、なりすましと SSRF への備えを草案 -03 に沿って説明し、本全体も振り返ります。
