Translations: English
テキストデータをサイト所有者が保証する(署名)
ユーザー毎に可能なことを設定可能にします。
一連の仕組みは、Web標準のWeb Crypto APIで実現しています。
登場人物
- サイト所有者
- 特殊ユーザー
- その他のユーザー
仕組みの概要
サイト所有者が特殊ユーザーの使う証明書を署名、
テキストデータ機能で共有するデータを特殊ユーザーが署名することで、
特殊ユーザーが生成したデータがサイト所有者の意図するデータであることを保証します。
登場するデータ
署名/検証することが可能な秘密鍵と公開鍵のペアを証明書と表記します。
- サイト証明書 サイト所有者が発行、保有する。スペシャルユーザー証明書に署名するために使用する。
- 特殊ユーザー証明書 サイト所有者がサイト証明書で署名したものを、特殊ユーザーが保有する。
- 署名済みユーザーデータ 特殊ユーザーが生成して特殊ユーザー証明書で署名したデータ。
流れ
- サイト管理者は、サイト証明書を発行します。
- Example: サイト証明書の生成のソースコード (codepen)
- サイト証明書の公開鍵は、誰でもアクセス可能な場所に設置します。(サイトのソースコード等)
- サイト管理者は、特殊ユーザー証明書を発行します。
- 特殊ユーザー証明書はサイト証明書で署名します。
- 何かしらの方法で特殊ユーザーに配布します。
- Example: 特殊ユーザー証明書の生成のソースコード (codepen)
- 特殊ユーザーは、他のユーザーに送信するデータに署名して、署名済みユーザーデータを作成します。
- 署名するデータはセッションIDを含めることで、なりすましを防ぐ事が可能です。
- 特殊ユーザー証明書の公開鍵も一緒に送信する必要があります。
- Example: ユーザーデータの署名ののソースコード (codepen)
- セッションIDについて
- その他のユーザーは、受信したデータを検証します。
- 特殊ユーザー証明書の公開鍵を、サイト証明書の公開鍵で検証します。
- 署名済みユーザーデータを特殊ユーザー証明書の公開鍵で検証します。
- Example: ユーザーデータの検証のソースコード (codepen)