Framtidssäkra krypteringen

Kryptoframtiden

Går det att sia in i framtiden om hur och vilka krypteringsalgoritmer som kommer att bestå?

Både Ja och Nej. Vi kan däremot titta i backspegeln och se vad vi har lärt oss av historien, vilka algoritmer som varit säkra och vilka som knäckts. För att jobba med krypton handlar om att alltid vara på tårna och följa vad som händer i omvärlden gällande nya rön, forskningsrapporter och best practices.

Det gäller att ha en plan för den dagen ett byte ska ske. Hur migrerar vi från SHA1 till SHA256? Kan vi byta hashfuktion på ett enkelt sätt eller blir vi kvar med MD5?

För de handlar inte enbart om att välja bra och trendiga algoritmer, det gäller även att bygga ett förtroende över tid.

Men skulle jag blicka framåt så är ChaCha20 + Poly1305 av Daniel J Bernstein (DJB), Peter Schwabe och Tanja Lange helt klart intressant som nu fått RFC-nummer 7539.

Så klart är elliptiska kurvor (ECC) intressant men titta innan framförallt på arbetet som DJB genomfört i samband med SafeCurves. Och när det gäller end-to-end kryptering så titta på axolotl (som nu WhatsApp använder).

krypto memeHåll Er borta från SHA1, 3DES, MD5 samt snake oil där utvecklare eller tillverkare skryter med löjligt stora nyckellängder eller oknäckbara system.

Och glöm framförallt inte att valet av algoritmer bara är en liten del av ett mycket större arbete som omfattar nyckelhantering, signering, kodgranskning, lökprincipen, patchning och uppsäkrade system och framförallt användare som ska använda systemet samt utbildas.

Hacka flygplan, går det?

Hacka flygplan - Bild CC Wikipedia

Sedan några veckor så har nyheten om att IT-säkerhetsexperten Chris Roberts ska ha hackat flygplan figurerat i media. Även så påstås att han fått flygplan att stiga och svänga genom att hacka sig in på Thrust Management Computer (TMC) via underhållningssystemet (IFE).

De källor som pekar på att han genomfört detta på flygplan skarpt är FBI:s egna anteckningar från förhör med honom. Han har blivit arresterad men senare släpptes han.

Troligtvis finns det möjlighet att penetrera ett flygplan via underhållningssystemets anslutningspunkter som återfinnes vid varje stol. Men sedan att besitta kompetensen att skriva över och modifiera flygplanets övriga komponenter tror jag är svårt samt så en koppling mellan systemen tror jag inte finns. Så ja, det går att hacka flygplan går, men inte som på film.

Roberts har hackat bilar och flygplan sedan 2010 då han först presenterade sin forskning på konferensen BSidesLV i Las Vegas.

Denna skämt-tweet fick FBI att se rött och förhöra honom:

Kryptering och Internet of Things – Ny sårbarhet uppdagad

 

Internet of Things säkerhet

Ett antal forskare undersökte de kryptografiska funktionerna i protokollet Open Smart Grid Protocol (OSGP) som är väl använt inom IoT (Internet of Things). Nu har dock allvarliga brister uppdagats i detta protokoll som är baserat på RC4(!) samt en egen MAC (OMA digest).

OSGP-protokollet är en standard enligt Telecommunications Standards Institute (ETSI) sedan 2012 och har utvecklats av Energy Service Network Association (ESNA). Ungefär fyra miljoner IoT-enheter använder OSGP-protokollet.

Några av de angreppsmetoder som används är:IoT Crypto

  • Chosen-Plaintext Key Recovery Attacks
  • Known-Plaintext Key Recovery Attack
  • Forgeries and a Third Key-Recovery Attack

Även så tog forskarna fram Proof-of-concept kod i Python för att demonstrera några av sårbarheterna.

Och för att citera Bruce Schneier:

