
Programmierer erobern die Sicherheit: Serie „Teilen und Lernen“ — Padding Oracle
Padding Oracle klingt zwar nach einem wirklich schlechten Ruf für eine alternative Rockband, ist aber tatsächlich eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungsschlüssel zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieser ziemlich weit oben auf der Skala. Wir sprechen nicht von einer magischen Entschlüsselungsschaltfläche, sondern von einem mühsamen Prozess, bei dem Hacker die an sie gesendeten Fehlermeldungen zum Auffüllen von Zellen untersuchen und anhand dieser Informationen feststellen können, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Teile der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genügend Zeit und Eingaben zur Untersuchung haben.
Zum Glück gibt es mehrere relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding Oracle zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Episode werden wir lernen:
- 操作方法
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Abwehrmaßnahmen einrichten können, um dies zu verhindern.
Wie funktioniert Padding Oracle?
Cipher Block Chaining (CBC) ist eine Methode, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. Zellen, die in einer Datenbank gespeichert sind, mit einem Verschlüsselungsschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei Verwendung von CBC hängt die Verschlüsselung eines einzelnen Chiffretextblocks von allen weiteren Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuordnung der Blöcke, die Daten beschädigt.
Das Problem mit CBC-Chiffren (und allen Blockchiffren übrigens) besteht darin, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise erfolgt dies in 8- oder 16-Byte-Größen. Was passiert also, wenn CBC 2 Byte an Daten in eine 16-Byte-Chiffretexteinheit einpassen muss? Es wird Füllungen verwenden, im Grunde genommen nur unsinnige Zeichen, um die Lücken zu füllen und der Einheit eine angemessene Größe zuzuweisen.
Die meisten Padding-Schemata sind allgemein bekannt, wobei PKCS #7 eines der beliebtesten ist, sodass Angreifer möglicherweise wissen, welche Art von Padding verwendet wird. Wenn das CBC beispielsweise fünf Zeichen in einem Block auffüllen muss, würde PKCS #7 den Bytewert 0x05 verwenden, der fünfmal nach dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Anfragen an einen Hostserver zu senden, der auch als Oracle bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server möglicherweise dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Abfrage falsch ist. Um dies zu erreichen, können sie für jedes Byte in der Chiffre von Null auf 255 wechseln, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann fahren sie mit der nächsten Einheit fort und wiederholen den Vorgang, wobei sie jeweils aufzeichnen, wo das Padding beginnt.
Dadurch können sie die Nachricht oder sogar die Zelle nicht entschlüsseln, aber sie könnten jedes Glied in der Kette so zuordnen, wo der Klartext endet und wo das Padding beginnt. Sie können möglicherweise auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes zu ermitteln.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Knacken der Verschlüsselung stecken würde, liegt in der möglichen Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt davon ab, ob die Daten kompromittiert werden. Dazu können Dinge wie Passwörter, Benutzerkonten, Finanzinformationen, Kreditkartennummern, Patientenakten, vertrauliche Kommunikation oder eine beliebige Anzahl von äußerst gesuchten und wertvollen Informationen gehören.
Die Verwendung von Padding Oracle könnte auch das Tor zu nachfolgenden Angriffen sein. Wenn ein Angreifer beispielsweise mithilfe von Padding Oracle Passwörter stehlen kann, ist es eine einfache sekundäre Aufgabe, seine Rechte zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder hält Verschlüsselung für die ultimative Verteidigung gegen Schnüffeln oder Kompromittieren. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denjenigen, die sie brechen würden, dauert jedoch schon seit Jahrhunderten an. Das Padding Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding Oracle-Angriffen eine harte Landung
Zum Glück gibt es eine ganze Reihe von Möglichkeiten, das Padding Orakel zu verhindern. Eine der besten Methoden ist die Verwendung eines stärkeren Verschlüsselungsmodus für Operationen wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Es unterscheidet sich von CBC dadurch, dass es eine Chiffreblockgröße von 128 Bit verwendet. Es verwendet auch einen Zähler für jeden Datenblock und verwendet dann diese Zahl, um den Chiffretext zu erstellen. Mit anderen Worten, es ist nicht anfällig für Padding-Oracle-Angriffe.
Die Implementierung guter Kontrollen zur Fehlerbehandlung kann auch die Erfolgschancen eines Angreifers erheblich beeinträchtigen. Da Padding-Oracle-Angriffe auf Informationslecks beruhen, geben Sie bei einem Ver-/Entschlüsselungsfehler generische Fehlermeldungen statt spezifischer Padding-Fehler zurück.
Sie können auch den Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Datenintegrität als auch deren Authentizität, indem sie es Prüfern ermöglichen, Änderungen am Nachrichteninhalt mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Oracle-Angriffe wiederholte Abfragen. Es können über 200 Anfragen gestellt werden, um das Auffüllschema für eine einzelne Zelle herauszufinden, multipliziert mit der Anzahl der Informationseinheiten, die in der Kette geschützt werden. Indem Sie die Anzahl der Anfragen einschränken, die von derselben Quelle eingehen, können Sie Padding-Oracle-Angriffe abwehren, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich beginnen kann.
Weitere Studie zu Padding Oracle
Jede Methode, mit der ein Angreifer vertrauliche Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Wir hoffen jedoch, dass Sie einige gute Methoden gelernt haben, um dies von vornherein zu verhindern.
Für weitere Informationen können Sie sich die OWASP ansehen Definition und Checkliste auf dem Padding Orakel. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.
Denken Sie, Sie sind jetzt in der Lage, Padding-Oracle-Angriffe abzuwehren? Probieren Sie es auf der Secure Code Warrior-Plattform aus:


Padding Oracle klingt zwar nach einem wirklich schlechten Ruf für eine alternative Rockband, ist aber tatsächlich eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungsschlüssel zu kennen.

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
预约演示

Padding Oracle klingt zwar nach einem wirklich schlechten Ruf für eine alternative Rockband, ist aber tatsächlich eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungsschlüssel zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieser ziemlich weit oben auf der Skala. Wir sprechen nicht von einer magischen Entschlüsselungsschaltfläche, sondern von einem mühsamen Prozess, bei dem Hacker die an sie gesendeten Fehlermeldungen zum Auffüllen von Zellen untersuchen und anhand dieser Informationen feststellen können, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Teile der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genügend Zeit und Eingaben zur Untersuchung haben.
Zum Glück gibt es mehrere relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding Oracle zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Episode werden wir lernen:
- 操作方法
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Abwehrmaßnahmen einrichten können, um dies zu verhindern.
Wie funktioniert Padding Oracle?
Cipher Block Chaining (CBC) ist eine Methode, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. Zellen, die in einer Datenbank gespeichert sind, mit einem Verschlüsselungsschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei Verwendung von CBC hängt die Verschlüsselung eines einzelnen Chiffretextblocks von allen weiteren Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuordnung der Blöcke, die Daten beschädigt.
Das Problem mit CBC-Chiffren (und allen Blockchiffren übrigens) besteht darin, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise erfolgt dies in 8- oder 16-Byte-Größen. Was passiert also, wenn CBC 2 Byte an Daten in eine 16-Byte-Chiffretexteinheit einpassen muss? Es wird Füllungen verwenden, im Grunde genommen nur unsinnige Zeichen, um die Lücken zu füllen und der Einheit eine angemessene Größe zuzuweisen.
Die meisten Padding-Schemata sind allgemein bekannt, wobei PKCS #7 eines der beliebtesten ist, sodass Angreifer möglicherweise wissen, welche Art von Padding verwendet wird. Wenn das CBC beispielsweise fünf Zeichen in einem Block auffüllen muss, würde PKCS #7 den Bytewert 0x05 verwenden, der fünfmal nach dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Anfragen an einen Hostserver zu senden, der auch als Oracle bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server möglicherweise dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Abfrage falsch ist. Um dies zu erreichen, können sie für jedes Byte in der Chiffre von Null auf 255 wechseln, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann fahren sie mit der nächsten Einheit fort und wiederholen den Vorgang, wobei sie jeweils aufzeichnen, wo das Padding beginnt.
Dadurch können sie die Nachricht oder sogar die Zelle nicht entschlüsseln, aber sie könnten jedes Glied in der Kette so zuordnen, wo der Klartext endet und wo das Padding beginnt. Sie können möglicherweise auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes zu ermitteln.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Knacken der Verschlüsselung stecken würde, liegt in der möglichen Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt davon ab, ob die Daten kompromittiert werden. Dazu können Dinge wie Passwörter, Benutzerkonten, Finanzinformationen, Kreditkartennummern, Patientenakten, vertrauliche Kommunikation oder eine beliebige Anzahl von äußerst gesuchten und wertvollen Informationen gehören.
Die Verwendung von Padding Oracle könnte auch das Tor zu nachfolgenden Angriffen sein. Wenn ein Angreifer beispielsweise mithilfe von Padding Oracle Passwörter stehlen kann, ist es eine einfache sekundäre Aufgabe, seine Rechte zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder hält Verschlüsselung für die ultimative Verteidigung gegen Schnüffeln oder Kompromittieren. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denjenigen, die sie brechen würden, dauert jedoch schon seit Jahrhunderten an. Das Padding Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding Oracle-Angriffen eine harte Landung
Zum Glück gibt es eine ganze Reihe von Möglichkeiten, das Padding Orakel zu verhindern. Eine der besten Methoden ist die Verwendung eines stärkeren Verschlüsselungsmodus für Operationen wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Es unterscheidet sich von CBC dadurch, dass es eine Chiffreblockgröße von 128 Bit verwendet. Es verwendet auch einen Zähler für jeden Datenblock und verwendet dann diese Zahl, um den Chiffretext zu erstellen. Mit anderen Worten, es ist nicht anfällig für Padding-Oracle-Angriffe.
Die Implementierung guter Kontrollen zur Fehlerbehandlung kann auch die Erfolgschancen eines Angreifers erheblich beeinträchtigen. Da Padding-Oracle-Angriffe auf Informationslecks beruhen, geben Sie bei einem Ver-/Entschlüsselungsfehler generische Fehlermeldungen statt spezifischer Padding-Fehler zurück.
Sie können auch den Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Datenintegrität als auch deren Authentizität, indem sie es Prüfern ermöglichen, Änderungen am Nachrichteninhalt mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Oracle-Angriffe wiederholte Abfragen. Es können über 200 Anfragen gestellt werden, um das Auffüllschema für eine einzelne Zelle herauszufinden, multipliziert mit der Anzahl der Informationseinheiten, die in der Kette geschützt werden. Indem Sie die Anzahl der Anfragen einschränken, die von derselben Quelle eingehen, können Sie Padding-Oracle-Angriffe abwehren, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich beginnen kann.
Weitere Studie zu Padding Oracle
Jede Methode, mit der ein Angreifer vertrauliche Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Wir hoffen jedoch, dass Sie einige gute Methoden gelernt haben, um dies von vornherein zu verhindern.
Für weitere Informationen können Sie sich die OWASP ansehen Definition und Checkliste auf dem Padding Orakel. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.
Denken Sie, Sie sind jetzt in der Lage, Padding-Oracle-Angriffe abzuwehren? Probieren Sie es auf der Secure Code Warrior-Plattform aus:

