• 1
  • 2
2008-01-23, 18:34
  #13
Moderator
impieteers avatar
En förmodligen stendum fråga, men betyder det att mer än ett lösenord funkar i teorin, om verifieringen går ut på att lösenordet hashas och jämförs med den lagrade hashen?
Citera
2008-01-23, 18:34
  #14
Bannlyst
Citat:
Ursprungligen postat av segfault
Kollisioner finns i alla hash-funktioner. Det man försöker göra att försvåra processen att hitta kollisionerna, men kollisioner förekommer alltid.
Källa?
Citera
2008-01-23, 18:42
  #15
Medlem
Citat:
Ursprungligen postat av impieteer
En förmodligen stendum fråga, men betyder det att mer än ett lösenord funkar i teorin, om verifieringen går ut på att lösenordet hashas och jämförs med den lagrade hashen?

ja

tex en md5 summa: c997372f371262694caf89dde943936d

svaret kan vara: abcd

men även vara: öööööööööööööööööööööööööööööööööööööööööö@

"dom råkar bli sammma"

beviset på att de finns är väl att du kan använda längre strängar än summalängden och då måste det bli kollisioner då det bara finns ett visst antal möjliga checksummor och ett oändligt antal lösen att räkna ut summan för
Citera
2008-01-23, 18:42
  #16
Medlem
Citat:
Ursprungligen postat av medlemslista
Källa?

http://en.wikipedia.org/wiki/Pigeonhole_principle
Tänk lite så kommer du fatta varför.
Citera
2008-01-23, 18:48
  #17
Medlem
pingvinens avatar
Citat:
Ursprungligen postat av medlemslista
Källa?

http://www.flashback.org/showthread.php?t=399945

Mycket bra beskrivning av hashning mm
Citera
2008-01-23, 18:52
  #18
Medlem
Säg att lösenord innehåller a-z A-Z 0-9 det blir 64 olika tecken (om jag räknat rätt).
Säg att längden på lösenordet är 8 tecken
64 ^ 8 =
2,81474976710656e+14 kombinationer

Om man använder md5 för att hasha så är en md5 summa 32 tecken långt, 0-9 a-f blir 16 olika tecken.
16 ^ 32 =
3,4028236692093846346337460743177e+38 kombinationer

Så i princip finns där inte 2 olika lösenord med samma hash i detta fallet.



Om vi säger att lösenordet istället är 25 tecken långt.
Och vi lägger även till lite fler tecken §!#¤%&(){} så att det blir totalt 74 olika möjliga tecken:
74 ^ 25 =
5,3801327703781979380024295002112e+46 kombinationer


Så ja, i teorin så kan de funka med två olika lösen till samma hash, men i praktiken.. neeee
Citera
2008-01-23, 20:03
  #19
Medlem
hajskinns avatar
Citat:
Ursprungligen postat av kobbe
Så ja, i teorin så kan de funka med två olika lösen till samma hash, men i praktiken.. neeee
Tänk på att en dator är ganska snabb. När de smartaste matematikerna tänker så det knakar visar det sig att det går att hitta kollisioner för MD5 på 30 sekunder på en vanlig laptop: http://cryptography.hyperlink.cz/MD5_collisions.html
Att hitta en kollision för ett lösenord skulle däremot ta lite längre tid eftersom alla tecken inte är tillåtna i lösenord.
Citera
2008-01-23, 20:51
  #20
Medlem
Grunt_Grunts avatar
Citat:
Ursprungligen postat av MrRedman
Men att hasha lösenord, kan man anse att det är tillräckligt för att skydda dessa? Om inte jag minns helt fel så är det precis så MySQL gör för användar lösenord. Antar att hashning är enklare att implementera om än att det inte erbjuder samma säkerhet som kryptering, eller gör det kankse?

Det verkar som om tråden har gått in på andra intressanta frågor, men jag ska försöka svara på ursprungsfrågan.

Den stora skillnaden på hashning och kryptering är att du vid kryptering behöver en nyckel, men då finns också en nyckel för dekryptering, som ger tillbaka ursprungsnyckeln. Därför finns det olika användningsområden för de olika metoderna.

Om du ska spara ditt lösenord på din dator för att inte glömma av det så måste du enkryptera. Hashar du det så kan du inte få tillbaka originalet.

Men i en MySQL-databas så ska du enbart jämföra det inkommande lösenordet med det som är sparat i databasen. Om du då hashar lösenordet som ligger i databasen, samt hashar det inkommande lösenordet, så kan du bara jämföra hasharna istället. På så vis behöver aldrig lösenordet sparas i klartext. Om du däremot enkrypterar istället för att hasha, så behöver du använda en nyckel. Denna nyckel måste ju sparas nånstans, och får en obehörig tag på nyckeln så kan han också få tag på lösenorden i klartext. Så hashning har faktiskt högre säkerhet.

Givetvis skulle man kunna använda en icke-symmetrisk enkryptering, dvs nyckeln som enkrypterar det inkommande lösenordet kan inte användas för dekryptering. Anledningen till att man inte gör det är antagligen för att det blir lite segare implemenation, samt att icke-symmetrisk enkryptering kräver förhållandevis mycket datakraft.
Citera
2008-01-23, 21:33
  #21
Medlem
Grunt_Grunt skrev ungefär vad jag själv tänkte skriva, fast tydligare.

Skulle vilja poängtera vikten av att inte behöva en separat nyckel vid hashning - "gömma nyckeln" är ofta ett mer svårlöst problem än själva kryptografin (eftersom man normalt sett använder helt färdiga lösningar).
Går också att generalisera till att ett enklare system är säkrare, eftersom det har färre hål.

Å andra sidan, ett hashande system har alltid svagheten att det inte är säkrare än lösenorden, medan med kryptering kan man så länge nyckeln förbir hemlig få högre säkerhetsnivå eftersom nyckeln kan vara hur komplicerad som helst.
Citera
2008-01-24, 13:17
  #22
Medlem
arkontens avatar
Citat:
Ursprungligen postat av ltvix
Vilken litteratur är det?
Jag syftade på professionell och akademisk datasäkerhetslitteratur, men det förekommer även i massa guider, howto:s, wikipedia etc. Ett annat talande exempel är att google returnerar flerfalt fler (20+ ggr) träffar för "encrypted password" än "hashed password".
__________________
Senast redigerad av arkonten 2008-01-24 kl. 13:19.
Citera
2008-01-24, 15:43
  #23
Medlem
Citat:
Ursprungligen postat av arkonten
Jag syftade på professionell och akademisk datasäkerhetslitteratur
Det gjorde du säkert, i alla fall så förutsatte jag det. Vad jag var intresserad av att veta var vilken litteratur, inte vilken klass eller typ av litteratur. Det kunde jag lista ut själv. Vad gäller källor på Internet så får det vara sidor som schneier.com eller cryptography.hyperlink.cz.

Det är inte på det viset att jag inte tror att sådana uttalanden fälls, jag vill bara veta var det språkbruket används och vilken bakgrund de personer har som använder det.
Citera
2008-01-25, 01:08
  #24
Medlem
arkontens avatar
Citat:
Ursprungligen postat av ltvix
Det gjorde du säkert, i alla fall så förutsatte jag det. Vad jag var intresserad av att veta var vilken litteratur, inte vilken klass eller typ av litteratur. Det kunde jag lista ut själv. Vad gäller källor på Internet så får det vara sidor som schneier.com eller cryptography.hyperlink.cz.

Det är inte på det viset att jag inte tror att sådana uttalanden fälls, jag vill bara veta var det språkbruket används och vilken bakgrund de personer har som använder det.
Faktum är att jag tycker att det känns som det vanligaste språkbruket. Man hör sällan talas om "the hased password file" utan istället "the encrypted password file". Några specifika källor har jag inte på minnet, men det är väl bara att googla.

Kom just att tänka på en sak: i äldre versioner av UNIX så använde man faktiskt en äkta krypteringsrutin för att skydda lösenorden, nämligen DES. Således kanske det framförallt är gamla UNIX-rävar som håller kvar detta språkbruk, trots att man nu mer rent tekniskt sett hashar lösenorden, och antagligen är detta ursprunget av uttrycker. Men som jag tidigare nämnt, skillnaden är mycket liten i detta specifika fall, så att säga krypterat lösenord fångar essensen av vad som händer även om allt sker lite baklänges.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in