Verwendung ähnlicher Unicode-Zeichen zum Umgehen der Authentifizierung

GitHub war betroffen von einem Angriff, der es ermöglicht, Zugriff auf das Konto zu erlangen, indem man mit Unicode-Zeichen in der E-Mail manipuliert. Das Problem besteht darin, dass einige Unicode-Zeichen bei der Anwendung von Funktionen zur Umwandlung in Klein- oder Großbuchstaben in gängige Zeichen umgewandelt werden, die sich in ihrer Form ähneln (wenn mehrere verschiedene Zeichen in ein Zeichen umgewandelt werden — zum Beispiel wird das türkische Zeichen „ı“ und „i“ beim Großschreiben zu „I“).

Vor der Überprüfung der Anmeldedaten in einigen Diensten und Anwendungen werden die vom Benutzer eingegebenen Daten zunächst in Groß- oder Kleinbuchstaben umgewandelt und dann in der Datenbank überprüft. Wenn der Dienst die Verwendung von Unicode-Zeichen im Login oder in der E-Mail zulässt, kann der Angreifer ähnliche Unicode-Zeichen verwenden, um einen Angriff durchzuführen, der mit Kollisionen in den regulären Zeichentabellen manipuliert (Unicode Case Mapping Collisions).

‘ß’.toUpperCase() == ‘ss’.toUpperCase() // 0x0131
‘K’.toLowerCase() == ‘K’.toLowerCase() // 0x212A
‘John@Gıthub.com’.toUpperCase() == ‘John@Github.com’.toUpperCase()

In GitHub konnte der Angreifer durch das Formular zur Wiederherstellung des vergessenen Passworts den Versand eines Wiederherstellungscodes an eine andere E-Mail-Adresse initiieren, indem er im Formular eine Adresse angab, die ein Unicode-Zeichen enthält, das eine Kollision verursacht (zum Beispiel wurde anstelle von mike@example.org die E-Mail-Adresse m ıke@example.org angegeben). Die Adresse wurde geprüft, da sie in Großbuchstaben umgewandelt wurde und mit der ursprünglichen Adresse (mike@example.org) übereinstimmte, aber beim Versand der E-Mail wurde sie unverändert verwendet und der Wiederherstellungscode ging an die gefälschte Adresse (mke@example.org).ke@example.org angegeben). Die Adresse wurde geprüft, da sie in Großbuchstaben umgewandelt wurde und mit der ursprünglichen Adresse (mike@example.org) übereinstimmte, aber beim Versand der E-Mail wurde sie unverändert verwendet und der Wiederherstellungscode ging an die gefälschte Adresse (mEinige der

Symbole , die Kollisionen bei der Groß-/Kleinschreibung verursachen:ß 0x00DF SS

ı 0x0131 I
ſ 0x017F S
ff 0xFB00 FF
fi 0xFB01 FI
fl 0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k
Neue Version Cygwin 3.1.0, GNU-Umgebung für Windows

Quelle: opennet.ru

60GB SSD 8Gb DDR4