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.

In Pocket speichern vorlesen Druckansicht
Googles Programmiersprache Go: Version 1.53 stopft kritische Lücke
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Ein Beitrag in der Google-Gruppe zur Programmiersprache Go 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, der zum effizienten Entschlüsseln und Signieren zum Einsatz kommt.

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 von Go sind Binaries der Programmiersprache für Windows, Linux und OS X sowie der Quellcode vorhanden. (rme)