zurück zum Artikel

Programmiersprache Go: Version 1.53 stopft kritische Lücke

Rainald Menge-Sonnentag
Googles Programmiersprache Go: Version 1.53 stopft kritische Lücke

Ein Fehler im math/big-Paket der Programmiersprache führt seit Go 1.5.0 potenziell dazu, dass TLS-Server auf 32-bit-Systemen ihren privaten RSA-Schlüssel preisgeben. Version 1.5.3 behebt den Fehler.

Ein Beitrag [1] in der Google-Gruppe zur Programmiersprache Go [2] kündigt die Veröffentlichung von Go 1.5.3 an und rät Nutzern dringend, die aktuelle Version einzuspielen. Vorhandene Go-Programme erfordern ein erneutes Kompilieren mit der neuen Sprachversion.

Das Problem befindet sich im math/big-Paket und betrifft die RSA-Berechnungen in crypto/rsa, TLS-Server nutzen die Funktion innerhalb von crypto/tls. 32-Bit-Systeme können laut dem Beitrag durchaus ihren privaten RSA-Schlüssel aufgrund des Fehlers preisgeben. Das Problem besteht wohl in der Berechnung des chinesischen Restsatzes [3], der zum effizienten Entschlüsseln und Signieren zum Einsatz kommt [4].

Laut dem Beitrag verhindert RSA-Blinding zwar den gezielten Angriff, aber auf 32-bit-Systemen liegt die Wahrscheinlichkeit für das zufällige Auftreten des Fehlers bei 1: 226. Um den privaten Schlüssel abzugreifen, müsste ein Angreifer somit 67 Millionen bekannter Signaturen eines betroffenen Servers sammeln, was das Team als durchaus realistisch einstuft. 64-Bit-Systeme sind zwar vom selben Fehler betroffen. Hier liegt die Wahrscheinlichkeit des Auftretens jedoch bei 1:250, würde also das Sammeln von über einer Billarde Signaturen erfordern. Dennoch sollten auch Nutzer von 64-Bit-Systemen das Update installieren.

Der Beitrag kündigt für Go 1.6 eine doppelte Überprüfung der RSA-Berechnungen als Gegenmaßnahme gegen ähnliche Fehler an. Auf der Download-Seite [5] von Go sind Binaries der Programmiersprache für Windows, Linux und OS X sowie der Quellcode vorhanden. (rme [6])


URL dieses Artikels:
https://www.heise.de/-3071579

Links in diesem Artikel:
[1] https://groups.google.com/forum/#!topic/golang-announce/MEATuOi_ei4
[2] https://code.google.com/p/go/
[3] https://de.wikipedia.org/wiki/Chinesischer_Restsatz
[4] https://de.wikipedia.org/wiki/RSA-Kryptosystem#RSA_mit_dem_Chinesischen_Restsatz
[5] https://golang.org/dl/
[6] mailto:rme@ix.de