petterg Skrevet 26. desember 2010 Del Skrevet 26. desember 2010 Sitter å funderer på et system som skal kreve at flere personer er tilstede for at data skal kunne leses/skrives. Tenker foreløpig kun på prinsippet. Data skal lagres kryptert, og det skal ikke være mulig, ei heller for de som drifter serveren å hente ut leselige data uten å kjenne passordene. Det finnes mange måter å gjøre dette på for en bruker. Man kan utvide det hele til en flerbrukervariant, hvor alle brukere må komme med sitt passord. Men hvordan kan man ordne slik at f.eks 3 av 5 brukere er nok for å gi tilgang? EN-bruker-varianten: -et passord brukes til å kryptere en krypteringsnøkkel og krypteringsnøkkelen brukes til å (de)kryptere data -brukeren endrer passord ved at krypteringsnøkkelen dekrypteres med gammelt passord, og krypteres på nytt med nytt passord. Flerbruker-varianten: -krypteringsnøkkelen er delt i like mange deler som det er brukere -et passord brukes til å kryptere den aktuelle brukerens del av krypteringsnøkkelen -når alle brukere har detkryptert sin del av nøkkelen settes delene sammen til den komplette dekrypteringsnøkkelen som brukes til å (de)kryptere data -brukeren endrer passord ved at vedkommendes del av krypteringsnøkkelen dekrypteres med gammelt passord, og krypteres på nytt med nytt passord. Hvordan utvider man så dette slik at systemet ikke nødvendigvis må alle brukerenes autentisering for å gi tilgang til data? En mulighet er at hver bruker har overlappende deler av krypteringsnøkkelen tilgjengelig med sitt passord. Senario 1: Hvis man f.eks. har et system med 3 brukere, og ønsker at det skal holde at 2 brukere er tilstede for å gi tilgang: - Krypteringsnøkkel er delt i 3 deler - Bruker A har del 1 og 2 tilgjengelig, bruker B har del 2 og 3, bruker C har del 3 og 1. - Uansett hvilken bruker som ikke er tilstede vil de to som er tilsted tilsammen kunne gi systemet nok info til å dekryptere alle delene av krypteringsnøkkelen. Samme prinsipp kan utvides til flere brukere, men jeg føler ikke at det skalerer veldig bra. Så, er det noen som har bedre forslag til fremgangsmåte på dette? Lenke til kommentar
Kahuna Skrevet 28. desember 2010 Del Skrevet 28. desember 2010 Jeg er ikke sikker på at det vil skalere dårlig. Sånn jeg ser det vil hver bruker få et unikt subset av masterpassordet men hvert enkelt brukerpassord vil inneholde litt mindre informasjon enn masterpassordet så det vil være håndterlig ut fra et lagringsperspektiv. Jeg tror jeg skulle klart å knotet ned noe generelt på en rolig kveld med blyant og papir. Punktet der det virkelig begynner å bli hårete er vel hvis du skal ta hensyn til at antall brukere kan variere. Lenke til kommentar
Kahuna Skrevet 28. desember 2010 Del Skrevet 28. desember 2010 Med en statisk brukergruppe ble det faktisk ganske enkelt.. b=antall brukere totalt n=Antall brukere som er nødvendig for å dekryptere s=antall segmenter av masterpassordet hver bruker trenger å vite. For en vilkårlig kombinasjon av b og n er s=b-n+1 Masterpassordet deles i b segmenter. Hver bruker blir tildelt s segmenter. Bruker 1 får segment 1 og de s-1 neste, bruker 2 får segment 2 og de s-1 neste osv. Pass på å bruke falsk addisjon på 's-1 neste' for at de siste brukerne får riktige segmenter (bruker 7 av 7 skal ha segment 7, segment 1 osv). Visualiseres enkelt med blyant på et ruteark. Lenke til kommentar
Kahuna Skrevet 29. desember 2010 Del Skrevet 29. desember 2010 Eller kanskje ikke.. :o Denne utregningen funker bare for å beskrive worst-case. Den gir ikke noen god løsning 'andre veien'. Lenke til kommentar
petterg Skrevet 6. januar 2011 Forfatter Del Skrevet 6. januar 2011 Umiddelbart ser det ut som du er inne på noe med formelen. Det virker litt for enkelt. Hvilket problem vil komme overaskende på? Lenke til kommentar
Kahuna Skrevet 6. januar 2011 Del Skrevet 6. januar 2011 Den funker bare en vei.. Sett inn: b=1000 n=100 Selv om 900 av 1000 er borte så kan du fortsatt gjenskape nøkkelen i sin helhet. Men hvis du snur på det så kan du, hvis du har litt flaks, fortsatt gjenskape nøkkelen selv om 998 er borte. Dette gir høy grad av redundans men liten grad av sikkerhet. Hvis du endrer b og n så får du andre 'knekkpunkter' men det viser at formelen kun virker en vei. Jeg tror fortsatt dette er løsbart men da må du kanskje bruke en 'tabell' med en ny dimensjon per bruker og da nærmer vi oss den kompleksiteten du antydet i første posten..men det er bare en strøtanke jeg ikke klarer å utlede videre. Lenke til kommentar
petterg Skrevet 7. januar 2011 Forfatter Del Skrevet 7. januar 2011 Uh. Sant. Problemet dukker opp allerede i et senario hvor det skal kreves 3 av 4 personer tilstede. Med riktig kombinasjon av to personer vil tredjemann bli overflødig. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå