Avatar billede killer_r Nybegynder
20. november 2003 - 09:41 Der er 4 kommentarer og
1 løsning

SHA-1 kryptering på login-side

Jeg har på min side et brugerlogin som jeg gerne vil forbedre sikkerheden på, så jeg har bruger SHA-1-kryptering til at kryptere passwordet inden det sendes til serveren (via JavaScript)...
Sådan:

<script type="text/javascript" language="JavaScript" src="/SHA-1.js"></script>
<script type="text/javascript">
function handleLogin(form)
    {
    var StrKey = "dj2jd93lshh393llsasnnvdghrpayhapiehfh393hhfbmbdvb37738bbfb438"; // DETTE GEMMES OGSÅ I session("SHA1_key") - altså server-side...!!!!
    var input = form.elements["password"].value;

    form.elements["EncPass"].value = hex_sha1(StrKey + hex_sha1(input));
    form.elements["password"].value = "";

    return true;
    }
</script>

Og jeg "modtager" sådan:

<script runat="server" type="text/javascript" language="JavaScript" src="/SHA-1.js"></script>
<%
if inputPass = hex_sha1(session("SHA1_key") & hex_sha1(dbPass)) then
  'LOG IND
end if
%>

Men med de såkaldte "sniffer"-programmer kunne det jo være muligt for en udenforstående at opsnappe det krypterede password og StrKey (altså "nøglen")...
Vil det så være muligt for vedkommende at "dekryptere" passwordet og ende ud med det rigtige password...???


/Killer_R
Avatar billede erikjacobsen Ekspert
20. november 2003 - 09:53 #1
Næppe. Både md5 og sha1 er "sikre" hash funktioner, som gør at det ikke er
realistisk at finde det input, der matcher et givet output.

Hvis jeg forstår dig korrekt, bruger du en ny "tilfældig" StrKey for
hvert forsøg. Den kan opsnappes. Det der kommer tilbage kan også
opsnappes, og det er her problemet ligger, for nu kan en anden komme
med den samme forespørgsel een gang til.

Du kan forbedre systemet (uden at jeg vil garantere noget):

1) Du checker også for IP-adresse (med de problemer det nu giver: der
kan sagtens være flere bag samme IP-adresse, og en IP-adresse kan ændre
sig for brugeren fra foreapørgsel til forespørgsel)
2) Du sletter din StrKey fra sessionsvariablen i samme øjeblik den er
brugt og passwordet er godkendt.
Avatar billede killer_r Nybegynder
20. november 2003 - 15:38 #2
Det du siger i 1) er altså at jeg på en eller anden måde skal tjekke om brugerens IP er det samme som den IP'en fra den der sendte...?
Avatar billede mortendahl2003 Nybegynder
22. december 2003 - 00:56 #3
Det du kalder for SH1-krypteringsnoeglen kaldes ogsaa for et salt: et tilfaeldigt nummer der goer det upraktisk paa forhaand at lave en tabel over alle muligheder (denne tabel ville goere det muligt hurtigt at finde adgangskoden udfra hash-vaerdien). Dette salt er essentielt at bruge, men husk at skift det hver gang!

Som erikjacobsen ogsaa siger, saa er dit problem at du er saarbar overfor replay-attack. Udfra de protokoller jeg kender til, kan jeg ikke umiddelbart give dig en loesning, naar du kun har en hash-algoritme til raadighed. Kunne du paa en eller anden maade kryptere ville det hjaelpe meget, det nemmeste ville vaere at bruge SSL.

/Morten
Avatar billede killer_r Nybegynder
26. januar 2004 - 17:20 #4
erikjacobsen >> Ligger du ikke et svar?!
Avatar billede erikjacobsen Ekspert
26. januar 2004 - 19:20 #5
Tak, jeg samler ikke på point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester