LoginSignup
2
1

More than 5 years have passed since last update.

通信の保護について

Posted at

通信の保護について

 想定する脅威モデル

- なりすまし
- 情報漏洩(盗聴)
- データの改ざん
- 否認

 情報漏洩(盗聴)

- 暗号化で対策
 - 共通鍵暗号方式
 - 公開鍵暗号方式
 - ハイブリッド暗号方式(SSLプロトコルで使用)

 共通鍵暗号方式

共通の鍵を使って暗号化と復号化をおこなう。

1. 2者(アリスとボブ)間で暗号化アルゴリズムを決めて「共通鍵」を作成
2. アリスは「共通鍵」を使ってデータを暗号化してボブに送る
3. ボブは暗号化されたデータを受け取った後、「共通鍵」を使って復号化してデータを読む

メリット
- 暗号化、復号化の処理が高速

デメリット
- そもそもどうやって鍵を渡すのか?
- 他の人とやりとりする場合、このやりとりで使った鍵とは別の「共通鍵」を作成する必要がある
- 人が増えれば増えるほど、鍵が増える。>>>「n(n-1)個」
- 増えた鍵の管理コストが高い

 公開鍵暗号方式

暗号化する鍵と、復号化する鍵が異なる。

  1. アリスは暗号化する鍵を公開しておく=「公開鍵」
  2. ボブはアリスが公開している鍵でデータを暗号化してアリスに渡す
  3. アリスは受け取ったデータを「公開鍵」とは別の鍵=「秘密鍵」で復号化して読む

メリット
- 鍵の数が少なくて済む
- 鍵の管理コストが低い
- 鍵の受け渡し時のセキュリティを気にしなくて済む

デメリット
- 暗号化、復号化の処理に時間がかかる

ハイブリッド暗号方式

共通鍵暗号方式と公開鍵暗号方式の組み合わせ

1. アリスは、2者の「共通鍵」でデータを暗号化する
2. アリスは1で使用した「共通鍵」をボブの「共通鍵」で暗号化し、1で暗号化したデータと一緒にボブに送る
3. ボブは自分の「秘密鍵」で暗号化された「共通鍵」を復号化する
4. ボブは復号化した「共通鍵」でデータを復号化する

※SSLプロトコルではハイブリッド暗号方式を使用している

メリット
- やりとり後に鍵を破棄すれば鍵の保管に配慮する必要がない
- やりとりの多くを共通鍵暗号方式で行うため、処理が高速化する

 データの改ざん

- メッセージ認証符号>MAC(Message Authentication Code)で対策

 メッセージ認証符号

データの完全性を保証するもの

1. 任意のデータ(=メッセージ)と「共通鍵」を使って、ある関数(MAC関数)を利用して計算した値(MAC値)をつくる
2. データとMAC値を合わせて送信する
3. 受信者は受け取ったデータからMAC関数を使用してMAC値を作り、送られてきたMAC値と一致していればデータは改ざんされていないことが判断できる

 なりすまし、否認 

デジタル署名で対策

 デジタル署名

公開鍵暗号方式の逆で自身を証明する

1. アリスがボブにデータを送るときに、「秘密鍵」で暗号化をする
2. ボブはデータを受け取って、アリスの「公開鍵」で復号化をする
3. アリスの「公開鍵」で復号できるデータを作れるのはアリスの「秘密鍵」持っている、アリスだけ
4. アリスの「公開鍵」で復号できる=アリスが送ってきたデータとなり、送信者を特定できます

これにより、なりすましができなくなり、且つ否認(誰が送ったかの証拠)もできなくなる

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1