HMAuth
Autenticazione di Form html tramite HMAC
Scarica HMAuth
Introduzione:
L'autenticazione HMAC è una buona soluzione per autenticare gli utenti
senza la necessita' di scambio di informazioni sensibili su canale insicuro.
Niente di nuovo, ok, ma penso che piu' soluzioni di questo tipo ci sono
meglio e'...
- Descrizione:
Quando c'e' la necessita' di autenticare utenti via web, le password sono
spesso mandate in chiaro su un canale non sicuro (leggi CMS & co.).
Tutto cio' puo portare allo sniffing delle password...
Quello che segue e' un modo per evitare proprio il passaggio di passwords
su un canale insicuro.
- Come lavora il sistema:
Per autenticare un utente senza che ci sia l'invio di una password.
Il server manda una stringa casuale.
Il client inserendo la password cifra con una funzione
javascript il messaggio e lo reinvia al server.
il server controlla se il messaggio criptato con la stessa password
e' uguale a quello mandato dal browser, se sė allora l'utente e' autenticato.
Questo sistema permette di non inviare segreti su linee non sicure.
Esempio:
-------------index.php-----------------------------------------------------
<?
require_once("hmauth.inc.php");
$password="123";
if(!isset($_POST['auth']))
{
echo "<html>
<body>";
echo '<h2>Autenticazione</h2>
<form name="c" action="" method=post >';
echo print_hmauth_input("c");
echo "</form>
</body>
</html>";
}
else if( test_hmauth($_POST['auth'],$password,$_SESSION['message']))
echo "ok";
else
header("Location: ".$_SERVER['PHP_SELF']);
?>
------------------------------------------------------------------
- Nota finale #1:
A volte puo' essere una buona cosa dire agli utenti del proprio sito che
le loro password non verranno sniffate in giro per internet...
Se vi va (e' facoltativo) potete mettere una piccola immagine che
informa dell'uso di HMAuth sul vostro sito con il seguente codice html:
<div><a href="http://www.wisec.it/hmauth.php" title="Shhh...questo Sito Non Invia Password Su Internet!">
<img src="/images/hmauth.jpg" alt="HMAuth by Wisec.it - The Wise Security" longdesc="Questo sito utilizza HMAuth un sistema
di authenticazione degli utenti tramite form senza l'invio di password in chiaro!" />
</a></div>
ci sono tre banner che potete scaricare:
1. images/hmauth.jpg: jpg statico
2. images/hmauth_shhh.jpg statico
3. images/hmauth.gif: gif animato (due frame)
- Nota Finale #2 - Un falso senso di sicurezza.
Attenzione!!!!
Considerate questa soluzione solo se non avete la possibilita' di utilizzare
canali https, o al massimo utilizzatela come funzionalita' aggiunta ad una
soluzione che prevede l'utilizzo di canali https.
L'utilizzo di questa soluzione e' comunque un valore aggiunto al vostro codice,
non vi fate quindi prendere da un falso senso di sicurezzae non pensate che
HMAuth sia la soluzione finale ai problemi di sniffing delle password su internet!
- Nota Finale #3 - Licenza e utilizzo:
Questo programma e' rilasciato in licenza GPL 2.0 (http://www.gnu.org/copyleft/gpl.html),
anche perche' non e' tutta farina del mio sacco...
D'altra parte, se non sapete a chi rivolgervi per integrare HMAuth nel vostro sito, scrivete
a stefano.dipaola@wisec.it, per una eventuale consulenza professionale.
Wisec - Un'Idea sviluppata e mantenuta da...
Wisec è scritto e mantenuto da
Stefano Di Paola.
Wisec usa standard aperti, inclusi XHTML, PHP e CSS2.