質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

  • セキュリティー

    476questions

    このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

OpenPGPの「なりすまし」対策について(「暗号データ+署名」全体を傍受、コピー送信された場合)

解決済

回答 3

投稿

  • 評価
  • クリップ 4
  • VIEW 716

EMADURANDAL

score 32

お世話になります。

OpenPGP(もしくは、それに類する暗号通信技術全般に言える事)について質問です。

PGPは電子署名と(フィンガープリント確認などを経て入手した)正当な公開鍵を用いて、「なりすまし」被害を防ぐことが可能、とされています。
私もなんとなく、そのことを疑問もなく受け止めていたのですが、ある日突然疑問が湧いてきました。

最近、ドアセキュリティの一つである「スマートロック」の脆弱性や危険性が叫ばれて久しいです。
一見、安全性を高めてくれるイメージがありますが、セキュリティの実装がお粗末な製品が多いと言われています。

中でも興味深かったのは、無線LAN連携機能をハックされて、電子鍵の持ち主による、「ドア解鍵のための認証情報が含まれた暗号通信データ」を丸々傍受され、それをコピーしたデータをスマートロックに送りつけることにより、ドアを不正に解鍵できてしまった、という事例が報告されています。

私が気になったのは、ここです。

例として、OpenPGPに目を向けてみると、相手に安全にデータを送る場合、
「暗号化した送りたいデータ+署名」という形式で相手に送ることが一般的です。
もし、データや署名などが改竄されていた場合、公開鍵を使った署名検証に引っかかるため、改竄の心配はありません。

しかし「なりすまし」についてはどうでしょうか。確かに、署名によって、一面的には防げます。しかし先のスマートロックの事例を見る限り、完全ではないような気がするのです。

つまり、署名検証をパスすることでわかるのは、この「暗号化されたデータ+署名」の作成者が、受取り手が署名検証に使った公開鍵に対応する秘密鍵を持っている人物である。ということだけです(秘密鍵が流出していない限りは)。

ただ、この「暗号化されたデータ+署名」自体が平文で送信されていた場合はどうでしょう。それ全体を傍受され、その傍受者がそのデータを丸々コピーして、送りつけてきた場合、受取り手は送信者(傍受者)を、自分の知り合いと誤認する恐れがあります(つまり、なりすましです)。

おそらく、この問題がある以上、安全性を完全には担保できない(送信データ自体は信頼できる人間が作ったものだとしても、そのデータの送信者が悪者かもしれない)ので、おそらく頭の良い人たちによって何らかの対策がされていると思うのですが、そこらへんがよくわかりません。
(浅知恵ですが、何らかのワンタイム的な情報を組みあわせると防げる気もしますが…)

この問題について、何かご存知の方がいらっしゃったらご教示をいただけると嬉しいです。
私はセキュリティ専門家では全くないので、上記の疑問点が的外れである可能性もあります。そうした場合も遠慮なくご指摘いただければ幸いです。よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

暗号化したメールの場合、通常の使い方では「送信の直前に暗号化を行う」ので、「暗号化だけしておいておいたものを、第三者が本人の意志と関係なく配送に乗せてしまう」ということは、よほど厳格性を求められるのでない限り気にしなくていいと思います。理屈の上では、第三者が同じメールを再送することもできますが、メッセージIDや送信時間などが一致すれば「同じメール」であるので、ログ管理などで再送だということは判明します。

一方で、スマートロックのように、常に同じ文言を送る場合、暗号化した結果を再送するというリプレイ攻撃が成立します。このような場合は、認証を受け付ける側が一意なID(nonce)をその都度送って、スマートロック側がそのIDをもとに計算した値を返す、という方法でリプレイ攻撃を防ぐことができます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/16 00:22

    3人の方どなたも非常に親切に答えていただき、おかげさまで理解が深まりました。
    ありがとうございます。

    どのご回答も大変勉強になり、甲乙つけがたく、迷ったのですが、
    実際的な内容の多かったmaisumakunさまのご回答をベストアンサーにさせていただきました。

    皆さま、本当にありがとうございました。

    キャンセル

+2

暗号化の署名は、現実のサインや、印鑑をデジタル化したものと考えるのがよいかと思います。

つまり、サインや、印鑑と同じく、その内容を誰が書いたかという確認ができます。
しかし持ってきた人が、そのサインや、印鑑を押した人である事は現実でも困難で、
これはデジタル署名も同様です。
そのため、署名は本人確認には使えないという事です。

しかしながら、その文書内に差出人、宛先が書いてあれば、誰が誰に充てて
書いたかというのが分かります。
特に、例えばそこにメールアドレスが書いてあれば異なるメールアドレスからだと
分かってしまいます。

このように、現実のサインや、印鑑と同様に、デジタル署名はその人が書いたことを
確認できますが、その送信者が本人であることをデジタル署名のみでは確認できません。

つまり懸念されている事は、現実世界において、他の人が押印した書類を持って、
その人であること、またはその人の知り合いである事を誤認させるのと
同じような事になります。

そのため電子署名は利用される方は原則的に送信するすべてのメールに
電子署名をする必要があります。
そうすることで、あるメッセージに対する返信に電子署名がない場合は、
なりすましを疑う事が可能になります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

提示されたケースでは、メッセージ作成者=公開鍵の使用者+その内容が改ざんされていないことしか確認できません。
よっていわゆるリプライ攻撃による「なりすまし」を防ぐには、maisumakunさんも指摘されているように
メッセージ本文に連番を含ませるなどメッセージの交換手順上での対策が必要です。

ちなみに、不特定多数の初対面の人と安全にメッセージ交換できることが求められる仕組み(たとえば電子メール)では、メッセージ交換で使われている公開鍵が、たしかに送信者(メッセージ作成者)本人だということを確認できる仕組みが必要です。これは一般的に「認証局」が担っています。

参考:電子証明書と認証局

また、ちょっと変わった仕組みとして、公開鍵のフィンガープリントを書籍に印刷して著者=公開鍵を紐づけた例もあります。
参考:Winnyの技術 フィンガープリント

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • セキュリティー

    476questions

    このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。