De com una lĂ­nia de codi embolica la troca de valent

QuĂš ha passat amb Debian i OpenSSL? OpenSSL serveix, entre d’altres coses, per generar contrasenyes. Per aixĂČ, Ă©s necessari que el programa sigui capaç de generar nombres aleatoris que difĂ­cilment es puguin preveure. Es tracta que sigui complicat que, aplicant algorismes i mĂštodes matemĂ tics, algĂș pugui descobrir la forma de trobar una contrasenya.

El que ha passat Ă©s que una de les eines que ajuda als programadors a programar (els depuradors o debuggers, permeten trobar errors) es queixava per aquesta lĂ­nia de codi: MD_Update(&m,buf,j);. Per aixĂČ, els encarregats del codi font d’OpenSSL la van eliminar. I, en eliminar aquesta lĂ­nia, el que s’ha produĂŻt Ă©s que totes les claus generades des de setembre de 2006 poden ser descobertes per gent malintencionada, aprofitant l’existĂšncia d’aquest forat de seguretat per crear eines que els permetin fer-ho. De fet aquesta eina ja ha estat creada i s’ha demostrat molt eficaç.

Qui ho va eliminar va ser la persona que s’encarrega de fer el paquet per a Debian, no els programadors originals d’OpenSSL, i Ă©s per aixĂČ que l’error nomĂ©s afecta a sistemes operatius Debian i derivats, entre ells Ubuntu. De tota manera, cal dir que el responsable de la catĂ strofe va actuar amb les espatlles cobertes. I Ă©s que, abans d’eliminar la lĂ­nia en qĂŒestiĂł, va preguntar als programadors d’OpenSSL quĂš passaria si ho feia:

Kurt Roeckx (encarregat del paquet de Debian):

No tinc ni idea de com afectarĂ  aixĂČ realment a la generaciĂł aleatĂČria de nombres.

Ulf Möller (programador d’OpenSSL):

No afectarĂ  massa. Si aixĂČ ajuda a la depuraciĂł, estic a favor d’eliminar-la.

Aquesta conversa va tenir lloc el maig de 2006. El setembre de 2006, es publica a Debian el paquet OpenSSL amb la lĂ­nia de marres ja eliminada. I no Ă©s fins la semana passada que Luciano Bello descobreix l’error, avisa a Debian i es publica l’alerta de seguretat i la notĂ­cia comença a passar de bloc en bloc. En parlen en Xavier CaballĂ© o KriptĂłpolis, per exemple.

Queda demostrat: una sola lĂ­nia de codi pot embolicar la troca de valent.