webForumDet fria alternativet

MD5 + ASP?

22 svar · 890 visningar · startad av M.Cheraghi

M.CheraghiMedlem sedan juli 20015 107 inlägg
#1

Hello!

Bygger ett litet system med användare. Systemet kan innehålla värdefull information och jag vill därför hasha lösenordet!

Jag har läst lite på https://www.swesecure.com och kommit fram till att MD5 verkar vara en bra metod. Då är min fråga hur jag ska gå till väga?

Registrering: Användaren skriver in sitt lösenord, som sätts ihop med 8-16 slumpvalda siffror/tecken. Strängen hashas med MD5 och hashnyckeln sparas i databasen, och den slumpvalda sifferkombinationen också i ett separat fält!

Användaren försöker logga in med ett användarnamn och ett lösenord, där man tar genom användarnamnet och hämtar ur den slumpvalda kombinationen och sätter ihop med lösenordet och hashar det och sedan jämnför det hashade resultatet med det hashade resultatet i databasen och sedan loggar in personen?

Då är min fråga hur detta kan vara säkert? Personens inmatade lösenord i textfältet är fortfarande detsamma, skillnaden är bara att det förändras på andra sidan internet. Om 'kalle' har "Sverige" som lösenord, och 'fredrik' försöker knäcka 'kalles' lösenord, och skriver in 'Sverige' som lösenord så är ju saken klar, Fredrik blir inloggad! Eller hur? Så då är min fråga hur Hashande kan vara bra?

- Hur många bitars kryptering är MD5?
- Hur hashar jag en sträng i ASP mha MD5?
- Hur kan https://www.swesecure.com dekrupåtera/forcera hashade värden som är skapade mha MD5?

10-4 over and out!

cyprysMedlem sedan dec. 20003 563 inlägg
#2

Själva hashningen handlar om att lösenordet ska inte kunna läsas i klartext. Självklart går det fortfarande att gissa sig fram. Det kommer aldrig ändras sålänge man faktiskt använder lösenord i dagens bemärkelse.

Skillnaden genom att använda en hashning ligger i ifall någon kommer över databasen. Istället för att hackaren kan läsa samtliga lösenord ser han bara en massa 16-bytes-hashvärden.

En del som man inte löser med hashning är att lösenordet fortfarande skickas i klartext till servern. På ett oskyddat wlan kan man alltså fortfarande läsa lösenordet i klartext. SSL är en lösning på det.

För att knäcka en databas där lösenorden är krypterade med MD5 är brute force en vanlig metod. Är databasen stor med många användare är sannolikheten att någon har ett vanligt lösenord eventuellt stor. Med tillgång till databasen sker det i stil med

for each vanligt_lösenord
  select user where password = hashMD5(vanligt_lösenord)
...

Ett sätt att lösa det problemet är att salta hashsumman. Det görs genom att summan inte bara bygger på lösenordet utan även på användarnamnet eller e-postadress t.ex.

insert into tbl (user,pwd) values(username,hashMD5(username & password))

http://en.wikipedia.org/wiki/MD5 Har väl en del basicinfo.
http://www.xstandard.com/page.asp?p=44AFBB03-EDC1-49FE-94CC-333AE728331E är väl en metod att användar med ASP. Goggle: asp +md5 borde väl funka annars. :)

OveRRidEMedlem sedan feb. 200112 078 inlägg
#3

Man behöver inte nödvändigtvis installera en komponent för att använda MD5 dock, som jag skrivit om tidigare. Se detta inlägg.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#4

Så klart, skriver man in den andras lösenord, så klart man tar sig in! Oavsett krypteringar.. hu hu

Saken med hasade lösenord är om någon kommer åt databasen så har man svårare att kom åt lösenordet, eftersom det inte längre står i rentext, samt om man skall skicka lösenordet i kakor eller mellan sidor så är det bra om det är krypterat.

Lösenordet skickas ju som rentext från client till server, så vida man inte använder sig av en ssl-kryptering. https://

Fråga 1) md5 är en 128-bitars kryptering.. (vill du ha en ännubättre kryptering så titta på SHA-1, den e nämligen 160-bitar. )

Fråga 2) http://www.freevbcode.com/ShowCode.Asp?ID=2366

Fråga 3) Visst går det, har man bara nyckeln så är det helt klart mycket enklare!
Hur, de vette fasiken!

M.CheraghiMedlem sedan juli 20015 107 inlägg
#5

okej, om jag hashar, ett redan hashat lösenord! ökar det från 128 till 256 bitar då?
Dvs dubbelhashar

tydalMedlem sedan juni 20034 013 inlägg
#6

Du ska inte spara lösenordet i databasen, bara MD5-hashen. Annars försvinner hela poängen med att använda MD5.

MD5 är ingen kryptering. MD5 är en kontrollsiffra. Visserligen en ganska stor kontrollsiffra eftersom den består av 32 (hexadecimala) siffror. Men det funkar på samma sätt som kontrollsiffran i ett personnummer exempelvis.

Tanken är att om du nöjer dig med att spara kontrollsiffran i databasen, i stället för lösenordet, så går det aldrig att få fram lösenordet eftersom lösenordet då inte finns. Precis på samma sätt som du inte kan få fram ett personnummer utifrån dess kontrollsiffra.

När personen ska logga in beräknas kontrollsiffran på det han/hon skriver. Blir det samma kontrollsiffra som den som är sparad så utgår datorn från att det är rätt lösenord och inloggningen godkänns.

Med personnummer så är ju kontrollsiffran så kort att det är lätt att räkna ut ett personnummer som ger en viss kontrollsiffra. Men eftersom MD5 ger en så stor kontrollsiffra är det väldigt svårt att räkna ut en teckenkombination som ger en viss kontrollsiffra.

tydalMedlem sedan juni 20034 013 inlägg
#7

M.Cheraghi skrev:

okej, om jag hashar, ett redan hashat lösenord! ökar det från 128 till 256 bitar då?

Nej, MD5 ger alltid en kontrollsiffra på 128 bitar.

M.CheraghiMedlem sedan juli 20015 107 inlägg
#8

Okej!

Finns det någon annan komponentfri hashning/kryptering som är mer invecklad? 256 eller 512 bitar etc.

GlitterMedlem sedan juli 2003465 inlägg
#9

Om du vill göra det lite jobbigare för hackare så kan du ju lägga in/tabort text i lösenordet innan du hashar det. Det vill säga att de inte kommer åt din kod då.

LaspMedlem sedan juli 200012 980 inlägg
#10

Vadan denna säkerhet? Skall du ta över sveriges banktransporter?

M.CheraghiMedlem sedan juli 20015 107 inlägg
#11

Lasp skrev:

Vadan denna säkerhet? Skall du ta över sveriges banktransporter?

Njae, ska nog inte ta över något! :)
Snarare få användare att känna sig trygga när de loggar in.
Hela projektet handlar om ekonomi i största allmänhet!
Så mycket mer än så har jag inte kommit, det är bara en massa tanka som flabbar förbi i huvudet när jag försöker somna! :)

tydalMedlem sedan juni 20034 013 inlägg
#12

M.Cheraghi skrev:

Finns det någon annan komponentfri hashning/kryptering som är mer invecklad? 256 eller 512 bitar etc.

För det första är det väl ingen kryptering eller hashning som kräver någon särskild komponent, eftersom det bara är ren matematik.

För det andra kvittar det hur stor kontrollsiffra du får, så länge det bara är ett litet lösenord du hashar. Det är ju den svagaste länken som bestämmer styrkan. Ett lösenord med stora och små bokstäver samt siffror blir 6 bitar per tecken.

Så, om lösenordet är 16 tecken blir det alltså bara 96 bitar, oavsett hur stark kryptering du använder.

M.CheraghiMedlem sedan juli 20015 107 inlägg
#13

Okej!

Tack tydal! Är det rekomenderat ur säkerhetssynpunkt att hasha hashade hashningar? Dvs hasha om redan hashningar!?

tydalMedlem sedan juni 20034 013 inlägg
#14

Jag rekommenderar att du saltar i stället. När lösenordet skapas så slumpar du fram några tecken (salt) och lägger det till lösenordet innan du hashar. Därefter sparar du saltet och hashen i databasen.

När personen försöker logga in hämtar du saltet och hashen från databasen, lägger till saltet till det personen har skrivit, hashar och ser om du får samma hash.

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#15

Om du vill ha det säkert och vill få användare att känna sig trygga så är SSL att rekommendera.

M.CheraghiMedlem sedan juli 20015 107 inlägg
#16

Erik Juhlin skrev:

Om du vill ha det säkert och vill få användare att känna sig trygga så är SSL att rekommendera.

Och jag antar att det är en dyr lösning? SecureSocket Layer är allt jag vet! Mer om det vet jag inte! :)
Men främst är tanken att detta projekt ska ligga på ett intranet, dock lär någon kanske användadet på internet också. och då kan SSL vara ett komplement.
Kan någon berätta mer om det?

Erik JuhlinMedlem sedan maj 200010 687 inlägg
M.CheraghiMedlem sedan juli 20015 107 inlägg
#18

Okej!

Och vart trollar fram fram ett certifikat då? :)

tydalMedlem sedan juni 20034 013 inlägg
#19

Man skapar ett. Här finns instruktioner för hur man gör med OpenSSL:
http://slacksite.com/apache/certificate.html

M.CheraghiMedlem sedan juli 20015 107 inlägg
#20

OveRR:

Jag försöker använda mig utav din MD5.
Dock får jag ett felmeddelande!
Jag har inte ändrat någonting i koden!

')' förväntas.
/md5.asp, line 201, column 110
lNumberOfWords=(((lMessageLength+((MODULUS_BITS-CONGRUENT_BITS)\BITS_TO_A_BYTE))\(MODULUS_BITS\BITS_TO_A_BYT E))+1)*(MODULUS_BITS\BITS_TO_A_WORD)

267 ms totalt · 3 externa anrop · v20260731065814-full.30151723
127 ms — hämta forumlista (db)
123 ms — hämta statistik (db)
140 ms — hämta tråd, inlägg och bilagor (db)