Padding Oracle klingt zwar nach einem wirklich schlechten Ruf für eine alternative Rockband, ist aber tatsächlich eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungsschlüssel zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieser ziemlich weit oben auf der Skala. Wir sprechen nicht von einer magischen Entschlüsselungsschaltfläche, sondern von einem mühsamen Prozess, bei dem Hacker die an sie gesendeten Fehlermeldungen zum Auffüllen von Zellen untersuchen und anhand dieser Informationen feststellen können, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Teile der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genügend Zeit und Eingaben zur Untersuchung haben.
Zum Glück gibt es mehrere relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding Oracle zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Episode werden wir lernen:
- 操作方法
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Abwehrmaßnahmen einrichten können, um dies zu verhindern.
Wie funktioniert Padding Oracle?
Cipher Block Chaining (CBC) ist eine Methode, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. Zellen, die in einer Datenbank gespeichert sind, mit einem Verschlüsselungsschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei Verwendung von CBC hängt die Verschlüsselung eines einzelnen Chiffretextblocks von allen weiteren Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuordnung der Blöcke, die Daten beschädigt.
Das Problem mit CBC-Chiffren (und allen Blockchiffren übrigens) besteht darin, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise erfolgt dies in 8- oder 16-Byte-Größen. Was passiert also, wenn CBC 2 Byte an Daten in eine 16-Byte-Chiffretexteinheit einpassen muss? Es wird Füllungen verwenden, im Grunde genommen nur unsinnige Zeichen, um die Lücken zu füllen und der Einheit eine angemessene Größe zuzuweisen.
Die meisten Padding-Schemata sind allgemein bekannt, wobei PKCS #7 eines der beliebtesten ist, sodass Angreifer möglicherweise wissen, welche Art von Padding verwendet wird. Wenn das CBC beispielsweise fünf Zeichen in einem Block auffüllen muss, würde PKCS #7 den Bytewert 0x05 verwenden, der fünfmal nach dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Anfragen an einen Hostserver zu senden, der auch als Oracle bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server möglicherweise dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Abfrage falsch ist. Um dies zu erreichen, können sie für jedes Byte in der Chiffre von Null auf 255 wechseln, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann fahren sie mit der nächsten Einheit fort und wiederholen den Vorgang, wobei sie jeweils aufzeichnen, wo das Padding beginnt.
Dadurch können sie die Nachricht oder sogar die Zelle nicht entschlüsseln, aber sie könnten jedes Glied in der Kette so zuordnen, wo der Klartext endet und wo das Padding beginnt. Sie können möglicherweise auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes zu ermitteln.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Knacken der Verschlüsselung stecken würde, liegt in der möglichen Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt davon ab, ob die Daten kompromittiert werden. Dazu können Dinge wie Passwörter, Benutzerkonten, Finanzinformationen, Kreditkartennummern, Patientenakten, vertrauliche Kommunikation oder eine beliebige Anzahl von äußerst gesuchten und wertvollen Informationen gehören.
Die Verwendung von Padding Oracle könnte auch das Tor zu nachfolgenden Angriffen sein. Wenn ein Angreifer beispielsweise mithilfe von Padding Oracle Passwörter stehlen kann, ist es eine einfache sekundäre Aufgabe, seine Rechte zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder hält Verschlüsselung für die ultimative Verteidigung gegen Schnüffeln oder Kompromittieren. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denjenigen, die sie brechen würden, dauert jedoch schon seit Jahrhunderten an. Das Padding Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding Oracle-Angriffen eine harte Landung
Zum Glück gibt es eine ganze Reihe von Möglichkeiten, das Padding Orakel zu verhindern. Eine der besten Methoden ist die Verwendung eines stärkeren Verschlüsselungsmodus für Operationen wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Es unterscheidet sich von CBC dadurch, dass es eine Chiffreblockgröße von 128 Bit verwendet. Es verwendet auch einen Zähler für jeden Datenblock und verwendet dann diese Zahl, um den Chiffretext zu erstellen. Mit anderen Worten, es ist nicht anfällig für Padding-Oracle-Angriffe.
Die Implementierung guter Kontrollen zur Fehlerbehandlung kann auch die Erfolgschancen eines Angreifers erheblich beeinträchtigen. Da Padding-Oracle-Angriffe auf Informationslecks beruhen, geben Sie bei einem Ver-/Entschlüsselungsfehler generische Fehlermeldungen statt spezifischer Padding-Fehler zurück.
Sie können auch den Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Datenintegrität als auch deren Authentizität, indem sie es Prüfern ermöglichen, Änderungen am Nachrichteninhalt mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Oracle-Angriffe wiederholte Abfragen. Es können über 200 Anfragen gestellt werden, um das Auffüllschema für eine einzelne Zelle herauszufinden, multipliziert mit der Anzahl der Informationseinheiten, die in der Kette geschützt werden. Indem Sie die Anzahl der Anfragen einschränken, die von derselben Quelle eingehen, können Sie Padding-Oracle-Angriffe abwehren, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich beginnen kann.
Weitere Studie zu Padding Oracle
Jede Methode, mit der ein Angreifer vertrauliche Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Wir hoffen jedoch, dass Sie einige gute Methoden gelernt haben, um dies von vornherein zu verhindern.
Für weitere Informationen können Sie sich die OWASP ansehen Definition und Checkliste auf dem Padding Orakel. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.
Denken Sie, Sie sind jetzt in der Lage, Padding-Oracle-Angriffe abzuwehren? Probieren Sie es auf der Secure Code Warrior-Plattform aus:
Padding Oracle klingt zwar nach einem wirklich schlechten Ruf für eine alternative Rockband, ist aber tatsächlich eine Sicherheitslücke, die von Angreifern genutzt werden kann, um Informationen zu entschlüsseln, ohne den Verschlüsselungsschlüssel zu kennen.
In Bezug auf die Gesamtschwierigkeit für einen Angreifer liegt dieser ziemlich weit oben auf der Skala. Wir sprechen nicht von einer magischen Entschlüsselungsschaltfläche, sondern von einem mühsamen Prozess, bei dem Hacker die an sie gesendeten Fehlermeldungen zum Auffüllen von Zellen untersuchen und anhand dieser Informationen feststellen können, wo verschlüsselte Daten enden und das Auffüllen beginnt. Sie können dann verschiedene Teile der Verschlüsselung herausfinden und sie möglicherweise knacken, wenn sie genügend Zeit und Eingaben zur Untersuchung haben.
Zum Glück gibt es mehrere relativ einfache Schritte, die einem Angreifer die Möglichkeit nehmen können, Padding Oracle zum Entschlüsseln verschlüsselter Daten zu verwenden. In dieser Episode werden wir lernen:
- 操作方法
- Warum diese Sicherheitslücke so gefährlich ist
- Wie Sie Abwehrmaßnahmen einrichten können, um dies zu verhindern.
Wie funktioniert Padding Oracle?
Cipher Block Chaining (CBC) ist eine Methode, eine Blockchiffre zu erstellen, bei der eine ganze Folge von Informationsbits, z. B. Zellen, die in einer Datenbank gespeichert sind, mit einem Verschlüsselungsschlüssel verschlüsselt wird, der für die gesamte Informationskette gilt. Bei Verwendung von CBC hängt die Verschlüsselung eines einzelnen Chiffretextblocks von allen weiteren Blöcken ab. Theoretisch macht dies die Verschlüsselung extrem stark, da alles, selbst die Neuordnung der Blöcke, die Daten beschädigt.
Das Problem mit CBC-Chiffren (und allen Blockchiffren übrigens) besteht darin, dass sie nur mit Blöcken exakter Größe verschlüsselt werden können. Normalerweise erfolgt dies in 8- oder 16-Byte-Größen. Was passiert also, wenn CBC 2 Byte an Daten in eine 16-Byte-Chiffretexteinheit einpassen muss? Es wird Füllungen verwenden, im Grunde genommen nur unsinnige Zeichen, um die Lücken zu füllen und der Einheit eine angemessene Größe zuzuweisen.
Die meisten Padding-Schemata sind allgemein bekannt, wobei PKCS #7 eines der beliebtesten ist, sodass Angreifer möglicherweise wissen, welche Art von Padding verwendet wird. Wenn das CBC beispielsweise fünf Zeichen in einem Block auffüllen muss, würde PKCS #7 den Bytewert 0x05 verwenden, der fünfmal nach dem Klartext wiederholt wird.
Angreifer nutzen ihr Wissen über CBC- und Padding-Schemata, um Anfragen an einen Hostserver zu senden, der auch als Oracle bezeichnet wird. Wenn sie Zugriff auf die richtigen Tools haben, können sie den Server möglicherweise dazu zwingen, ihnen mitzuteilen, ob das Padding in ihrer Abfrage falsch ist. Um dies zu erreichen, können sie für jedes Byte in der Chiffre von Null auf 255 wechseln, bis der Server ihnen mitteilt, dass das Padding korrekt ist. Dann fahren sie mit der nächsten Einheit fort und wiederholen den Vorgang, wobei sie jeweils aufzeichnen, wo das Padding beginnt.
Dadurch können sie die Nachricht oder sogar die Zelle nicht entschlüsseln, aber sie könnten jedes Glied in der Kette so zuordnen, wo der Klartext endet und wo das Padding beginnt. Sie können möglicherweise auch XOR-Berechnungen verwenden, um den Wert des letzten Bytes des ursprünglichen Klartextes zu ermitteln.
Warum ist Padding Oracle so gefährlich?
Der Grund, warum ein Hacker so viel Arbeit in das Knacken der Verschlüsselung stecken würde, liegt in der möglichen Auszahlung. Nur wenige Leute verschlüsseln Dinge, die nicht wertvoll sind. Die Gefahr für die Host-Organisation hängt davon ab, ob die Daten kompromittiert werden. Dazu können Dinge wie Passwörter, Benutzerkonten, Finanzinformationen, Kreditkartennummern, Patientenakten, vertrauliche Kommunikation oder eine beliebige Anzahl von äußerst gesuchten und wertvollen Informationen gehören.
Die Verwendung von Padding Oracle könnte auch das Tor zu nachfolgenden Angriffen sein. Wenn ein Angreifer beispielsweise mithilfe von Padding Oracle Passwörter stehlen kann, ist es eine einfache sekundäre Aufgabe, seine Rechte zu erhöhen und tiefer in ein Netzwerk einzudringen.
Jeder hält Verschlüsselung für die ultimative Verteidigung gegen Schnüffeln oder Kompromittieren. Das Hin und Her zwischen der Verschlüsselungswissenschaft und denjenigen, die sie brechen würden, dauert jedoch schon seit Jahrhunderten an. Das Padding Orakel ist nur eine Methode, die Angreifern einen Vorteil verschafft.
Padding Oracle-Angriffen eine harte Landung
Zum Glück gibt es eine ganze Reihe von Möglichkeiten, das Padding Orakel zu verhindern. Eine der besten Methoden ist die Verwendung eines stärkeren Verschlüsselungsmodus für Operationen wie Galois/Counter Mode (GCM) oder Offset Codebook Mode (OCB). Es unterscheidet sich von CBC dadurch, dass es eine Chiffreblockgröße von 128 Bit verwendet. Es verwendet auch einen Zähler für jeden Datenblock und verwendet dann diese Zahl, um den Chiffretext zu erstellen. Mit anderen Worten, es ist nicht anfällig für Padding-Oracle-Angriffe.
Die Implementierung guter Kontrollen zur Fehlerbehandlung kann auch die Erfolgschancen eines Angreifers erheblich beeinträchtigen. Da Padding-Oracle-Angriffe auf Informationslecks beruhen, geben Sie bei einem Ver-/Entschlüsselungsfehler generische Fehlermeldungen statt spezifischer Padding-Fehler zurück.
Sie können auch den Message Authentication Code (MAC) implementieren. MAC-Werte schützen sowohl die Datenintegrität als auch deren Authentizität, indem sie es Prüfern ermöglichen, Änderungen am Nachrichteninhalt mithilfe eines geheimen Schlüssels zu erkennen.
Schließlich erfordern alle Padding-Oracle-Angriffe wiederholte Abfragen. Es können über 200 Anfragen gestellt werden, um das Auffüllschema für eine einzelne Zelle herauszufinden, multipliziert mit der Anzahl der Informationseinheiten, die in der Kette geschützt werden. Indem Sie die Anzahl der Anfragen einschränken, die von derselben Quelle eingehen, können Sie Padding-Oracle-Angriffe abwehren, indem Sie einem Angreifer den Zugriff verweigern, bevor er seinen Versuch wirklich beginnen kann.
Weitere Studie zu Padding Oracle
Jede Methode, mit der ein Angreifer vertrauliche Informationen entschlüsseln kann, kann zu einem echten Albtraum werden. Wir hoffen jedoch, dass Sie einige gute Methoden gelernt haben, um dies von vornherein zu verhindern.
Für weitere Informationen können Sie sich die OWASP ansehen Definition und Checkliste auf dem Padding Orakel. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.
Denken Sie, Sie sind jetzt in der Lage, Padding-Oracle-Angriffe abzuwehren? Probieren Sie es auf der Secure Code Warrior-Plattform aus:



%20(1).avif)
.avif)
