Bron

Leestijd 6 min

Als u OpenSSL gebruikt, bent u waarschijnlijk op de hoogte van de meest recente bugfix release, die in maart 2022 uitkwam. Die oplossing bracht ons OpenSSS 3.0.2 en 1.1.1n, updates voor de twee huidige volledig ondersteunde versies van het product. De update van maart 2022 was een belangrijke herinnering dat diep verborgen code met ongebruikelijke bugs uiteindelijk jarenlang over het hoofd kan worden gezien, vooral als die code deel uitmaakt van een complexe, gespecialiseerde, low-level functie. De bug die toen werd hersteld had betrekking op een speciaal algoritme voor het berekenen van zogenaamde vierkantswortels, die gecompliceerder te berekenen zijn dan gewone vierkantswortels. Helaas was de code om deze berekening uit te voeren, waarbij gebruik werd gemaakt van een algoritme dat voor het eerst in de jaren 1890 werd ontdekt, onhandig gecodeerd, kronkelig geschreven, slecht becommentarieerd, en moeilijk te volgen. Echter, gezien het feit dat het niet in een voor de hand liggend "extern gericht" deel van OpenSSL stond, en gezien het feit dat het herschrijven ervan een ontmoedigende taak zou zijn geweest, nemen we aan dat het zorgvuldig getest is op de juistheid van zijn antwoorden wanneer het goedgevormde getallen bevat, maar niet op zijn robuustheid wanneer het geconfronteerd wordt met onwaarschijnlijke invoer. Omdat, wanneer OpenSSL geconfronteerd wordt met digitale certificaten die een boobytrap hebben om slecht gevormde getallen te produceren, de functie van OpenSSL kan worden misleid om eindeloos te blijven draaien, proberend om een antwoord te vinden dat niet bestaat. Als je alleen met gehele getallen werkt, en geen fracties van welke soort dan ook toelaat, ontdek je dat veel getallen geen modulaire vierkantswortels hebben, net zoals je ontdekt dat veel gehele getallen geen regelmatige vierkantswortels hebben. Dus 7×7 = 49, dus 49 heeft een vierkantswortel die een geheel getal is, namelijk 7. Maar er is geen geheel getal dat met zichzelf kan worden vermenigvuldigd om 50 te geven, of 51, want het volgende "perfecte kwadraat" is 8×8 = 64.

2 maanden geleden - nakedsecurity.sophos.com

Korte versie

OpenSSL, het encryptieprogramma dat veilige toegang biedt tot digitale certificaten, is voor het eerst in meer dan een eeuw gepatcht, aldus Chris Stokel-Walker van de BBC.

Uitgebreide versie

De update van maart 2022 was een belangrijke herinnering dat diep verborgen code met ongebruikelijke bugs uiteindelijk jarenlang over het hoofd kan worden gezien, vooral als die code deel uitmaakt van een complexe, gespecialiseerde, low-level functie. Helaas was de code om deze berekening uit te voeren, waarbij gebruik werd gemaakt van een algoritme dat voor het eerst in de jaren 1890 werd ontdekt, onhandig gecodeerd, kronkelig geschreven, slecht becommentarieerd, en moeilijk te volgen. Omdat, wanneer OpenSSL geconfronteerd wordt met digitale certificaten die een boobytrap hebben om slecht gevormde getallen te produceren, de functie van OpenSSL kan worden misleid om eindeloos te blijven draaien, proberend om een antwoord te vinden dat niet bestaat.

Vergelijkbare publicaties

Kernwoorden in het artikel

In het artikel genoemde namen van organisaties

article image

Gevonden topics

compliance

38%