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

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

新規登録して質問してみよう
ただいま回答率
85.50%
セキュリティー

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

Q&A

3回答

1901閲覧

公開鍵基盤を用いない,公開鍵暗号の中間者攻撃対策

退会済みユーザー

退会済みユーザー

総合スコア0

セキュリティー

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

1グッド

0クリップ

投稿2016/02/01 11:39

編集2022/01/12 10:55

現在,公開鍵暗号方式について勉強を進めております.

中間者攻撃が存在し,
かつ,公開鍵基盤を利用しない,
また,信頼境界内でやりとりすることができる機会がある

という前提で,安全性を確保できる方法について考えています.
思いつく限りの,以下の3つに強度の違いはあるのでしょうか.
また,これ以外に第三者の攻撃に対して強度を上げる手法はあるのでしょうか.
0. 公開鍵暗号方式で通信し,平文に"直接会って合意したパスフレーズ"を追加して暗号化する.

  1. 共通鍵暗号方式で通信し,暗号化に"直接会って合意したパスフレーズ"を用いる.

  2. 公開鍵暗号方式で通信し,公開鍵を"直接会って渡しておく".

1において,攻撃者はパスフレーズを手に入れた後,中間者攻撃を狙う必要がある.
2において,攻撃者はパスフレーズを手に入れた後,中間者攻撃やその他の攻撃.
3において,攻撃者は公開鍵を手に入れた後,中間者攻撃を狙う.
総当たり攻撃に対しての強度なども気になります.共通鍵暗号の方が強度が高いとどこかで見た記憶がありますが,どうなのでしょうか.

【追記】秘密鍵について---
秘密鍵は,ローカルストレージに保管します.
ローカルストレージに保管する際,個人で決めたパスワードで暗号化します.
そのパスワードは,保管せず,その個人で覚えておくものにするつもりです.
【追記終わり】---

知恵をお貸しいただければ幸いです.

ikuwow👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2016/02/01 14:57

ちなみに、あなたは秘密鍵について、どう考えているんですか?
guest

回答3

0

  1. 公開鍵暗号方式で通信し,公開鍵を"直接会って渡しておく".

通常こういう方式は行いません。
公開鍵暗号は計算量が非常に大きいため、実用の通信には重すぎるからです。
そこでどうするかというと、通信の本体部分は共通鍵暗号を用いることにして、その共通鍵を伝送するためだけに公開鍵暗号を用いるというやり方が一般的です。
つまり、 2. 「共通鍵暗号方式で通信し,暗号化に"直接会って合意したパスフレーズ"を用いる」の直接会うところを公開鍵暗号で代替しているということ。
もちろんその公開鍵暗号通信にあたって公開鍵がMITMされたら元も子もありませんので、結局直接会って公開鍵を渡すことになります。
えっ、それじゃあ最初から直接会って共通鍵を交換すればいいじゃないって?
そう、だから公開鍵暗号に公開鍵基盤が必須になるのです。

2と3の関係はこれでよろしいでしょうか。
1については、どういう通信を想定しておられるのかちょっと読み取れませんでした。

投稿2016/02/02 01:25

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/02 04:24

ご回答ありがとうございます. はい.ハイブリッド暗号と呼ばれるものですね. やはり会わずに渡すには,公開鍵基盤が必要なのですね. 公開鍵と共通鍵の暗号解読性の差異が気になりました. ビット数が大きい公開鍵暗号の方が,総当たり攻撃に強いと思っていますが, 実際の解読可能性はどちらが大きいのでしょうか. 1.については,「Wikipedia-中間者攻撃」の「中間者攻撃に対する防御」項において,"パスワード (低い情報量の秘密)"という記述があったため,合意したパスワードを暗号化する前に加えておけば,そのパスワードを知らない中間者攻撃が,偽装することができなくなると考えました.受信側で,平文に合意したパスワードが含まれているか確認することで,中間者攻撃を発見できるはずです. それとも,このWikipediaの記述は,信頼境界内で合意できるならば,公開鍵暗号より共通鍵暗号を使うべきという意味なのでしょうか.
guest

0

【総当たり攻撃への耐性について】
仰るとおり、総当たり攻撃に対する耐性は鍵長に依存します。
なので(公開鍵暗号だからという理由ではなく)ビット数が大きい方が総当たり攻撃には強いです。
しかし実際の解読可能性となると話が変わり、用いる暗号化アルゴリズムに強く依存します。
新しい攻撃手法が日進月歩で開発、提案されてどんどん計算量が落ちていっているので、各アルゴリズムの安全性についてはこれといったことが言えません...スミマセン

「信頼境界内でやりとりすることができる機会がある」という前提がある時点で、
「そこで共通鍵/公開鍵を安全に交換できるから中間者攻撃は成り立たないじゃん!」と思ってしまったのは浅はかだったでしょうか^^;

投稿2016/02/09 05:32

LatteIce

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/09 06:43

ご回答ありがとうございます. 自分でも調べた際,ビット数だけでなく,鍵として利用可能な個数も重要だと認識しました.RSAやECCなどの公開鍵暗号方式では,ビット数が同じだと,DESやAESなどの共通鍵方式に比べ,使える鍵が少なくなってしまいますね.ありがとうございます. 暗号化アルゴリズムの強度についてはまだまだ情報を集めて質問しなおしたいと思います. 質問の意図としては,中間者攻撃から守ることが可能な手法のうちで,強いものを検討しておりました.ご回答ありがとうございました.
guest

0

公開鍵暗号方式は、秘密鍵の秘密を保つことでセキュリティを確保する方式です。
別途平文にパスフレーズを埋め込んだり、公開鍵を秘密裏にやり取りする意味はありません。
また、公開鍵暗号方式の鍵は、素数しか使えないためビット数が多くなっているだけなので、共通鍵暗号方式よりも強度が高い訳ではありません。

セキュリティ強度を高めたければ、定期的に鍵を作り直してください。

投稿2016/02/02 09:48

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/02 11:23

ご回答ありがとうございます. >別途平文にパスフレーズを埋め込んだり、公開鍵を秘密裏にやり取りする意味はありません。 平文にパスフレーズを埋め込むことで,復号化した際に,パスフレーズが正しいか確認でき,(秘密鍵とパスフレーズを知らない)中間者攻撃を防ぎ,検知できると思ったのですが,正しくないのでしょうか. >セキュリティ強度を高めたければ、定期的に鍵を作り直してください。 まことにその通りかと思います.PKIでもそのような方式ですね.留意します.ありがとうございました.
Stripe

2016/02/02 16:31

攻撃者に暗号文を破壊されたかどうかかを検知するなら、パスフレーズよりもハッシュ(メッセージダイジェスト、チェックサム)の方が有効です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問