zoom、暗号化を強化へ(AES256GCMとは)


武漢ウイルスの蔓延で、リモート会議ツールの代名詞となりつつあるzoom。

対面形式のセミナーが軒並み中止となり、ZOOMを使ったセミナーに変更になり、zoom飲み会なんて言う言葉も生まれた。

自宅は3日間の総通信料が10GBを超過すると速度制限がかかってしまうのだが、zoomはそんな速度制限下でもさほど遅延なく、デスクトップ共有されても非常にきれいに見えるので、一体どんな技術使っているのだろうかと大変興味深い。

一方でビデオ会議システムとしてのデファクトスタンダードになるということは、不正アクセスに晒されるリスクも高くなる(攻撃者視点で考えた場合、zoomを攻略したほうが費用対効果が高くなるので、様々なアタックを受け、脆弱性が見つかりやすくなる)

一方、zoomの問題として、録画データがAWS S3バケットに暗号化されずに乗っていて、特定の命名規則で公開されているという話や、アメリカはzoomを中国企業とみなしている等、きな臭い噂が流れている。

そんなzoomが暗号強化の発表をした。

従来はAES256ECBだったものを、AES256GCMに変えるらしい。

暗号強度については過去に一度学習したことがあったが、大分記憶があいまいになっているため、これを機に整理しておきたいと思う。

AESとは

AES(Advanced Encryption Standard)と暗号化アルゴリズムの名称

暗号化アルゴリズムには共通鍵暗号方式と公開鍵暗号方式があり、AESは共通鍵暗号方式に分類される。

その後ろの数字(256)は鍵長を指す。

AESは128、192、256の3パターンが利用できる。

つまりAES256とは、AESの中で最も長い(強度の強い)鍵長となる。

最後のECBやGCMは利用モードを指す

ECBとは

ECBモード (Electronic Codebook Mode)とは、もっとも単純な暗号利用モードである。

メッセージはブロックに分割され、それぞれのブロックは独立して暗号化される。

ECBモードの欠点は、同じ鍵を用いた場合ある平文ブロックを暗号化した結果の暗号文ブロックが常に同じとなることである。

このため、データのパターンを隠蔽することができない。

メッセージの機密性の保持には向かず、暗号化プロトコルにおける使用は推奨されない。

GCMとは

GCM(Galois/Counter Mode)とは、認証付き暗号の一つであり、データ保護と認証(完全性確認)の両方の機能を提供する。

暗号機能(=前出のECBに相当)部分はCTRモード (Counter Mode)が利用されている。

ECBモードが原始的なブロック暗号モードであるのに対して、CTRモードはブロック暗号でもありながら、ストリーム暗号にも属するため、ストリーミングの暗号化に適しているとされる。

認証付き暗号と言うのは、データの秘匿性、完全性、および認証性を同時に提供するためのものであり、暗号データそのものの改善を防ぐために暗号化データに検算用データ(=認証)を付加し、複合化時に改ざんされていないことをチェックするようなものである。

認証についてはGalois modeという、ガロア域 (Galois field)における乗法を用いた計算式を用いている。

暗号化の話は深入りすると数学の世界に入り込んでしまうため、ここまでにしておきたい。

ECBモードがいつからあったか分からなかったのだが、後継であるCBCモードが1976年に開発されているので、ECBモードも同年にあったとしよう。

一方のGCMは2007年にNISTが標準として制定した。

つまり、暗号化方式については石器時代から近代まで一気にバージョンアップされたということだろう。うん。

【参考】
https://www.itmedia.co.jp/news/articles/2004/23/news065.html