Objavljeno: 10.3.2014 06:00

Stavek goto povzročil ranljivost v SSL/TLS

V zadnjih tednih so odkrili dve ranljivosti pri implementaciji protokolov SSL/TLS, ki sta si presenetljivo podobni. Apple je svoja operacijska sistema iOS in Mac OS X zakrpal kmalu po odkritju, potem pa so dobra dve tedna pozneje sorodno ranljivost našli še v odprtokodni knjižnici GnuTLS, ki je tudi že zakrpana v verziji 3.2.12.

Obema je skupno tudi to, da je koda v prizadetem delu odprta in javnosti dostopna, pa to ni dolgo časa ni odkrilo napake. Napaka v Applovi kodi, o kateri smo že pisali, je posledica ponovljenega stavka goto v kodi. Ta se za pogojnim stavkom if ponovi dvakrat, kar je ena izmed bolj zahrbtnih napak. Ker zanki ne sledijo zaviti oklepaji, je prevajalnik v skladu s sintakso jezika C++ ne razume kot blok, ampak je vsebina zanke if le prvi stavek goto. Drugi je samostojen in se izvede vsakokrat. Zaradi tega rutina preskoči pomemben del preverjanja veljavnosti certifikata, kar v praksi pomeni, da mu lahko podtaknemo kakšnega, ki je podpisan s katerimkoli drugim veljavnim ključem, pa bo preverjanje pristnosti vseeno uspešno.

Zelo podobna napaka pri uporabi stavkov goto se je primerila tudi v knjižnici GnuTLS, ki jo uporablja cela vrsta odprtokodne programske opreme. Tu več pogojnih stavkov if kliče napačno interno funkcijo (cleanup namesto fail), kar ima sorodne posledice. Tudi GnuTLS je mogoče pretentati in mu podtakniti certifikat X.509, ki ga ni podpisala obiskana stran. Omenjena ranljivost je po nekaterih podatkih v GnuTLS obstajala vse od leta 2005 (!), pa je ni odkril nihče.

Eden izmed argumentov za uporabo odprtokodne programske opreme je prav možnost pregleda kode, ki bi v teoriji morala preprečiti tovrstne spodrsljaje. Toda to deluje le, če ljudje kodo dejansko ponovno preberejo, preverijo in prevedejo. Samo odprtje kode, ki leži v repozitorijih in je nihče ne kontrolira, seveda ne koristi nikomur. Prav GnuTLS je problematičen, saj so že v preteklih letih na internetu redno pojavljale kritike, da je napisan zelo pomanjkljivo in površno, kot da avtorji ne bi bili kos nalogi. Prav mogoče je, da je odkritje ranljivosti v Applovi opremi vzpodbudilo natančnejši pregled GnuTLS, ki je potem pokazal sorodno napako. Ni torej res, da odprtje kode avtomatično prepreči tovrstne napake.

Pedantni programerji so bržkone že zastrigli z ušesi ob omembi stavkov goto. Po Böhm-Jacopinijevem izreku je mogoče vsak program napisati brez uporabe stavka goto. Šola lepega programiranja uči, da je uporaba teh stavkov nezaželena, ker zmanjšuje preglednost kode in v primeru neprevidne rabe daje kodo (»špagetasta koda«), ki jo je težko popravljati in razhroščevati. Vseeno številni programski jeziki ukaz goto še podpirajo in v nekaterih primerih lahko z njegovo pametno uporabo dejansko poenostavimo in skrajšamo program.

Zato bi bilo krivično odkriti napaki pripisati stavku goto. Razlog sta nepazljivost in malomaren (ali neobstoječ) pregled kode.

Več novic

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Najbolj brano

  • Severna Koreja s kriptovalutami in lažnimi zaposlenimi nakradla milijarde

    Za razliko od praktično vseh ostalih držav se Severna Koreja v veliki meri zanaša na internetni kriminal in kriptoprevare za financiranje delovanja države in izogibanje sankcijam. Tudi eden večjih letošnjih vdorov, ko so neznanci z borze Bybit ukradli za poldrugo milijardo dolarjev kriptovalute ether, je bil plod Severne Koreje.

    Objavljeno: 27.10.2025 07:00
  • Zakaj nihče ne mara Applovih in Samsungovih tankih telefonov?

    Applov najnovejši in najtanjši iPhone Air, ki v debelino meri le dobrih pet milimetrov in tehta 165 gramov, je čudo tehnike, a ga začuda ljudje niso radostno sprejeli. Medtem ko se iPhone 17 Pro in iPhone 17 Pro Max prodajata rekordno, klasični iPhone 17 pa prav tako žanje visoke številke, iPhone Air zapostaja.

    Objavljeno: 20.10.2025 05:00
  • Nvidia: Kitajska je za nas mrtva

    Nvidijin direktor Jensen Huang je dejal, da je tržni delež podjetja na Kitajskem hitro padel s 95 odstotkov na ničlo. To ni presenetljivo, saj izvoz na Kitajsko prepoveduje kar ameriška administracija. A to v resnici ni čisto res, saj po drugi strani več kot četrtino prodaje predstavlja izvoz v Singapur – od koder na Kitajsko vodijo neuradne poti.

    Objavljeno: 20.10.2025 07:00
  • Popolnoma drugačno električno kolo

    Rivianovo hčerinsko podjetje Also, specializirano za mikromobilnost, je predstavilo inovativno električno kolo TM-B (Transcendent Mobility - Bike), ki obljublja povsem novo izkušnjo vožnje. 

    Objavljeno: 23.10.2025 16:00
  • V Londonu vam bodo verjetno ukradli telefon

    Samo v lanskem letu so v Londonu ukradli 80.000 pametnih telefonov, kar je v milijonski metropoli sicer malo, a vseeno precej več kot v drugih podobno velikih mestih v Evropi. In približno tretjino več kot leto pred tem. Trend je torej zaskrbljujoč.

    Objavljeno: 23.10.2025 05:00
  • SD-kartica na dnu Atlantika preživela implozijo Titana

    Raziskovalci so na dnu Atlantskega ocena v bližini razbitine Titanika našli SanDiskovo spominsko kartico SD, s katere so lahko sneli 12 fotografij in devet videoposnetkov. Kartica je tja potonila pred dvema letoma, ko je implodirala podmornica Titan, s katero je podjetje OceanGate želelo obiskati razbitine slavnega parnika.

    Objavljeno: 22.10.2025 05:00
 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji