Taggat med: bcrypt

Twitter läckte lösenord

Twitter gick ut med ett meddelande till samtliga 300+ miljoner användare gällande att lösenord har läckt. Samtliga lösenord på mikrobloggen Twitter är hashade med algoritmen bcrypt, men har nu läckt i ett internt system och därför uppmanas alla användare byta sina lösenord. Lösenorden i klartext har enbart varit tillgängliga i en intern loggfil som enbart varit tillgänglig för anställda.

Twitter skriver på sin blogg:

“Due to a bug, passwords were written to an internal log before completing the hashing process,” he continued. “We found this error ourselves, removed the passwords, and are implementing plans to prevent this bug from happening again.”

Följande rekommendationer kommer från Twitter gällande lösenord:

  1. Byt ditt lösenord på Twitter och andra tjänster om du haft samma lösenord
  2. Använd ett starkt lösenord och återanvänd inte detta lösenord på andra tjänster
  3. Använd tvåfaktorsautentisering
  4. Använd en lösenordshanterare som ser till att du använder starka och unika lösenord för alla dina tjänster

Skärmdump på meddelandet som visas till samtliga användare:

Så lagrar Dropbox ditt lösenord

Att Dropbox blev hackade och samtliga lösenord hamnade på vift 2012 är något som är välkänt. Av analys visade det sig att hälften av lösenorden var SHA1-hashade och andra hälften använde sig av bcrypt-hash. Detta troligtvis pga en pågående övergång från SHA1 till bcrypt.

Det har hänt en hel del sedan 2012 och Dropbox avslöjade nyligen hur de lagrar sina lösenord på ett säkert sätt.

Först och främst använder Dropbox precis som Facebook (se nedan) flertalet lager, som en lök. Att använda SHA512 före bcrypt är främst av två anledningar: överbelastningsattack om långa lösenord används samt att vissa implementationer av bcrypt kortar ner lösenordet till 72 bytes.

bcrypt används med en cost på 10 (arbetsfaktor/work factor) samt en unik salt för varje användare. Detta steg tar ungefär 100ms på Dropbox servrar.

Sista steget är AES256 med en global nyckel som är samma för alla hashar. Detta är för att om hela databasen blir snodd eller servern där lösenorden lagras så finns det ett extra skydd med en nyckel som är svår att hitta.

Dropbox lösenord

Även Facebook använder flertalet lager för sina lösenord (läs mer här):

Facebook lösenord

Dropbox har sedan tidigare utvecklat zxcvbn som ser till att användarna väljer bra lösenord först och främst. Även så kan vi anta att Dropbox kontinuerligt bevakar läckage av lösenord på nätet och informerar användare om just deras lösenord finns med eller går att knäcka.

Givetvis kan man alltid argumentera att det nu finns säkrare alternativ till bcrypt såsom argon2 och scrypt. Men bcrypt har bra stöd i många programbibliotek och har funnits ända sedan 1999. Dock uppger Dropbox att de har mer erfarenhet av bcrypt men kommer troligtvis att uppgradera till argon2.

Även uppger Dropbox att de kommer i framtiden att överväga att använda en HSM (kanske CrypTech?) för att lagra den globala nyckeln. Denna nyckel roteras också regelbundet uppger de på sin blogg.

Finalister i Password Hashing Competition

Password Hashing Competition (PHC) är en tävling som går ut på att hitta nya bra algoritmer för att hasha lösenord. Det finns tyvärr i dagsläget inte så många bra kanidater att välja på: scrypt och bcrypt. Bakom tävlingen står en grupp med kryptografiska experter såsom Peter Gutmann, Colin Percival och Matthew Green.

Tävlingskriterierna är enligt följande:

  • Skydd mot beräkningar i GPU/FPGA/ASIC
  • Skydd mot tid-minneskompromisser
  • Skydd mot sidokanalsläckage
  • Skydd mot kryptografiska attacker
  • Elegans och enkelhet
  • Dokumentationskvalité
  • Kvalité på referensimplementationen
  • Allmän sundhet och enkelhet av algoritmen
  • Originalitet

Det har nu presenterats 12 finalister som är följande:

Argon, battcrypt, Catena, Lyra2, Makwa, Parallel, POMELO, Pufferfish, yescrypt (som vi skrev om i Maj 2014).

För att läsa mer om dessa finalister kolla in password-hashing.net.

yescrypt

Efter bcrypt och scrypt kommer yescrypt

Nyligen så höll Solar Designer en presentation under konferensen PHDays 2014 om yescrypt. Yescrypt är en förbättring av bcrypt, scrypt och PBKDF2 som ska göra det svårare att knäcka lösenord.

Att det blir svårare att knäcka lösenord som använder sig av yescrypt beror på ett par olika faktorer såsom att det är svårt att använda hårdvara (GPU etc) för att knäcka lösenord.

Yescrypt är också ett av 22 bidrag till tävlingen Password Hashing Competition som går ut på att hitta en efterföljare till dagens lösenordshashingalgoritmer.

Nackdelar finns det dock, det är tämligen svårt att implementera yescrypt. Programmerare som försökt att implementera scrypt vet hur svårt detta har varit. Tyvärr så uppkommer det om och om igen att läckta lösenordsdatabaser ej använt hashalgoritmer, nu nyligen var det eBay.

PDF med presentation hittar du här:

YescryptDiskussion hittar du på Reddit samt källkod för test återfinnes på Github.

 

 

John the Ripper ute i ny version

Lösenordsknäckningsverktyget (woh, långt ord) John the Ripper är nu ute i version 1.7.9. Största ändringen är att OMP-patcharna (OpenMP) nu finns med som standard.

Changelog enligt följande (engelska)

  • Added optional parallelization of the MD5-based crypt(3) code with OpenMP.
  • Added optional parallelization of the bitslice DES code with OpenMP.
  • Replaced the bitslice DES key setup algorithm with a faster one, which significantly improves performance at LM hashes, as well as at DES-based crypt(3) hashes when there’s just one salt (or very few salts).
  • Optimized the DES S-box x86-64 (16-register SSE2) assembly code.
  • Added support for 10-character DES-based tripcodes (not optimized yet).
  • Added support for the “$2y$” prefix of bcrypt hashes.
  • Added two more hash table sizes (16M and 128M entries) for faster processing of very large numbers of hashes per salt (over 1M).
  • Added two pre-defined external mode variables: “abort” and “status”, which let an external mode request the current cracking session to be aborted or the status line to be displayed, respectively.
  • Made some minor optimizations to external mode function calls and virtual machine implementation of John the Ripper.
  • The “–make-charset” option now uses floating-point rather than 64-bit integer operations, which allows for larger CHARSET_settings in params.h.
  • Added runtime detection of Intel AVX and AMD XOP instruction set extensions, with optional fallback to an alternate program binary.
  • In OpenMP-enabled builds, added support for fallback to a non-OpenMP build when the requested thread count is 1.
  • Added relbench, a Perl script to compare two “john –test” benchmark runs, such as for different machines, “make” targets, C compilers, optimization options, or/and versions of John the Ripper.
  • Additional public lists of “top N passwords” have been merged into the bundled common passwords list, and some insufficiently common passwords were removed from the list.

JtR kan i sedvanlig ordning laddas hem här: http://www.openwall.com/john/