Taggat med: lösenord

Nya lösenordsrekommendationer från NIST: Ju längre desto bättre

nist

Den amerikanska myndigheten NIST släppte nyligen uppdaterade rekommendationer gällande hantering av lösenord. Dessa uppdaterade rekommendationer kommer precis lagom till det att SVT Dold uppdagat att massor av läckta lösenord och användaruppgifter finns på nätet att tanka ner. Många av dessa läckta lösenord är så klart hashade eller krypterade som i fallet med Adobe (läs här hur du knäcker lösenord).

Dessa nya rekommendationer från NIST innehåller bl.a. att användare ska ges möjlighet att välja lösenord upp till 64 tecken. Även ska lösenord tillåtas att innehålla specialtecken såsom unicode, space och emojis.

En annan bra sak är att rekommendationerna från NIST anser att du bör kontrollera de lösenord som användaren anger mot listor med vanligt förekommande lösenord. Samt så bör du ta bort password hints och Knowledge-based authentication (KBA) såsom frågor ”din moders ogifta efternamn”, ”din förstfödde hunds bästa kompis”.

Minst 32 bitar slumpad salt ska användas samt en hashfunktion godkänd av NIST såsom PBKDF2 och med minst 10,000 iterationer.

Dokumentet innehåller även en hel del andra vettiga saker såsom att SMS för 2FA inte bör användas (troligtvis pga SS7 attacker och nummerportabilitet).

Avsnitt 2 av SVT Dold kan du se här: www.svtplay.se/video/11171365/dold/dold-sasong-2-avsnitt-2

Ny GPU-instans från Amazons molntjänst EC2

amazon-web-servicesAmazon har en molnjänst vid namn EC2 där du kan hyra datorkapacitet per timme. De har nu lanserat en ny GPU-instans som gör att du kan knäcka lösenord ännu snabbare, något som vi som jobbar med IT-säkerhet gillar.

Den nya instansen heter p2.16xlarge och har 16 st GPU-kärnor och körs med ett Nvidia Tesla K80-grafikkort. Det går så klart inte att jämföra med exempelvis Nvidia Titan X men du slipper springa iväg till affären och köpa ett grafikkort eller en häftig Sagitta Brutalis. Kostnaden för en instans av p2.16xlarge ligger på$14.4 vilket är ca 123 SEK/h.

Här kommer några färska prestandasiffror som jag just hämtade in från en instans som jag startade upp och konfigurerade på under 10 minuter:

$ ./hashcat64.bin -b
hashcat (v3.10) starting in benchmark-mode...

OpenCL Platform #1: NVIDIA Corporation
======================================
- Device #1: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #2: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #3: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #4: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #5: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #6: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #7: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #8: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #9: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #10: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #11: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #12: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #13: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #14: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #15: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #16: Tesla K80, 2859/11439 MB allocatable, 13MCU

Hashtype: MD5

Speed.Dev.#1: 4232.2 MH/s (93.96ms)
Speed.Dev.#2: 4228.3 MH/s (94.21ms)
Speed.Dev.#3: 4179.4 MH/s (95.75ms)
Speed.Dev.#4: 4246.1 MH/s (96.86ms)
Speed.Dev.#5: 4488.8 MH/s (92.94ms)
Speed.Dev.#6: 4460.2 MH/s (91.24ms)
Speed.Dev.#7: 4314.4 MH/s (94.73ms)
Speed.Dev.#8: 4569.5 MH/s (88.65ms)
Speed.Dev.#9: 4465.4 MH/s (90.92ms)
Speed.Dev.#10: 4147.8 MH/s (95.67ms)
Speed.Dev.#11: 4426.8 MH/s (93.48ms)
Speed.Dev.#12: 4078.0 MH/s (98.75ms)
Speed.Dev.#13: 4339.8 MH/s (94.58ms)
Speed.Dev.#14: 4459.1 MH/s (91.09ms)
Speed.Dev.#15: 4263.1 MH/s (94.88ms)
Speed.Dev.#16: 4221.2 MH/s (93.16ms)
Speed.Dev.#*.: 69120.1 MH/s

Och med den GPU-instansen hos Amazon som var snabbast tidigare så såg det ut så här när det gäller MD5:

Hashtype: MD5

Speed.Dev.#1.: 1714.1 MH/s (95.69ms)
Speed.Dev.#2.: 1705.1 MH/s (96.22ms)
Speed.Dev.#3.: 1714.5 MH/s (95.36ms)
Speed.Dev.#4.: 1726.3 MH/s (95.01ms)
Speed.Dev.#*.: 6860.0 MH/s

Så en klart förbättring.

Uppmaning: Tvinga inte regelbundna lösenordsbyten

CESG Lösenord

Brittiska säkerhetsmyndigheten CESG släppte under 2015 en lösenordspolicy som frångår tidigare rekommendationer som säger att användare bör byta lösenord efter 30, 60 eller 90 dagar.

Regular password changing harms rather than improves security, so avoid placing this burden on users. However, users must change their passwords on indication or suspicion of compromise.

Citat från CESG Password Guidance

Och för några dagar sedan så släppte även CESG en djupare förklaring till varför myndigheten har ändrat sina rekommendationer.

Det beror främst på följande tre orsaker:

  • Ökad administration – Det är lättare att glömma bort lösenordet om användaren tvingas ändra lösenordet regelbundet.
  • Snarlika lösenord – Användaren väljer i många fall snarlika lösenord när denne tvingas ändra lösenord regelbundet.
  • Skriva ner lösenordet – Långa komplexa lösenord som måste bytas ofta är svåra att komma ihåg och användaren skriver då ner lösenordet i större omfattning.

CESG är en del av brittiska signalspaningsmyndigheten GCHQ. Här kan du ladda hem CESG lösenordspolicy i sin helhet:

CESG Lösenordspolicy

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

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

Säker lösenordshantering med Seclave

Vi fick för några månader sedan erhålla ett exemplar av lösenordshanteraren Seclave. Det är en liten enhet som har ett enda syfte: Hålla koll på dina lösenord. Dosan är max några centimeter stor och får plats i fickan. Den kan hålla upp till 500 stycken lösenord och skyddas av ett huvudlösenord som skapas när du startar upp enheten första gången.

Detta huvudlösenord består av två ord som är lätta att komma ihåg men svåra att forcera genom det lilla kontrolldonet på Seclave-enheten. Det finns även en begränsning på hur många försök som får genomföras innan allt innehåll raderas.

För den som är mer intresserad av tekniska detaljer så rekommenderar vi att läsa här. Utöver att spara lösenord så ingår det även en lösenordsgenerator som kan skapa nya säkra svårgissade lösenord.

Det vi gillar extra mycket är att den ej behöver någon anslutning till din dator och du kan hålla den fysiskt separerad från övrig utrustning. Men om du vill ansluta den till din dator så finns även den möjligheten och då kan du ta backup av lösenorden samt så agerar enheten tangentbord och kan då skriva in lösenord.

Seclave kostar cirka 600kr och är byggd i Sverige samt utvecklad av Karl Janmar af Ekenstam.

Seclave1

Seclave2

John the Ripper 1.8.0

John the RipperGillar du att knäcka lösenord? Då har vi en nyhet för dig: Lösenordsknäckar-verktyget John the Ripper finns nu ute i en ny version.

För samtliga nyheter i denna nya version se release-notes här:

Och glöm inte att stödja projektet genom att köpa en av de snygga t-shirts som finns ute för försäljning.

Som vanligt kan du ladda hem John the Ripper från Openwall.com här:

Så skapar du ett säkert lösenord

Nedan listar vi fem verktyg för att generera ett lösenord för att exempelvis användas för onlinetjänster såsom Facebook, Twitter eller Gmail. Eller för att vara ännu säkrare så kan du även använda tvåfaktorsautentisering.

Random.org

 

Random.org

 

PC Tools av Symantec

 

PC Tools

 

Strong Password Generator

 

Strong Password Generator

 

Norton Lösenordsgenerator

Norton Lösenordsgenerator

 

Free Password Generator

Free Password Generator

 

Vi har ej kontrollerat huruvida ovan tjänster fungerar som utlovat eller ej. Men att använda en mjukvara för att generera lösenord direkt på din dator är troligtvis säkrare än att använda dessa tjänster.

Du kan även använda myndigheten PTS tjänst för att testa lösenord:

Som en extra rolig tjänst så kan vi rekommendera DinoPass som skapar lösenord anpassade för barn:

DinoPass

 

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/

Cain & Abel uppdatering

Det kompetenta lösenordsknäckningsverktyget/sniffern Cain & Abel för Windows får sig en uppdatering med bl.a följande:

  • Added MP3 audio file generation in VoIP sniffer.
  • Fixed Abel DLL crashes on 64-bit operating systems.
  • Modified Export function to Users, Groups, Services and Shares lists with TAB separators.
  • Fixed a bug in Wireless Password Decoder concerning Microsoft Virtual WiFi Miniport Adapter.
  • Fixed a bug in NTLMv2 Cracker within the “Test Password” function.
  • Removed “WindowsFirewallInitialize failed” startup error message if Windows Firewall service is stopped.

Nya versionsnummret är v4.9.36 och kan laddas hem här: oxid.it

Skärmdump: