SSLを使用して暗号化を行うアプリケーションがあり、ネゴシエートされる暗号スイートを制御できないと想定し、暗号化が行われる前にデータに対してカスタム圧縮を行うと仮定します。使用するのに最適な圧縮モードは何ですか?私が先に進んでDEFLATE/GZIPを使用している場合は妄想的です。攻撃者が選択したプレーンテキスト攻撃を使用して暗号化されたデータを公開できる攻撃にさらされる可能性があります。 (CRIME攻撃に似たもの)
暗号化はdataを隠しますが、data sizeをリークします。これは、すべての暗号化システムに共通する特性です。暗号化されたデータのサイズは(多かれ少なかれ)クリアなデータと同じです。
圧縮によりデータサイズが変更されますが、データ内の(冗長な意味で)「冗長性」を見つけることによって変更されます。そのため、圧縮成功率はデータの内容に依存します。したがって、圧縮により、データサイズがデータコンテンツに依存します。
この2つをまとめると、避けられないが厳しい結果が導き出されます。つまり、暗号化を介しても、データの内容に関する情報が圧縮によってリークされます。唯一の一般的な結論は、あなたはまったく圧縮しないということです。
CRIME攻撃 は、攻撃者が圧縮されたデータの一部を選択し、他の機密データを取得しようとするWeb固有の設定で、単にその概念で機能します。圧縮ストリーム。これは選択された平文攻撃であり、攻撃を非常に効率的にします。ただし、一般的に、リークはリークです。純粋にパッシブな攻撃シナリオでも、圧縮により接続の「安全性が低下」します。
原則は Deflate に固有ではありません。それをカスタムアルゴリズムに変更しても、保存されません。その点で、デフレートは「特に弱い」または「特に強い」というわけではありません。
上記のすべてがすべてのlossless圧縮アルゴリズムに適用されます。データ帯域幅を修正するlossy圧縮アルゴリズムには対応していません。たとえば、音楽を正確に128 kbits/s(可変レートなし)でMP3に圧縮すると、結果のデータサイズは音楽の内容に依存せず、元の音楽の長さにのみ依存します。ただし、もちろん、非可逆圧縮アルゴリズムは、損失を許容できるデータにのみ適用できます。例えばXMLではなくサウンド。
(「不可逆」の問題は、 pigeonholeの原則 のため、データの損失の可能性がないと固定圧縮率を保証できないことです。入力データは完全に変更されていません。)