"Thomas Eg Jørgensen" <tejo03@kom.auc.dk> wrote in message
news:cu3fnu$24vf$1@news.cybercity.dk...
[snip]
>
> Nogle gode råd eller ideer til hvordan jeg bør forholde mig til dette
> problem?
>
Jeg vil starte med at indrømme jeg på ingen måde er ekspert indenfor
kryptografi.
Men jeg vil mene den bedste løsning ville være at du opbevarede brugernes
password krypteret. Men som du selv påpeger så ligger problemet nu i
hvorledes du beskytter nøglen til denne kryptering.
Til dette ville jeg mene en form for secret sharing ville være på sin plads.
Secret sharing er en metode til at sikkre 2 ting:
1. Ingen individuel person kender hele sandheden
2. Hvis en del af sandheden går tabt kan den genskabes fra de andre
personer.
Det man normalt snakker om er at man tager krypteringsnøglen og vha. en
passende algoritme splitter denne på i n shares. Algoritmen definere et
såkaldt threshold t der er 0 < t < n.
Idéen er nu at såfremt t shares er kendt afslører det intet om hvilken nøgle
der er brugt, men hvis man har t + 1 shares er nøgle entydigt bestemt.
Det mest simple setup for dig ville være at følgende personer fik hver deres
share:
1. Kunden
2. Dig
3. Troværdig 3. part (f.eks. banken)
Og I satte et threshold på 2. Såfremt kundens hus sprang i luften, ville
kunden kunne gå ned i banken hente den 3. share og sammen med dig få hans
kodeord.
Hvad der findes af kommecielle produkter der implementere ovenstående ved
jeg dog ikke lige. Men her er lidt læse stof til at skubbe dig igang:
http://en.wikipedia.org/wiki/Secret_sharing
http://www.daimi.au.dk/~ivan/secretsharing.ps (Bemærk: PostScript
format, men GhostView burde kunne læse det for dig)
Hilsen
Mads