Anyone can design a cipher that he himself cannot break. This is why you should uniformly distrust amateur cryptography, and why you should only use published algorithms that have withstood broad cryptanalysis. All cryptographers know this, but non-cryptographers do not.

DNP3 Secure Authentication som också är ett protokoll som används inom IoT använder sig av HMAC-SHA256 samt AES-GMAC vilket anses säkert.

Så vad har vi lärt oss? Försök inte att utveckla ett eget krypto.

Ny version av Tails samt Tor Browser

Igår så släpptes en ny version av operativsystemet Tails version 1.4 samt Tor Browser. Denna nya version inkluderar ett reglage för säkerhet som ser ut enligt följande:

Tor Browser

Som standard så är reglaget satt till ”Low” vilket även är den standardinställning som varit sedan tidigare. Väljer man att ställa en högre säkerhetsnivå så stängs javascript av, fonter laddas inte in samt så stängs stöd för SVG-bildformatet av för att nämna några.

Även så har en brist uppdagats i mailprogrammet Claws. Eller kanske mer en feature, för att Claws sparar nämligen utkast på IMAP-servern även om du som användare har tänkt att kryptera mailet.

Fler intressanta säkerhetshöjande funktioner som införts i Tor Browser är hur koppel Angrepp mot Torskapas till webbplatser samt tredjepartssajter för att försvåra spårning (exempelvis Facebooks Gilla-knapp).

Observera: Den nya versionen av Tails 1.4 verkar ej innehålla den senaste versionen av Tor Browser med säkerhetsfixar som är 4.5.1. Men inom någon dag bör det släppas en ny version av Tails.

Ladda hem Tails här:

Nya ryska kryptosystem: Kuznyechik

Ryssland har nyligen beslutat att införa ett nytt krypto som ska fungera som en ny standard. Algoritmen går under namnet Kuznyechik och ska byta ut GOST 28147-89 (Kuznyechik betyder gräshoppa på ryska).

Gräshoppan är ett block-krypto och har ett substitutions-permutationsnätverk (SPN) precis som AES (rijndael). En stor skillnad dock är att S-boxen genereras dynamiskt med hjälp av nyckelmaterial men kan även användas med en standard s-box.

gerb1Kuznyechik jobbar med en 256-bitars nyckel som ger 10 stycken nycklar för block på 128-bitar styck. Algoritmen är framtagen av bl.a. forskare från Академия криптографии vilket är kryptoskolan vid FSB.

FSB
FSB Akademiska skola

 

Men redan nu har attacker dykt upp på såsom denna som nyttjar felanalys och en mötas-i-mitten attack med reducerat antal rundor.

Även så hölls en tävling för att hitta en ny hashfunktion vid namn Streebog.

Här hittar du en referensimplementation av gräshoppan skriven i C och använder sig av den S-box som ingår i standardokumentationen:

https://github.com/mjosaarinen/kuznechik

Och här hittar du dokumentation:

Kuznyechik

slumptal

Så testar du slumpen

Vid utveckling av kryptografiska produkter eller system är bra slumptal en mycket vital del. Vi har sett många gånger då bristfällig slump leder till katastrofala följder som i fallet med Debians bortoptimerade delar av OpenSSL:

MD_Update(&m,buf,j);
[ .. ]
MD_Update(&m,buf,j); /* purify complains */

Men det finns även andra områden än krypton där bra slump är viktigt. Ta exempelvis TCP ISN som användes av Kevin Mitnick eller nonces och sessionskakor.

Behöver din organisation hjälp med att testa slumptal? Kontakta Triop >

De flesta slumptal som används härstammar från något som heter PRNG (pseudo-random number generator) och betyder att det är pseudo slump som skapas utifrån ett frö (seed). Det finns ett antal olika PRNG algoritmer såsom CryptGenRandom, Blum Blum Shub, Fortuna och Yarrow. Även så brukar man kalla slumptalsalgoritmer som används i krypton för CSPRNG (cryptographically secure pseudo-random number generator)

In the context of a cryptographic system, we have more stringent requirements [than statistical randomness does]. Even if the attacker sees a lot of the random data generated by the PRNG, she should not be able to predict anything about the rest of the output of the PRNG. We call such a PRNG cryptographically strong. […]

Källa: Practical Cryptography

dilbert

Så testar du slumptalsgeneratorn

När du testar slumptal så kan du aldrig vara helt säker på att den alltid kommer att fungera. Det är därför viktigt att genomföra manuella och automatiserade tester löpande. Det är även viktigt att du vet hur dina slumptal kommer att skapas: för är det så att du tar in frövärden/entropi från tangentbord och mus och din kod kommer att köras på en server utan tangentbord och mus.

Ett av de mest kända testbatterierna kallas för Diehard och togs fram runt 1995 av George Marsaglia och senare skapades Dieharder av andra upphovsmän. Även så har NIST ett stort antal resurser såsom dokument och mjukvaror för att testa slumptal, dock så har NIST godkänt slumptalsgeneratorn Dual_EC_DRBG som befaras innehålla en bakdörr (se även extended random). Att köra dessa tester är dock tidsödande men helt klart ett måste.

Om vi skapar en graf så ser vi snabbt att den övre av följande bilder är aningens utstickande (se även view_rng av Joachim Strömbergson):

ej slump
Slumpgenerator 1
slumptal
Slumpgenerator 2

 

entitleOch använder vi sedan verktyget Ent så ser vi att det är uppenbart vilken slumptalsgenerator som troligtvis genererar dålig slump:

Slumpgenerator 1

Entropy = 4.848706 bits per byte.

Optimum compression would reduce the size of this 98794 byte file by 39 percent.

Chi square distribution for 98794 samples is 6163135.43, and randomly would exceed this value less than 0.01 percent of the times.

Arithmetic mean value of data bytes is 66.3816 (127.5 = random).
Monte Carlo value for Pi is 3.998785302 (error 27.29 percent).
Serial correlation coefficient is -0.419748 (totally uncorrelated = 0.0).

Slumpgenerator 2

Entropy = 7.998370 bits per byte.

Optimum compression would reduce the size of this 100000 byte file by 0 percent.

Chi square distribution for 100000 samples is 225.33, and randomly
would exceed this value 90.97 percent of the times.

Arithmetic mean value of data bytes is 127.6192 (127.5 = random).
Monte Carlo value for Pi is 3.148925957 (error 0.23 percent).
Serial correlation coefficient is 0.000984 (totally uncorrelated = 0.0).

De tester som Ent genomför är bra och kan mycket väl fungera som en grundplattform för vidare tester med exempelvis Dieharder.

Vidare läsning:

Informationssäkerheten i Svensk e-legitimation

logotyp-legitimationsnamndeMyndigheten för samhällsskydd och beredskap (MSB) har på uppdrag från tre myndigheter genomfört en säkerhetsanalys av Svensk e-legitimation. De tre myndigheterna är Arbetsförmedlingen, CSN och Försäkringskassan.

Analysen har resulterade i en rapport som innehåller ett antal rekommendationer om vad som behöver göras för att förstärka lösningen Svensk e-legitimation ur ett säkerhetsperspektiv.

Rapporten blev klar den 20 oktober 2014. En fyrsidig sammanställning av analysen publicerades på MSB:s webbplats. Hela rapporten hemligstämplades enligt 18 kap. 8 § och 18 kap. 13 § offentlighets- och sekretesslagen (2009:400).

Men nedan rapport innehåller dock en handlingsplan utifrån resultatet från FRA och MSB:s säkerhetsgranskning.

Sårbarheter i Svensk e-legitimation

Nedan finner du ett utdrag från handlingsplanen gällande kryptoalgoritmer och att gamla och föråldrade algoritmer såsom SHA1 används vilket är häpnadsväckande. Läs gärna igenom hela handlingsplanen nedan och bilda din egen uppfattning, lämna gärna en kommentar också.

”Hög kunskap om kryptoalgoritmer och dess status över tid är en grundförutsättning för att tjänsterna inom samverkan för Svensk e-legitimation ska hålla en hög säkerhet. Det gäller i högsta grad även för underskriftstjänsten som kan avropas och användas i många aktörers tjänster. För att kunna vidmakthålla en hög kunskap krävs regelbunden och återkommande genomgång av området.

Behovet av kryptolösningar finns inom många tjänster i dag. Både sådana tjänster som exponeras över Internet men även interna tjänster. Svagheter i de kryptolösningar som används inom federationens tjänster måste därför identifieras och hanteras löpande. Förändringar i kryptolösningar ställer krav på hantering och eventuell anpassning av de tjänster som använder lösningarna. Alla aktörer som är en del av samverkan i federationen har ansvar för tjänsterna de tillhandahåller.

Nämnden har ett ansvar som federationsoperatör att driva arbetet med att ha rätt säkerhet på de kryptolösningar inklusive algoritmer som används inom federationen och då specifikt för de tjänster som nämnden tillhandahåller. Den genomförda analysen som MSB genomfört har identifierat en kryptoalgoritm (SHA-1) som inte ska användas efter 2013. Underskriftstjänsten som tillhandahålls via ramavtalet ”E-förvaltningsstödjande tjänster 2010” ger inte stöd för användning av SHA-1. Dokumentationen är uppdaterad och de tjänster som finns tillgängliga för avrop ger inte möjlighet för användning av SHA-1. Alla aktörer som ansluter tjänster till Svensk e-legitimation bör se över vilka kryptolösningar som finns i de egna tjänsterna.

Ambitionen för samverkan inom Svensk e-legitimation ska vara att den samlade kunskapen runt kryptolösningar och deras utveckling ska vara hög samt att det ska finnas planer för hur övergången från utgående lösningar ska se ut.”

Handlingsplanen kan laddas hem som PDF här:

Analys av informationssäkerheten i Svensk e-legitimation

Analys av informationssäkerheten i Svensk e-legitimation

NSA avlyssningsoperation IVY BELLS

Operation IVY BELLS var en avlyssningoperation utförd av amerikanska marinen, NSA samt CIA tillsammans. Målet var att avlyssna en undervattenskabel som gick i den ryska sjön Okhotsk till marinbasen i Petropavlovsk. Detta låter kanske som någon nyligen utförd operation men denna operation påbörjades i början av 1970-talet.

Installationen genomfördes på 120 meters djup från ubåten USS Halibut och den specialutvecklade avlyssningsutrustningen var 6 meter lång och vägde 6 ton utvecklad av Bell Labs.

ivy bellsTill amerikanarnas förvåning var nästan all kommunikation okrypterad och flertalet avlyssningstappar installerades från ubåtar som modifierades för syftet.

Varje månad fick även ubåten besöka avlyssningstappen för att byta ut de band som spelade in kommunikationen. Även så konstruerades tappen på ett sådant sätt att den skulle automatiskt släppa om kabeln togs upp för reparation.

Okhotsk

Just denna tapp var borta vid ett av ubåtens besök tio år senare och det visade sig att NSA hade en läcka vid namn Ronald Pelton. Satellitbilder visade då på att ett antal ryska fartyg hade befunnit sig på platsen ovanför tappen.

Under dessa tio år som tappen var installerade gav den amerikanarna stor inblick i den ryska marina kommunikationen.

Tappen återfinnes i dagsläget på ett KGB museum i Moskva och Ronald Pelton som sålde informationen om tappen till ryssarna för 35000$ blev senare avslöjad då hans KGB-kontaktperson Vitaly Yurchenko hoppade av och flyttade till USA (temporärt?).

Att det tog så lång tid att avslöja tappen beror enligt vissa på att den nyttjades till att förse NSA med desinformation.

FBI Wordpress

FBI varnar för allvarlig sårbarhet i WordPress

Amerikanska myndigheten FBI har gått ut och varnat för att den Islamiska staten (ISIS) eller sympatisörer till ISIS använder en ny sårbarhet i WordPress för att genomföra intrång.

Sårbarheten som ISIS använder sig av är relativt ny och återfinnes i pluginet WP Super Cache. Pluginet är mycket populärt och används av över en miljon webbsajter samt har laddats hem över 130 000 gånger bara förra veckan.

Dock så är sårbarheten en XSS där en användare eller administratör av WordPress-sajten besöka en länk som skickas via E-post exempelvis.

WP-Super-Cache-Details-Key

 

Ovan är en skärmdump tagen av Sucuri som påvisar hur $details[ ‘key’ ] används felaktigt utan kontroll för att byta ut information.

Säkerhetstips

Det finns många bra tips för att se till att WordPress är säkert, men främsta tipset är att hålla Er installation uppdaterad. Just denna sårbarhet är åtgärdad i senaste versionen som är 1.4.4. Se även till att aktivt testa säkerheten i WordPress, läs exempelvis här hur du kan göra eller med Detectify.

Källa: FBI

Facebook-lösenord

Så lagrar Facebook lösenord

På en konferens nyligen så avslöjade Facebook hur de lagrar sina lösenord. Eller rättare skrivet hur de hashar sina lösenord.

  1. $cur  = ‘plaintext’
  2. $cur  = md5($cur)
  3. $salt = randbytes(20)
  4. $cur  = hmac_sha1($cur, $salt)
  5. $cur  = cryptoservice::hmac($cur)
  6.         [= hmac_sha256($cur, $secret)]
  7. $cur  = scrypt($cur, $salt)
  8. $cur  = hmac_sha256($cur, $salt)

1. Det första steget är tämligen självförklarande.

2. Gör först en MD5 av lösenordet. Detta ligger troligtvis kvar pga historia då detta troligtvis enbart var det enda steget. Om en användare loggar in och enbart har en md5 så kommer lösenordet att uppdateras med det nya systemet enligt nedan.

3. En salt på 160 bitar är genererad slumpmässigt. För att förhindra kollisioner så bör den vara minst 64 bitar pga antalet användare och övriga bitar är troligtvis för att framtidssäkra.

4. En HMAC med sha1 skapas som sedan skickas in i nästa steg.

5. Detta steg är för att inneha en central kontrolldel och att förhindra offline eller online forceringsattacker mot lösenord.

7-8. scrypt för att försvåra forcering samt skapande av regnbågstabeller. Vi har många gånger tidigare skrivit om scrypt. Samt sista steget är för att göra databasen med lösenord mindre.

Facebook håller även koll på lösenordsdumpar som publiceras på internet och förekommer ditt lösenord i en sådan dump så kommer Facebook att varna dig.

Bedömt så har Facebook lagt mycket kraft bakom lösenordshashningen och det ser mycket bra ut.

Joachim Strömbergson
Joachim Strömbergson

Joachim Strömbergson som är säkerhetsexpert på företaget Assured som också har tittat på Facebooks sätt att lagra lösenord kommenterar enligt följande:

För att sammanfatta min känsla efter 5 sekunder är att man är duktig och använder seed, man har till och med vad som ser ut att vara ytterligare en hemlighet vilket gör det än svårare att försöka göra regnbågsattacker. Vidare använder man dessutom scrypt för att införa work factor som försvårar uttömmande sökning.

Källa på informationen är det som Facebook uppgav vid konferensen Real World Crypt 2015.

Uppdatering: Per Thorsehim tipsar även om att Alec Muffett från Facebook höll en presentation vid konferensen Passwords 2014 i Norge där han berättar mer i detalj:

Facebook lösenord