KDF-algoritmer
Bitwarden använder först Key Derivation Functions (KDF) vid skapande av konto för att härleda en huvudnyckel för kontot från det inmatade huvudlösenordet, som fungerar som indata för en huvudlösenordshash för kontot (läs mer). Närhelst en användare autentiseras, till exempel vid upplåsning av ett valv eller tillfredsställande återuppmaning av huvudlösenordet, upprepas processen så att den nyligen härledda hashen kan jämföras med den ursprungligen härledda hashen. Om de matchar, autentiseras användaren.
KDF:er används i denna egenskap för att förhindra brute-force- eller ordboksattacker mot ett huvudlösenord. KDF:er tvingar en angripares maskiner att beräkna ett icke-trivialt antal hash för varje lösenordsgissning, till ökande kostnad för angriparen.
Två KDF-algoritmer finns för närvarande tillgängliga för användning i Bitwarden; PBKDF2 och Argon2. Varje algoritm har ett urval av tillgängliga alternativ som kan användas för att öka den tid och kostnad, eller "arbetsfaktor", som åläggs angriparen.
PBKDF2
Lösenordsbaserad nyckelhärledningsfunktion 2 (PBKDF2) rekommenderas av NIST och, som implementerad av Bitwarden, uppfyller FIPS-140-kraven så länge som standardvärdena inte ändras.
PBKDF2, som implementerats av Bitwarden, fungerar genom att salta ditt huvudlösenord med ditt användarnamn och köra det resulterande värdet genom en enkelriktad hashalgoritm (HMAC-SHA-256) för att skapa en hash med fast längd. Detta värde är återigen saltat med ditt användarnamn och hashas ett konfigurerbart antal gånger (KDF-iterationer). Det resulterande värdet efter alla iterationer är din huvudnyckel, som fungerar som indata för huvudlösenords-hash som används för att autentisera den användaren när de loggar in (läs mer).
Som standard är Bitwarden inställd på att iterera 600 000 gånger, som rekommenderas av OWASP för HMAC-SHA-256-implementeringar. Så länge som användaren inte ställer in detta värde lägre är implementeringen FIPS-140-kompatibel, men här är några tips om du skulle välja att ändra dina inställningar:
Fler KDF-iterationer kommer att öka både tiden det tar en angripare att knäcka ett lösenord och tiden det tar en legitim användare att logga in.
Vi rekommenderar att du ökar värdet i steg om 100 000 och testar alla dina enheter.
Argon2id
Argon2 är vinnaren av 2015 års Password Hashing Competition. Det finns tre versioner av algoritmen, och Bitwarden har implementerat Argon2id som rekommenderas av OWASP. Argon2id är en hybrid av andra versioner, som använder en kombination av databeroende och dataoberoende minnesåtkomster, vilket ger den en del av Argon2is motstånd mot sidokanal-cache-timingsattacker och mycket av Argon2ds motstånd mot GPU-krackningsattacker (källa).
Argon2, som implementerats av Bitwarden, fungerar genom att salta ditt huvudlösenord med ditt användarnamn och köra det resulterande värdet genom en enkelriktad hashalgoritm (BLAKE2b) för att skapa en hash med fast längd.
Argon2 allokerar sedan en del av minnet (KDF-minne) och fyller det med den beräknade hashen tills den är full. Detta upprepas, med början i den efterföljande delen av minnet där det slutade i den första, ett antal gånger iterativt (KDF-iterationer) över ett antal trådar (KDF-parallellism). Det resulterande värdet efter alla iterationer är din huvudnyckel, som fungerar som indata för huvudlösenords-hash som används för att autentisera den användaren när de loggar in (läs mer).
Som standard är Bitwarden inställd på att allokera 64 MiB minne, iterera över det 3 gånger och göra det över 4 trådar. Dessa standardvärden ligger över nuvarande OWASP-rekommendationer, men här är några tips om du väljer att ändra dina inställningar:
Ökande KDF-iterationer kommer att öka körtiden linjärt.
Mängden KDF-parallellism du kan använda beror på din maskins CPU. I allmänhet är Max. Parallellism = Num. av kärnor x 2.
iOS begränsar appminnet för autofyll. Att öka minnet från standardvärdet 64 MB kan resultera i fel vid upplåsning av valvet med autofyll.
Ändra KDF-algoritm
note
2023-02-14: Argon2 stöds av Bitwarden-klienter version 2023.2.0 och senare, och att byta till Argon2 via webbvalvet kan innebära att andra klienter inte kommer att kunna ladda ditt valv förrän de är uppdaterade, vanligtvis inom en vecka efter release.
För att ändra din KDF-algoritm, navigera till sidan Inställningar → Säkerhet → Nycklar i webbvalvet. Ändring av algoritmen kommer att kryptera om den skyddade symmetriska nyckeln och uppdatera autentiseringshashen, ungefär som en vanlig huvudlösenordsändring, men kommer inte att rotera den symmetriska krypteringsnyckeln så att valvdata inte kommer att krypteras på nytt. Se här för information om omkryptering av dina data.
När du ändrar algoritm kommer du att loggas ut från alla klienter. Även om risken med att rotera din krypteringsnyckel inte existerar när du byter algoritm, rekommenderar vi ändå att du exporterar ditt valv i förväg.
Låga KDF-iterationer
I versionen 2023.2.0 ökade Bitwarden standardantalet KDF-iterationer för konton som använder PBKDF2-algoritmen till 600 000, i enlighet med uppdaterade OWASP-riktlinjer. Detta stärker valvkryptering mot hackare beväpnade med allt kraftfullare enheter. Om du använder PBKDF2-algoritmen och har KDF-iterationer inställda under 600 000, får du ett varningsmeddelande som uppmuntrar dig att öka dina KDF-inställningar.
Om du ser det här meddelandet, välj knappen Uppdatera KDF-inställningar och antingen öka dina PBKDF2-iterationer till minst 600 000, eller ändra din KDF-algoritm till Argon2id med standardinställningar. När du sparar dessa ändringar kommer du att loggas ut från alla klienter, så se till att du känner till ditt huvudlösenord och att din tvåstegsinloggningsmetod är tillgänglig.
warning
Before making any changes to encryption settings, it is recommended that you backup your individual vault data first. See Export Vault Data for more information.
Att ändra antalet iterationer kan hjälpa till att skydda ditt huvudlösenord från att bli brutalt tvingat av en angripare, men bör inte ses som ett substitut till att använda ett starkt huvudlösenord i första hand. Ett starkt huvudlösenord är alltid den första och bästa försvarslinjen för ditt Bitwarden-konto.