Jag har insett att försöka lära sig utantill en bunt starka passord är mer eller mindre lönlöst, för i princip är alla passord som man lyckas konstruera ihop och lära sig utantill, är automatiskt vekt vid en seriösare angrepp av anledningen att de inte är sant slumpmässiga. Nämnda, lite skämtsamt konstruerade substituerade passord av vanliga ord som "Sw3KlockRsBra1nl4gg" är att betrakta som väldigt vek trots > 16 tecken lång och knäcks fort med dagens metoder. - det tråkiga är att det fortfarande finns folk som faktiskt tror att den typen av passord är starka...
Sann slumpmässiga passord från 12-16 tecken som är minimikravet numera för att ha någon attackmotstånd är jättesvårt att lära in och väljer man någon slumptalskombination ur en stor grupp alternativa slumpkombinationer som tex. en dator föreslår så väljer hjärnan någon som kanske går att uttala eller svagt liknar någon bekant ord(par) och rata de övriga 'omöjliga' kombinationerna och då är styrkan mot attack genast halverad, om inte mer typ.
Därför använder jag http://www.passwordcard.org/en med två olika, utklippta och inlaminerad exemplar i plånboken, knackar in en oanvänd rad för en ny webbtjänst etc. och sedan låter browsen komma ihåg, är det viktig och inte vill lämna spår i datorn så får man knacka in kombinationen för hand var gång. - misstänker man att kortet är komprometterad eller är tappad så scrappar man den och gör en ny - och uppdaterar sina konton med nya passord.
För master-passord (tex. för keepass, webbrowsers masternyckel för passord, volym och hårddiskkryptering och root-shell på linuxburkar etc.), som ändras väldigt sällan, används sparsamt och kontrollerat och tänkt att läras in utantill så går jag hellre på passfras, genererade med tex. https://www.rempe.us/diceware/#alternative om man inte slår sina tärningar själv fysiskt. 8 ord (med skiljetecken mellan orden) är i stort sett lika starkt som 16 helt slumpvisa tecken med stor och liten bokstav, nummer och alla skrivbara specialtecken som finns i 7-bits ASCII-tabell vilket ger 94 alternativ per teckenplats.
16 slumpvis valda tecken tagna från en lista av 94 teckentyper så ger det 94^16 = 3.72e31 alternativ eller ln(3.72e31) / ln(2) = 104.87 bitar entropi
Slumpvis med tärningar framkastade 8 ord enligt diceware ur en ordlista med 7776 ord så får man 7776^8 = 1.34e31 alternativ eller ln(1.34e31) / ln(2) = 103.4 bitar entropi
tittar man sedan på:
"#6L7[qPbH85pq5st" (alternativ med 16 st slumptecken)
och
"parm-prata-matsal-skurk-vaken-asp-lobba-epilog" (passfras med 8 diceware-ord enligt svensk diceware-ordlista)
Så vet jag i alla fall vilken av alternativen jag skulle ha störst chans att lära mig utantill och båda alternativen har ungefär samma kryptografiska styrka vid en attack.
Har man bekymmer med att komma ihåg 8 ord i sekvens så kan man prova med att lära in 2 st 5 ords-fraser istället, som hjärnan i många fall har lättare att hantera, och sekvenserna kan man sedan kombinera i rad för att få sina 8 eller tom. 10 ord.
Ha sekvenserna på en lapp i plånboken och titta bara i denna om minnet sviker - när man inte längre behöver titta i denna trots användning av fraserna - förstör lappen.
---
Styrkan i valda passordet/passfrasen sitter inte i vald teckensätt eller nationalitet på ordlista eller dess storlek - dessa kan vara kända för angriparen, utan styrka sitter i att tecknen i passordet och orden i passfraserna är i tillräcklig antal (= tillräcklig hög entropi), är framkastade med slump (viktigaste faktorn!!) och användaren inte har fått möjligheten att välja 'lämplig' kombination för att favorisera sin inlärningen.
Hur lång tid tar det då att prova igenom alternativen som anges ovan.
Om man ta 8 ords-passfrasen som är en smula svagare med drygt 1 bit mindre i entropi än 16 teckens sekvensen och med detta är då totalt 1.34e31 kombinationer och vi antar 1000 miljarder test i sekunden:
1.34e31 / 1e12 / 3600 / 24 / 365 = 423880471.17 år
Om vi har en miljard datorer som var och en räknar 1000 miljarder tester i sekunden så får man hålla på i 424 år eller om man får en träff halvvägs igenom, 212 år.
Om man är mindre kinkig för attack och prioriterar kortare passord/passfras som
12 slumpmässiga tecken eller passfras med 6 diceware-ord
så ser det ut:
"#6L7[qPbH85p" (alternativ med 12 st slumptecken)
och
"parm-prata-matsal-skurk-vaken-asp" (passfras med 6 diceware-ord enligt svensk diceware-ordlista)
så är attack-motståndet:
12 slumpvis valda tecken tagna från en lista av 94 teckentyper så ger det 94^16 = 4.76e23 alternativ eller ln(4.76e23) / ln(2) = 78.65 bitar entropi
Slumpvis med tärningar framkastade 6 ord enligt diceware ur en ordlista med 7776 ord så får man 7776^6 = 2.21e23 alternativ eller ln(2.21e23) / ln(2) = 77.55 bitar entropi
Attack räknat med 1000 miljarder prov/s
2.21e23 / 1e12 / 3600 / 24 / 365 = 7010.2 år beräkningstid, 3005 år om man får träff vid 50% genomräknat.
Det är hårdknäckt men med distrubierad räkning över tusentals kraftiga datorer så är det möjligt att knäcka inom 'rimlig tid' för att tex. komma åt HD-innehållet på en krypterad disk/volym eller nyckelarkivfilen för keepass och motsvarande hantering.
För att parera för detta utan att öka nyckellängden/passordet/passfrasen till väldigt obekväm längd så är det viktigt att använda programmet/utrustningen/kontot har 'key-strengthing' med stort antal upprepande och tidsödande 'hash-rounds' för varje passordsprov samt individuell salt (för att försvåra rainbow-attack) för varje användare/nyckel.
Varje inloggningsproceduren värt namnet säkerhetsmässigt har sådant i sig, likaså backupprogram med kryptering, volym och hårddiskkrypteringsprogram - ja, åtminstone i open source och GNU-världen.... hur det är med kommersiella programvaror är svårt att sia om, NSA har bevisligen haft mycket inflytande på en del amerikanska företag och det kan avsiktligt vara försvagat...
Är det någon som har kikat i källkoden för nyckelhanteringen i alla steg för bitlocker i MS-världen, eller litar man förtröstansfullt på att MS gör rätt där...
Den stora skillnaden mellan den gamla Truecrypt och dagens Veracrypt, förutom fix av en del kända möjliga svagheter är att antalet 'hash-rounds' har ökat typ faktor 100-1000 gånger för att kompensera för allt snabbare hårdvara och högre beräkningskapacitet (tex med GPU:er) och i viss mån valbar av användaren och kan sätta den väldigt högt om passordet/passfrasen är vekt, och en inloggning kan ta då upp till minuter i bara hårdräknande på hash-rounds i dessa fall...