
Les codeurs conquièrent la sécurité : série Share & Learn - 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échiffrer des informations sans connaître la clé de cryptage.

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique 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é.
Veuillez réserver 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 :

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique 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é.
Veuillez consulter le rapportVeuillez réserver 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 :
Table des matières

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique 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é.
Veuillez réserver une démonstration.TéléchargerRessources pour vous aider à démarrer
Thèmes et contenus de formation sur le code sécurisé
Notre contenu de pointe évolue constamment pour s'adapter à l'évolution constante du paysage du développement de logiciels tout en tenant compte de votre rôle. Des sujets couvrant tout, de l'IA à l'injection XQuery, proposés pour une variété de postes, allant des architectes aux ingénieurs en passant par les chefs de produit et l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par sujet et par rôle.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour vous aider à démarrer
Cybermon est de retour : les missions Beat the Boss sont désormais disponibles sur demande.
Cybermon 2025 : Vaincre le Boss est désormais accessible toute l'année dans SCW. Mettez en œuvre des défis de sécurité avancés liés à l'IA et au LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénieurs peuvent se préparer grâce à des pratiques de sécurité dès la conception, à la prévention des vulnérabilités et au renforcement des capacités des développeurs.
Facilitateur 1 : Critères de réussite clairement définis et mesurables
Enabler 1 inaugure notre série en 10 parties intitulée « Enablers of Success » en démontrant comment associer le codage sécurisé à des résultats commerciaux tels que la réduction des risques et la rapidité afin d'assurer la maturité à long terme des programmes.



%20(1).avif)
.avif)
