web-dev-qa-db-ja.com

SSLを使用しているときに使用するのに最適なカスタム圧縮方法は何ですか?

SSLを使用して暗号化を行うアプリケーションがあり、ネゴシエートされる暗号スイートを制御できないと想定し、暗号化が行われる前にデータに対してカスタム圧縮を行うと仮定します。使用するのに最適な圧縮モードは何ですか?私が先に進んでDEFLATE/GZIPを使用している場合は妄想的です。攻撃者が選択したプレーンテキスト攻撃を使用して暗号化されたデータを公開できる攻撃にさらされる可能性があります。 (CRIME攻撃に似たもの)

9
Cookies

暗号化はdataを隠しますが、data sizeをリークします。これは、すべての暗号化システムに共通する特性です。暗号化されたデータのサイズは(多かれ少なかれ)クリアなデータと同じです。

圧縮によりデータサイズが変更されますが、データ内の(冗長な意味で)「冗長性」を見つけることによって変更されます。そのため、圧縮成功率はデータの内容に依存します。したがって、圧縮により、データサイズデータコンテンツに依存します。

この2つをまとめると、避けられないが厳しい結果が導き出されます。つまり、暗号化を介しても、データの内容に関する情報が圧縮によってリークされます。唯一の一般的な結論は、あなたはまったく圧縮しないということです。

CRIME攻撃 は、攻撃者が圧縮されたデータの一部を選択し、他の機密データを取得しようとするWeb固有の設定で、単にその概念で機能します。圧縮ストリーム。これは選択された平文攻撃であり、攻撃を非常に効率的にします。ただし、一般的に、リークはリークです。純粋にパッシブな攻撃シナリオでも、圧縮により接続の「安全性が低下」します。

原則は Deflate に固有ではありません。それをカスタムアルゴリズムに変更しても、保存されません。その点で、デフレートは「特に弱い」または「特に強い」というわけではありません。


上記のすべてがすべてのlossless圧縮アルゴリズムに適用されます。データ帯域幅を修正するlossy圧縮アルゴリズムには対応していません。たとえば、音楽を正確に128 kbits/s(可変レートなし)でMP3に圧縮すると、結果のデータサイズは音楽の内容に依存せず、元の音楽の長さにのみ依存します。ただし、もちろん、非可逆圧縮アルゴリズムは、損失を許容できるデータにのみ適用できます。例えばXMLではなくサウンド。

(「不可逆」の問題は、 pigeonholeの原則 のため、データの損失の可能性がないと固定圧縮率を保証できないことです。入力データは完全に変更されていません。)

25
Tom Leek