Les codeurs conquièrent la sécurité : Série "Partageons et apprenons" - Padding Oracle
Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :


Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstration

Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :

Bien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :

Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Voir le rapportRéservez une démonstrationBien que Padding Oracle semble être un très mauvais nom pour un groupe de rock alternatif, il s'agit en fait d'une vulnérabilité qui peut être utilisée par des attaquants pour décrypter des informations sans connaître la clé de cryptage.
En termes de difficulté globale pour un attaquant, celle-ci se situe en haut de l'échelle. Il ne s'agit pas d'un bouton magique de décryptage, mais d'un processus laborieux par lequel les pirates peuvent examiner les messages d'erreur qui leur sont envoyés concernant le remplissage des cellules et s'en servir pour déterminer où les données cryptées se terminent et où le remplissage commence. Ils peuvent ensuite déterminer les différents bits du chiffrement et éventuellement le déchiffrer s'ils disposent de suffisamment de temps et d'informations pour l'examiner.
Heureusement, il existe plusieurs étapes relativement simples qui permettent à un attaquant de ne plus pouvoir utiliser l'oracle pour déchiffrer des données cryptées. Dans cet épisode, nous allons apprendre :
- Comment cela fonctionne-t-il ?
- Pourquoi cette vulnérabilité est-elle si dangereuse ?
- Comment vous pouvez mettre en place des défenses pour l'éviter.
Comment fonctionne l'Oracle Padding ?
L'enchaînement de blocs de chiffrement (CBC) est un moyen de créer un chiffrement par blocs dans lequel une séquence entière de bits d'information, tels que des cellules stockées dans une base de données, est chiffrée à l'aide d'une clé de chiffrement qui s'applique à l'ensemble de la chaîne d'information. Lors de l'utilisation du CBC, le cryptage d'un seul bloc de texte chiffré dépend de tous les blocs précédents. En théorie, cela rend le cryptage extrêmement solide, puisque tout, même le réarrangement des blocs, corrompra les données.
Le problème des algorithmes de chiffrement CBC (et de tous les algorithmes de chiffrement par blocs, d'ailleurs) est qu'ils ne peuvent être chiffrés qu'à l'aide de blocs de taille exacte. Normalement, cela se fait par blocs de 8 ou 16 octets. Que se passe-t-il donc lorsque le CBC doit faire entrer 2 octets de données dans une unité de texte chiffré de 16 octets ? Il utilisera des caractères de remplissage, c'est-à-dire des caractères absurdes, pour combler les lacunes et donner à l'unité une taille appropriée.
La plupart des schémas de remplissage sont bien connus, le PKCS#7 étant l'un des plus populaires, de sorte que les attaquants peuvent savoir quel type de remplissage est utilisé. Par exemple, si le CBC doit remplir cinq caractères dans un bloc, le PKCS#7 utilisera la valeur d'octet 0x05 répétée cinq fois après le texte en clair.
Les attaquants utilisent leur connaissance des schémas CBC et de remplissage pour envoyer des requêtes à un serveur hôte, également appelé oracle. S'ils ont accès aux bons outils, ils peuvent être en mesure de forcer le serveur à leur dire si le remplissage de leur requête est incorrect. Pour ce faire, il peut passer de zéro à 255 pour chaque octet du chiffrement jusqu'à ce que le serveur lui dise que le remplissage est correct. Il passe alors à l'unité suivante et répète le processus, en notant à chaque fois où commence le remplissage.
Cela ne leur permet pas de décrypter le message ni même la cellule, mais pourrait leur permettre de cartographier chaque maillon de la chaîne pour savoir où se termine le texte en clair et où commence le rembourrage. Ils peuvent également utiliser des calculs XOR pour déterminer la valeur du dernier octet du texte en clair original.
Pourquoi le Padding Oracle est-il si dangereux ?
La raison pour laquelle un pirate informatique consacre autant d'efforts à briser le cryptage est le gain potentiel. Peu de gens chiffrent des données qui n'ont pas de valeur. Le danger pour l'organisation hôte dépend des données compromises. Il peut s'agir de mots de passe, de comptes d'utilisateurs, d'informations financières, de numéros de cartes de crédit, de dossiers de patients, de communications sensibles ou de toute autre information précieuse et très recherchée.
L'utilisation du padding oracle peut également être la porte d'entrée pour des attaques ultérieures. Si un attaquant peut utiliser le padding oracle pour voler des mots de passe par exemple, l'élévation de ses privilèges et la pénétration plus profonde dans un réseau est une tâche secondaire facile.
Tout le monde considère le chiffrement comme la défense ultime contre l'espionnage ou la compromission. Cependant, le va-et-vient entre la science du chiffrement et ceux qui veulent le casser dure depuis des siècles. L'oracle de la capitalisation n'est qu'une des méthodes qui donnent l'avantage aux attaquants.
Les attaques d'Oracle contre le rembourrage ne sont pas à l'abri d'un atterrissage brutal
Heureusement, il existe plusieurs façons d'éviter l'oracle de remplissage. L'une des meilleures consiste à utiliser un mode de chiffrement plus puissant, tel que le mode Galois/compteur (GCM) ou le mode Offset Codebook (OCB). Ce mode diffère du CBC en ce qu'il utilise une taille de bloc de chiffrement de 128 bits. Il utilise également un compteur pour chaque bloc de données, puis utilise ce nombre pour créer le texte chiffré. En d'autres termes, il n'est pas sensible aux attaques par oracle de remplissage.
La mise en œuvre de contrôles efficaces de gestion des erreurs peut également réduire considérablement les chances de succès d'un attaquant. Étant donné que les attaques par oracle de remplissage reposent sur la fuite d'informations, renvoyez des messages d'erreur génériques au lieu d'erreurs de remplissage spécifiques en cas d'échec du chiffrement ou du déchiffrement.
Vous pouvez également mettre en œuvre le code d'authentification des messages (MAC). Les valeurs MAC protègent l'intégrité et l'authenticité des données en permettant aux vérificateurs de détecter toute modification du contenu du message à l'aide d'une clé secrète.
Enfin, toutes les attaques par l'oracle du remplissage nécessitent des requêtes répétées. Il peut y avoir plus de 200 requêtes pour déterminer le schéma de remplissage d'une seule cellule, multiplié par le nombre d'unités d'information protégées dans la chaîne. En limitant le nombre de demandes provenant de la même source, vous pouvez mettre fin aux attaques par oracle de remplissage en refusant l'accès à un attaquant avant qu'il ne puisse réellement commencer sa tentative.
Étude complémentaire sur l'Oracle Padding
Toute méthode permettant à un pirate de décrypter des informations sensibles peut devenir un véritable cauchemar. Mais nous espérons que vous avez appris quelques bonnes méthodes pour éviter que cela ne se produise.
Pour en savoir plus, vous pouvez consulter la définition et la liste de contrôle de l'OWASP sur padding oracle. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être à la hauteur pour déjouer les attaques de l'oracle du padding ? Essayez sur la plateforme Secure Code Warrior :
Table des matières

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationTéléchargerRessources pour vous aider à démarrer
Services professionnels - Accélérer grâce à l'expertise
L'équipe des services de stratégie de programme (PSS) de Secure Code Warriorvous aide à construire, améliorer et optimiser votre programme de codage sécurisé. Que vous partiez de zéro ou que vous affiniez votre approche, nos experts vous fournissent des conseils sur mesure.
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu, à la pointe de l'industrie, évolue constamment pour s'adapter au paysage du développement logiciel en constante évolution, tout en gardant votre rôle à l'esprit. Les sujets abordés vont de l'IA à l'injection XQuery, et sont proposés pour une variété de rôles, des architectes et ingénieurs aux gestionnaires de produits et à l'assurance qualité. Découvrez en avant-première ce que notre catalogue de contenu a à offrir par sujet et par rôle.
Quêtes : Apprentissage de pointe pour permettre aux développeurs de garder une longueur d'avance et d'atténuer les risques.
Quests est une learning platform qui aide les développeurs à atténuer les risques liés à la sécurité des logiciels en améliorant leurs compétences en matière de codage sécurisé. Grâce à des parcours d'apprentissage, des défis pratiques et des activités interactives, elle permet aux développeurs d'identifier et de prévenir les vulnérabilités.
Ressources pour vous aider à démarrer
Vibe Coding va-t-il transformer votre base de code en une fête de fraternité ?
Le codage vibratoire est comme une fête de fraternité universitaire, et l'IA est la pièce maîtresse de toutes les festivités, le tonneau. C'est très amusant de se laisser aller, d'être créatif et de voir où votre imagination peut vous mener, mais après quelques barils, boire (ou utiliser l'IA) avec modération est sans aucun doute la solution la plus sûre à long terme.
La décennie des défenseurs : Secure Code Warrior Dixième anniversaire
Secure Code WarriorL'équipe fondatrice de SCW est restée soudée, dirigeant le navire à travers chaque leçon, chaque triomphe et chaque revers pendant une décennie entière. Nous nous développons et sommes prêts à affronter notre prochain chapitre, SCW 2.0, en tant que leaders de la gestion des risques pour les développeurs.