IV and Let Die


Un développeur a récemment mis en place un système de chiffrement pour sécuriser les communications entre un client et une API interne (/api/login).

Confiant dans l’utilisation de AES-256-GCM, il affirme que les données échangées sont parfaitement protégées.

Cependant, lors d’une analyse réseau, vous interceptez deux messages chiffrés issus de cette communication.

Un détail attire votre attention : les deux messages semblent avoir été chiffrés dans des conditions identiques.

{ "ciphertext1": "92000f7f2950c585f01dd3c80d00ef3c5e18267dcadfda837f9c075e2ce352c9d1559130746bdf320cc46edeed32f6e8449db797b4cbf1fed99c4186536525d65f4bf88d39433106da6c4acee38ba2c01ab427458eebafc4e2d18be8f865c1004a313d7820ef2cc0a0ed47121e21604f2ab98072023b7af3b8ed7f7205a784e78fdd4fe0fde16df93b4d42725bc2ff29e099db3f0fc777b140f1e6fc2fb45c15d3b721646bc0525752a82d43e4de10ca2b", "ciphertext2": "84031d6c7227f185f654edd2105cca457c3149489d9e9dc017e5725f3ae10d9b" }


Le second message contient certainement une information sensible.