経路の暗号化とデータの暗号化では要件が異なる
数学ガール・シリーズを読んでる途中だが,気になる記事を見つけたので。
以前の記事で紹介した「情報処理」2020年7月号内の PPAP 座談会で妙に Firefox Send を推してるなぁ,と思っていたが(笑),実は件のサービスが一時停止に追い込まれているらしい。
なんでも
とのこと。
私は今回の件で Firefox Send 側に瑕疵があるとは思わない。 でも詐欺(social engineering)の温床になるのであれば,最悪は閉鎖せざるを得ないだろう。 ニンともカンとも,お気の毒なことである。
暗号化の手段
あるデータを暗号化技術によってオンラインで安全に運ぶための手段としては,大きく2つある。
- 経路の暗号化
- データの暗号化
例えば TLS (Transport Layer Security) は典型的な「経路の暗号化」である。 暗号化メッセージング・サービスも基本的には「経路の暗号化」によってメッセージの秘匿を達成している。
Firefox Send は一見「データの暗号化」に見えるかもしれないが,実は「経路の暗号化」に分類できる。 何故なら Firefox Send はデータ送受信のエンド・ポイントには介入しないからだ。 ここに犯罪者の付け入る余地がある。
経路の暗号化の4要件
経路の暗号化の要件には以下の4つがある。
- 機密性(Confidentiality)
- 完全性(Integrity)
- 認証(Authentication)
- 否認可能(Deniability)
経路の暗号化の場合,セッション中になりすましや改ざんがないことは勿論だが,セッション終了後のいかなる時点でも内容が再生されないこと,が要求される。 そのためには「否認可能」であることが必要なのだ。
「否認可能」を達成する方法としては PFS (Perfect Forward Secrecy) を組み込む手がある。 また,暗号技術そのものではないが,セッション中のトラフィック・データやログなどを正しく破棄する運用が必要である。 まぁ,ログはそもそも取らないのが最善なのだが。
データの暗号化の4要件
一方,データの暗号化の要件は経路の暗号化の要件とは少し異なっている。
- 機密性(Confidentiality)
- 完全性(Integrity)
- 認証(Authentication)
- 否認防止(Non-repudiation)
見ての通り,注目は4番目の「否認防止」である。
「否認防止」とは,「データを送った」という事実を送信側が否定できないこと,を指す。 もっと簡単に郵便の比喩で言うなら「内容証明付き」のデータにするということである。
これを達成するには永続的(証明(certification)された公開鍵がセッションやドメインを超えて有効であること)な鍵で電子署名すればよい。
データの暗号化を端折ってはいけない
注意すべきは「否認可能」と「否認防止」は要件としては真逆である点だ。
もし Firefox Send で送るデータに最低でも(経路の暗号化とは異なる鍵で)電子署名を付与していれば多少はリスクを軽減できたかもしれない。 まぁ URL で釣る(phishing)のはオンライン詐欺の常套手段なので,そもそも URL を渡すアイデアが微妙なのかもしれないけど。
公開鍵暗号方式を利用した暗号化を面倒臭がる人は多く1,これを隠蔽または回避するために(経路の暗号化のみで)データの暗号化を端折るサービスやアプリケーションが多いが,データを(暗号化技術を使って)安全に受け渡ししたいのなら端折ってはいけない。
ブックマーク
参考図書
- 暗号技術入門 第3版 秘密の国のアリス
- 結城 浩 (著)
- SBクリエイティブ 2015-08-25 (Release 2015-09-17)
- Kindle版
- B015643CPE (ASIN)
- 評価
SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。
- 情報処理 2020年7月号
- 情報処理学会 (著)
- 2020-06-15 (Release 2020-06-15)
- Kindle版
- B089N3VX86 (ASIN)
- 評価
PPAP 特集(笑)
-
毎回パスワードを考えてデータをロックするより,最初に公開鍵を決めておいて使いまわしたほうが楽だし安全だと思うのだが… ↩︎