raboof stelde op zaterdag 03 december 2005 11:20 voor om de
GRC page een random
seed te laten genereren, en
daarmee client-side "(met javascript ofzo)" het password te
laten genereren.
Op zich een goed plan, mits je met Javascript iets kunt
maken dat, op basis van de seed, een onvoorspelbaar
wachtwoord genereert (anders kan Steve Gibson, of een ander
met toegang tot zijn server, het wachtwoord alsnog
voorspellen). En als je dat kunt, heb je de seed eigenlijk
niet meer nodig; je kunt dan net zo goed de user ergens in
een bitmap laten klikken en de coordinaten als seed gebruiken.
Ik ben geen Javascript expert, maar ik lees erover dat deze
wel een functie Math.random() kent. Echter, daar kun je geen
seed aan meegeven, en deze zou na een herstart van de
browser steeds
dezelfde nummers geven.
http://www.macosxhints.com/article.php?story=20050829193835465beschrijft wat de gevolgen zijn voor een via apple.com onder
"networking_security" aangeboden password generator genaamd
KeychainHelper (kan op dit moment niet meer gedownload worden).
In die post wordt ook gewezen op een tooltje genaamd
"Password Generator" dat om dezelfde reden van het net
gehaald zou zijn. Ik kon het zojuist echter wel downloaden
(doelgroep eveneens Mac OS X users):
http://www.designsolution.co.uk/resources/password_generator/en heb eens gekeken hoe deze
nu werkt.
Die "widget" bevat een html page met daarin nog steeds
Javascript. De "randomness" wordt nu verkregen door, zo te
zien
zonder dit ergens aan de gebruiker te melden
(!), 8 random bytes tussen 0 en 30 op te halen met deze URL:
http://www.random.org/cgi-bin/randnum?num=8&min=0&max=30&col=1Dan heb ik toch meer vertrouwen in Steve Gibson's page!
Een alternatief zou kunnen bestaan uit Javascript waarmee je
zelf een random functie met seed creeert. Wat ik daarover
vind is leuk om random plaatjes te tonen maar m.i.
ongeschikt voor passwords. Aardige uitleg van simpele
Javascript rnd() functie:
http://www.irt.org/articles/js033/index.htmDie functie wordt ook gebruikt door de auteur van
Make-A-Pass zoals hij zelf zegt op de eerdergenoemde
macoshints page.
Hoewel ik niet uitsluit dat je met Javascript veel slimmere
dingen kunt doen blijft het feit dat je voor redelijke
PRNG's (Pseudo Random Number Generator) toegang tot meerdere
"entropy sources" moet hebben, en
by design heeft
Javascript code (geladen vanaf Internet) natuurlijk maar
zeer beperkt toegang tot het systeem waar het op draait.
Wel kan deze random getallen van internet halen, maar niets
belet dergelijke code om een gegenereerd password, behalve
in je browser te tonen, ook naar de auteurs of derden te
sturen. Daarnaast bestaat het risico dat deze in je browser
cache wordt opgeslagen, iets wat Steve Gibson voorziet en in
elk geval probeert te voorkomen.
Erik van Straten