編集部が選ぶ「みんなに見てほしい」イチオシまとめはこちら

「暗号」という言葉が暗号技術の理解の妨げになるというお話

暗号技術、最もメジャーなのは SSL/TLS(https) ですが、「暗号化」だとか、「平文」「暗号文」という言葉にさらされすぎると、暗号技術の重要な部分を見落とすことにも繋がりかねないですね、ということをつらつらtweetしたものです。 ※7/24 httpsのことで色々追加
テクノロジー 暗号 SSL 認証
7901view 20コメント
31
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak いや実は、平文か暗号文かと言うのが前面に出すぎて、暗号技術の理解の妨げになってる面はありまして。( 重要ではあるけど一面でしかない )

話の発端は、フォローしている方のこのtweetに反応したことから。

いるやん @Iruyan_Zak
「平文」と言われると「ヤバそうだな・・・」と思うんだけど、ネットワーク上をメッセージが平文で流れることがどんなヤバさを持っているのか、どうやって危機を防ぐのか、そういうことは全く知らないのでして。

ということで話が始まりました。

いるやん @Iruyan_Zak
@angel_p_57 もう少し詳しく聞きたいです。
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak ざっくりと言うと、近代的な暗号はハイブリッド、複数の特長を備えています。SSL/TLSの場合だと、機密性・完全性・認証ですね。「平文じゃない」というのは ( 通信を傍受されたとしても ) 内容が漏洩しないということで、機密性の話でしかないのです。
いるやん @Iruyan_Zak
@angel_p_57 本当にセキュリティのことを気にするときは平文であるか否かのみが重要になるわけではなくて、シチェーションによっては平文でも問題ないし、逆にもっと他の部分を気にする必要があるケースがある、ということでしょうか
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak それもなくはないですが、「ハイブリッド」と言うのは、異なる特長がバラバラに機能してる訳ではなくて、連携しなければならない、不可分な関係にあるのです。
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak そして、古典的な暗号 ( 運用面で ) と近代的なハイブリッド暗号の最大の違い。それは、前者が「暗号を解読できるのはその資格を持っている人だけだ ( 例えは暗号表を渡してるとか )」という前提があるのに対し、後者はそうでないという違いです。

おそらく一般に「暗号」と聞いて思い浮かべるのはここで「古典的」と言っている、「解読のための情報を限定された人しか持たない」ようなイメージではないでしょうか。

angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak 例えは、ですが。IT技術関係ない日常の話を想像してください。誰かと大事な話がしたい、当人以外に漏らしたくないとします。
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak 普通に街中で話すと、誰に聞かれているか分かりませんね。なのでホテルの一室を借りてサシで話すことにしました ( 盗聴器とかは今は考えないでください )。…これは平文を暗号文に変えた、「機密性」に相当する対処になっています。これで十分でしょうか? (反語)
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak ホテルの部屋で待ち合わせたら、フルフェイスヘルメットをかぶった相手が来ました。顔がよく分かりませんし、声もくぐもっていつもと違うかも…。でも他の誰にも聞かれてないし、「機密性」は守られてるよね! …んなわけないですよね、と。
angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak この例だと、目当ての人とは違う人と話をして漏れてしまっている懸念があるわけです。つまり「機密性」は単独では担保できない、相手側確かに想定どおりであるという「認証」が前提として必要なのです。

「相手側確かに」→「相手が確かに」

angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak 古典的な暗号と近代的な暗号の違いはここにあります。前者は、暗号を解読できる人が限られている、つまり解読できる能力がある時点で信頼できる相手だという前提なので、認証のフェーズが要りません。しかし後者は通信相手を限定しません。なので認証がどうしても欠かせません。

ここでは「古典的」と言ってますが、例えば自宅のインターネット用に無線LANを使う、その時にWPA2等の暗号化を使う、というような状況も当てはまります。
無線機器とPC/モバイル機器に共通のパスワードを設定して使いますし、無線接続するとき接続先がニセモノかどうかなんて意識しませんよね。
一方で、SSL/TLS(https)の場合、「ブラウザで鍵マークがついていること」が目安になりますが、これはちゃんと意図したサイトに接続されているという「認証」もブラウザが確認しているのです。

angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak …という観点で世の中暗号技術の説明を見渡すと、認証を考慮していないものが相当多いことに気付くと思います。SSL/TLSで言うと、証明書の妥当性の確認 (検証) と、証明書の正当な所有者であることの確認、この2点ですが、後者にまで言及している説明はほぼありません。

証明書の妥当性の話は、PKIという枠組みで色々説明を見て理解している人も多いと思います。
が、「その証明書の正当な持ち主であること」これをどう確認するか、説明できる人はほとんどいないのではないでしょうか…?
良ければ考えてみて下さい。

angel as ㌵㌤の猫 @angel_p_57
@Iruyan_Zak …とまあ、こんなとこでしょうか。暗号、暗号と言う言葉に引きずられると、同じ位重要な認証の話が置き去り荷されてしまうのです。

ちなみに「完全性」には言及していませんが、SSL/TLSならMACによる改ざん検知の機能になります。
「認証」が通っても、その後の通信の内容の改ざんに気づけないようなら意味がないですよね、ということで「認証」と「完全性」も不可分です。こちらはまだ分かり易いのではないでしょうか。

最後に。「認証」の話がそれほど簡単ではないというのは分かっていて、なので十分な説明が見られないというのは、やむを得ない面もあるとは思います。
ただ…。ねえ。分かってて簡略化しているというより、最初から考えてないんじゃないかなあというのはあり。

一応自分で書いてみたこともありますが、なかなか簡単に、とはいかなかったですね。
https://qiita.com/angel_p_57/items/a8ed4e00cb04ebcccb98

ちょっと続きを追加

angel as ㌵㌤の猫 @angel_p_57
SSL/TLS(https)の場合。ちゃんと通信が保護されているかどうか見るには、今時なら「ブラウザの鍵マーク」ってことになってる。togetterのサイトにFireFoxでアクセスするとこんな感じ。 pic.twitter.com/ZFAoNghmts
 拡大
残りを読む(20)

コメント

yuki🌾遠征が終わりましたご期待以上でした♪⚔ @yuki_obana 2018-07-21 14:14:29
単純に価値のあるものを取引する場合相手が本物かどうかよりも価値のあるとされるものが本物かどうかの方が重視される。そこにエージェント間の信ぴょう性を疑っているってだけ。これがいらないなら乗っ取られようがツイッターで普通に論文書いてうpればいい。そこで困るのが財産処分のリスクが乗っ取りによって生じるって状態や、アバターが本物かどうかが権威的に重要な場合は保証できることが要請される。イケメンのうんこ出たはおっさんのうんこ出たより価値のある情報で裏垢だろうが本人の証言なことが大事。
ポン酢太郎 @ponzoo2you 2018-07-21 14:34:02
解読できる人が限られているのが暗号 ネット上で僕にも読める文章=暗号ではない→セキュリティがない という認識になるってことか
生き残った墺太利伊太利帝国さん @NotAustralia01 2018-07-21 16:32:33
認証認証ってやたら目にすると思いながら適当に「はい」「許可する」を押してたが そういうちゃんとした意味があるんだねぇ ホテルの密室のフルフェイスヘルメットの、ってたとえは相当に分かりやすかったけど インターネッツ上で具体的に何がどう機能してるかはまだイメージできてないといあ
永遠の初見さん @Eternal_NewMan 2018-07-21 18:03:38
英語で創作された単語は、日本語に訳すと、大体違う、勘違いを引き起こしやすい単語に変えられる。 row、columnしかり
佐渡災炎 @sadscient 2018-07-21 18:16:49
Eternal_NewMan えっ、行と列って何か勘違いする要素ある?
ぽんぽこたぬき @pompocotanuky 2018-07-21 19:52:19
sadscient 本来、「行列」にはマトリックスという意味がない(行と列は同義)。だから大名行列は一列でも行列。
ぽんぽこたぬき @pompocotanuky 2018-07-21 20:10:53
だから行と列はどっちがタテヨコだったか忘れやすいという話じゃないの。日本語には本来ないニュアンスなので。rowは「(家とかの)並び」でcolumnは「柱」だから直観的だわな。
永遠の初見さん @Eternal_NewMan 2018-07-21 22:16:09
sadscient 大体のことを言われたが、もう一つ勘違いを生む表がある、「五十音」、「あかさたな・・・」を「あ段」という。「あいうえお」を「あ行」という。そこで問う、「行」はタテ方向か、ヨコ方向か。日本語は変な言語ゆえ、あ行はタテでも横でもいける。書き方次第である。なので、その考えを数学に持ってくると、行ってどっち?列ってどっち?になる。
SCP財団職員 @jsdf5475 2018-07-21 22:53:15
現代の暗号はセキュリティクリアランスと暗号表を持ってるような人でないと解読できないってことかな?
佐渡災炎 @sadscient 2018-07-22 01:11:04
pompocotanuky 縦か横かで覚えようとするからでは。
佐渡災炎 @sadscient 2018-07-22 01:11:19
Eternal_NewMan 縦か横かで覚えようとするからでは。
佐渡災炎 @sadscient 2018-07-22 01:12:59
「行」と「列」はあくまで「行」と「列」であって縦とか横とか関係無い。たまたま数学では行を横並び、列を縦並びとして扱ってるだけで、横がどっちとか縦がどっちとか考える奴なんかいるのか。
ニラキア @nirakia 2018-07-22 01:56:57
財産を守るためには泥棒だけじゃなく 詐欺師にも気をつけるましょう って感じかな?
消費者金融検索エンジン試作会 @DTDLyr4b7asjPNm 2018-07-22 02:22:39
そもそもの定義の話なんだけど、暗号というのは「第三者に解読できないように変換する技術」のことであって機密だの認証だのは「セキュリティ」「情報通信技術」に分類される問題
佐渡災炎 @sadscient 2018-07-22 02:34:44
rowとcolumnを直観的に訳したら棟と梁とかになりそうだけど、今「行列」と呼ばれている物が「棟梁」とか訳されてたらもっと混乱する気がする。
消費者金融検索エンジン試作会 @DTDLyr4b7asjPNm 2018-07-22 03:18:14
sslはセキュリティマニュアルというか暗号技術と認証制度をパッケージ化したのことで、純粋つうか狭義の暗号ではないべよ nirakia 普段の買い物でも胡散臭い店は避けるでしょ。ネットの場合そもそも存在するかもわからない店もある。そこで「この店は存在しますよ」とお役所みたいな信用できる機関が認定する。これが「認証」。でその店以外に個人情報を見られたくないし書き換えとかされると困るって事で店と自分だけに通用する(ちょっと理解が違うけども)鍵で暗号文をつくって渡すわけ
りくてん @lichten117 2018-07-22 09:29:00
10年前ぐらいにオレオレ証明書を使う前と後のパケットキャプチャの結果をプリントアウトして「暗号化されていることが分かると思います」の宣わってオレオレ証明書を採用する地獄のような打ち合わせに参加したことがあるのを思い出したぜ
新津孝太 @nytsukouta 2018-07-22 10:55:11
ハイブリッド暗号って共通鍵暗号と公開鍵暗号を同時に使うってやつに用いられるし、なんか本文の言葉がややこしい あと、古典的に解読できる人=正しい相手ってのは、近代でも結局秘密鍵を持ってる人=正しい相手だから、ほとんど同じじゃないかな
ログインして広告を非表示にする
ログインして広告を非表示にする