Supposons que j'ai une application qui utilise le cryptage à l'aide de SSL et à condition que vous ne puissiez pas contrôler la suite de la suite Cipher et en supposant que j'ai une compression personnalisée sur les données avant que le cryptage ait lieu. Quel serait le meilleur mode de compression à utiliser? Si je vais de l'avant et que j'utilise déflate/gzip am paranoïaque, je pourrais m'exposer à une attaque dans laquelle un attaquant peut exposer des données cryptées à l'aide d'attaques de texte ordinaires choisies. (quelque chose de similaire à l'attaque du crime)
Cryptage Hides Data mais fuites Taille de données. C'est une propriété commune de tous les systèmes de cryptage: les données cryptées ont (plus ou moins) de la même taille que les données claires.
La compression modifie le Taille de données Mais cela le fait en trouvant des "redondances" (dans un sens lâche) dans les données. Donc, le taux de réussite de la compression dépend du Table des données. Ainsi, la compression fait Taille de données dépendant sur contenu de données.
Prenez les deux ensemble, ce qui vous amène à la conclusion inévitable mais grimodique: la compression fuit des informations sur le contenu des données, même via le cryptage. La seule conclusion générale est alors que que vous ne comprimez pas du tout .
Le criminel attaque fonctionne simplement avec cette notion, dans une configuration spécifique au Web où l'attaquant choisit une partie des données compressées et tente d'obtenir d'autres données confidentielles qui font également partie de la courant comprimé. Ceci est un Attaque de plainte choisies Et cela rend l'attaque vraiment efficace. Cependant, dans toute la généralité, une fuite est une fuite: même dans des scénarios d'attaque purement passive, la compression rendra votre connexion "moins sécurisée".
Le principe n'est pas spécifique à dégonfler ; Changer-le à un algorithme personnalisé ne vous éviterait pas. Dégonfler n'est pas "particulièrement faible" ou "particulièrement fort" à cet égard.
Tout ce qui précède s'applique pour tous sans perte Algorithmes de compression. Ça ne veut pas Pertes Algorithmes de compression qui atteignent une bande passante de données corrigée. Par exemple, si vous comprimez de la musique dans un MP3 à 128 kbits/s (sans débit variable), la taille de données résultante ne dépendra pas du contenu de la musique, uniquement sur la durée de la musique d'origine. Mais, bien entendu, les algorithmes de compression de pertes ne sont applicables qu'aux données où la perte peut être tolérée; par exemple. Son, pas xml.
(La chose à propos de "perte" est que vous ne pouvez pas garantir un taux de compression fixe sans perdre de données potentielle, en raison du principe du pigeonhole , à moins que votre "compression" ne soit en réalité un manque de compression, avec le Les données d'entrée étant totalement inchangées.)