poniedziałek, maja 28, 2007

Ataki na logowanie:

  1. Można logować się do systemu poprzez podanie konta/hasła w czystej postaci, ale to ma swoje wady - podatność na in-the-middle attack tzn. można się podszyć pod dane konto stosując "lewy" serwer DNS (aby temu zapobiec często używa się OpenDNS), wszystko widać w czasie transmisji i w bazie (w kolumnach gdzie się przechowujekont/hasło)
  2. Można hashować hasło po stronie klienta (biblioteka jsSHA2.js na stronie http://anmar.eu.org/,

<form onsubmit="pwField.value = b64_sha256(pwField.value);">

Co to daje? Brak wiedzy o haśle, a nawet jego długości. Wady - musi być włączony JS w przeglądrce, atak słownikowy, atak replay atack (wystarczy podstawić hash zamiast hasła) dlatego podczas transmisji stosuje się tunel SSL.

  1. Można do tego dodać dane specyficzne dla użytkownika np.: <form onsubmit="pwField.value = b64_hmac_sha256(userId.value, pwField.value);">
  2. Wykorzystanie schematu pytanie-odpowiedź (challenge-response) zwanej też CHAP (http://pajhome.org.uk/crypt/md5/auth.html implementacja MD5 i SHA1) - hasło po stronie klienta jest hashowane dodatkowo przy pomocy informacji przysłanej przez serwer

Brak komentarzy: