Huiswerk voor dienstverleners
Niet alleen voor gebruikers, maar vooral ook voor dienstverleners zijn de nieuwe aanbevelingen van NIST een bron van aanpassingen. Het instituut eist dat de passphrases via een versleutelde en geauthenticeerde manier overgeseind worden. Bij webtoepassingen gaat dat dus om SSL/TLS. Aanbieders moeten de wachtwoorden opslaan op zo'n manier dat ze offlineaanvallen kunnen weerstaan. Dat zijn aanvallen waarbij een aanvaller bijvoorbeeld directe toegang heeft tot de database. Hij kan dan oneindig lang proberen om de opgeslagen passwordhashes te kraken om zo bij de uiteindelijke wachtwoorden te komen.
NIST verplicht het gebruik van gestandaardiseerde functies om sleutels af te leiden zoals PBKDF2 (PasswordBased Key Derivation Function 2) [1]. De door de gebruiker gekozen reeks tekens wordt bij zo'n functie samen met een zogenaamde salt door een hash-functie gehaald zoals SHA-3. Dit is éénrichtingsverkeer, de hash berekenen vanuit de input is eenvoudig, de andere kant op is vrijwel ondoenlijk.
Voordat de uiteindelijke hash samen met de salt in de database terechtkomt, wordt hij opnieuw enkele malen gehasht. Via het aantal van deze iteraties kan de dienstverlener de tijd die nodig is om de boel te kraken aanzienlijk opschroeven. Maar als het aantal herhalingen groter wordt, wordt ook de rekentijd bij het inloggen van de gebruiker groter. NIST raadt minimaal 10.000 iteraties aan. De salt zorgt ervoor dat aanvallers flink meer werk hebben. De aanvaller kan daardoor niet simpelweg grote hoeveelheden hashes tegelijk aanvallen, maar moet elke hash apart onder vuur nemen.