openpgpを使用したsnsセキュリティ

28
OpenPGP を使用した SNS セキュリティ

Upload: hideki-saito

Post on 08-Jul-2015

1.299 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: OpenPGPを使用したSNSセキュリティ

OpenPGPを使用した SNSセキュリティ

Page 2: OpenPGPを使用したSNSセキュリティ

何を実現するためのものか

安全なコミュニケーション(暗号化)

情報秘匿

受信者秘匿

発信事象の秘匿

コミュニケーションの保証(署名)

発信者の担保

連続性の保証

ある時点での情報の保持を内容を秘匿したまま証明。

Page 3: OpenPGPを使用したSNSセキュリティ

情報秘匿

所謂普通の暗号化。

情報の中身を秘匿。

Page 4: OpenPGPを使用したSNSセキュリティ

受信者秘匿

受信者が誰であるかを秘匿。

日記などに貼り付ける場合、誰に宛てられたのかは第三者が推測できない。

複数のアクセスがある場合、 SNSシステム側からでさえ、誰に宛てられたメッセージかを推測するのは困難。

単一のアクセスでもその人が本当に受信者かは推測できない。

Page 5: OpenPGPを使用したSNSセキュリティ

発信事象の秘匿

木を隠すなら森の中に

中には意味のない通信が含まれているかもしれない。

(もちろん節度を持って意味のない通信を発生させるべきである。)-スパムはいけない。

Page 6: OpenPGPを使用したSNSセキュリティ

発信者の担保

発信された情報が発信者から発せられたものかを判断する材料。

署名。

Page 7: OpenPGPを使用したSNSセキュリティ

連続性の担保

発信者の担保を行わない(=信用設定がない鍵を連続で使用する)ことによっては一連の通信が同じ出所であるということを保証できる。

もちろんその鍵が盗まれていない場合のみ・・・・・・なので特殊な事例。

Page 8: OpenPGPを使用したSNSセキュリティ

ある時点での情報の保持を内容を秘匿したまま証明

ある秘密の情報を保持しているとする。

自分が現時点でその情報を持っていることを証明したい、でも内容はまだ明かせない。

対称暗号を使用して暗号化、それを配布する。

時が来た時にパスフレーズを公開。

他の人はそのパスフレーズを使用してすでに手に入れているデータを復号化。

Page 9: OpenPGPを使用したSNSセキュリティ

動機

SNSシステムはその性質上中心権威型システムである。

従って、ユーザーのプライバシー・データの安全性はSNSの腹づもり次第で変わる。

SNSシステムにとってユーザーは顧客ではなく、顧客(広告主、コンテンツプロバイダー)に対する「商品」である。

ユーザーへの利便性、安全性が SNSシステムにとって優先度は高くないかもしれない。

ただ、 SNSは便利なのは確か。

これを解決するべく、分散型の SNSは模索はされているがまだ実用段階ではない。

Page 10: OpenPGPを使用したSNSセキュリティ

OpenPGP

OpenPGPは PKI(公開鍵基盤)を構成するシステムである。

複数の実装が存在。

PGP (Pretty Good Privacy)-商用ソフトhttp://www.pgp.com/

GnuPG (GNU Privacy Guard)-フリーの実装http://www.gnupg.org/

http://www.gpg4win.org/

Page 11: OpenPGPを使用したSNSセキュリティ

OpenPGPと SNSの親和性

OpenPGPはテキストベースで運用できる。

OpenPGPは信用の輪を構築できる。

OpenPGPは他のシステムに比べて要件が緩い。

Page 12: OpenPGPを使用したSNSセキュリティ

OpenPGPはテキストベースで運用できる

OpenPGPはアスキーアーマーが可能。

既存の日記、ノートシステムで変更なしに運用できる。

コピペでも十分いける。

Page 13: OpenPGPを使用したSNSセキュリティ

OpenPGPは信用の輪を構築できる

信用モデルは SNSの友達モデルにオーバーレイする形で構築できる。

SNS内での知り合いは SNS用の公開鍵で、実際に検証済みの人に関しては本運用鍵で署名するといったマルチティアーな運用がシームレスに可能。

既存の信用モデルもそのまま参照できる。

Page 14: OpenPGPを使用したSNSセキュリティ

OpenPGPは他のシステムに比べて要件が緩い

柔軟。

認証局不要。 SNSの相互認証はアドホックなためこれは重要。

Page 15: OpenPGPを使用したSNSセキュリティ

SNSにおけるOpenPGPの重要機能

暗号化機能

署名機能

秘匿受信者機能

Page 16: OpenPGPを使用したSNSセキュリティ

暗号化機能

OpenPGPでは強力な暗号が使用可能。

公開鍵暗号方式。

相手の公開鍵に対して暗号化。

パスフレーズの受け渡しはなし。

公開鍵を交換するだけ。

対称暗号

共通のパスフレーズを使用。

Page 17: OpenPGPを使用したSNSセキュリティ

署名機能

通信の内容を発信者の公開鍵を使用して担保。

署名だけすることもできる。通常の署名の場合、読むのにOpenPGPシステムが必要。(ただしパスフレーズ等の入力は必要なし。)

クリア署名-OpenPGPをシステムなしでも内容を読むことが可能。

暗号化と組み合わせることができる。

Page 18: OpenPGPを使用したSNSセキュリティ

秘匿受信者機能

受信者を秘匿できる。

暗号の対称のユーザーになっているかがわかるのは発信者と、対応する受信者のみ。

受信者でさえ復号に成功するまで自分が対象になっているかわからない。

メッセージは全て Key ID 0x00000000に宛てられたものとなる。

これを理解するシステムは保持する全ての鍵で試行する。

作成にはGnuPGが必要。復号は PGP 10以降でも可能。

Page 19: OpenPGPを使用したSNSセキュリティ

SNSでの応用

発信者は Aliceとする。

受信者は BobとCharlesとする。

「流し台」( Sink1 ~ Sink n)は公開鍵ペアを作成した後、その秘密鍵を消去した状態のユーザー。

発信者が作成。

秘密鍵が削除されているため、暗号化したものを解読できる人はいない。

つまり流し台。

Davidは第三者。(通信に参加しない)

全員 Alice、 Bob、Charlesの公開鍵を保持

Page 20: OpenPGPを使用したSNSセキュリティ

普通の通信の場合

Alice Bob

Aliceは暗号化したデータを Bobに送信Bobはそれを復号。

メッセージ自体は Aliceが自分の日記などに貼り付けたと仮定。

Bobの公開鍵を持つものは Aliceが Bobに対してメッセージを送ったのがわかる。

David

Alice → Bob

Page 21: OpenPGPを使用したSNSセキュリティ

秘匿受信者機能の通信の場合

Alice Bob

Aliceは暗号化したデータを Bobに送信Bobはそれを復号。

Davidから見ると Aliceが誰に宛てているのかはわからない。

Bobも復号化を試してみて成功して初めて自分宛であるとわかる。

David

???

Page 22: OpenPGPを使用したSNSセキュリティ

複数人への秘匿通信の場合

Alice Bob

複数人への秘匿通信も可能。

この場合Davidがわかるのはメッセージが誰か二人に宛てられているという事実。

Charles、 Bobそれぞれは自分に宛てられたという事実の他、誰かもう一人に宛てられている、という事実。

David

2人宛て

Charles

Page 23: OpenPGPを使用したSNSセキュリティ

秘匿通信を使用しても解決しない問題が・・・・・・

通信の人数によってその通信の性質が推測されてしまう可能性がある。

受信者はその通信が自分のみに宛てられたのか、それとも同報で他にも宛てられているのかがわかる。

場合によっては同報に宛てられていることを悪用して通信内容を漏洩する可能性も?

Page 24: OpenPGPを使用したSNSセキュリティ

そこで登場する Sink(流し台)

Sinkで受信者数を水増しする。

Sink + メッセージ受信者の数を常に同じに近づける。

各受信者は何人への同報かはわからない。

受信者は当該の通信が同報ではないのでないかという疑いを持つ。

それが同報でない場合、漏洩者が判明する。

時には Sinkのみに通信を流すことにより、「空トラフィック」を作成。

第三者による経路分析を遮断。

Page 25: OpenPGPを使用したSNSセキュリティ

Sinkを介入させた通信1

Alice

Sink 1 Sink 2 Sink 3

Bob Charles

David

5人Bob、Charlesは自分以外に4人に宛てられていることを認識。

Page 26: OpenPGPを使用したSNSセキュリティ

Sinkを介入させた通信2

Alice

Sink 1 Sink 2 Sink 3

Bob Sink 4

David

5人Bobは自分の他に4人に宛てられていることを認識。

Page 27: OpenPGPを使用したSNSセキュリティ

Sinkを介入させた通信3

Alice

Sink 1 Sink 2 Sink 3

Sink 5 Sink 4

David

5人この場合、メッセージは実質的に破棄。(全員が Sinkなので誰も読めない。)

Davidから見た人数が全て同じ5人なのに注意。

Page 28: OpenPGPを使用したSNSセキュリティ

現状解決できていない問題

メッセージ自体の秘匿。

ステガノグラフィー

SNSシステム、第三者にメッセージ自体が存在することを悟られないようにする。

行間やスペーシングによるエンコード?