| |
|
| |
 |
Programming |
 |
 |
 |
| |
 |
Networking |
 |
 |
 |
| |
 |
Design
Style |
|
|
| |
*
you are here |
| |
the largest repository of Open Source code and applications
available on the Internet. SourceForge.net provides free services
to Open Source developers.
|
|
| |
freshmeat maintains the Web's largest index of Unix and cross-platform
software, themes and related "eye-candy", and Palm
OS software. Thousands of applications, which are preferably
released under an open source license, are meticulously cataloged
in the freshmeat database.
|
|
| |
The CERT® is a center of Internet security expertise,
located at the Software Engineering Institute, a federally
funded research and development center.
|
|
| |
The OpenBSD project produces a FREE, multi-platform 4.4BSD-based UNIX-like operating system |
|
|
|
|
![]() |
print
document |
![]() |
download
PDF |
|
| Flash
& Php – Rendere sicure le autenticazioni. |
 |
| Parte
VII |
| Lo
Script in PHP |
Solitamente
quando si gestisce un archivio utenti, lo si fa tramite database,
in alcuni casi, quando si tratta di pochi dati, si potrebbe
usare un file di testo. In questo esempio, useremo un array,
che non è di sicuro la soluzione ottimale, ma ci consentirà
di arrivare prima al nocciolo della questione senza dover
affrontare le problematiche sul trattamento dei files in modo
sicuro o sulla sicurezza dei dbms, che per essere trattate
con accortezza allungherebbero inevitabilmente questo documento
e potrebbero rendere più gravosa la comprensione dello
stesso. In ogni caso, passare da un array ad un file o ad
un database non è molto complicato e spero possiate
leggerlo in una prossima revisione.
Utilizzeremo due tipi di codifica, MD5 e 3Des, il primo lo
utilizzeremo per criptare le password, in quanto essendo un
algoritmo ‘one-way’ garantisce la massima sicurezza
in caso di furto del nostro script, l’hacker non potrebbe
decriptare le password contenute in esso, poiché come
abbiamo visto questo algoritmo non consente in nessun caso
la decifratura del messaggio originale, nemmeno attraverso
una chiave, mentre utilizzeremo il secondo, 3Des, per la codifica/decodifica
delle informazioni, non possiamo utilizzare MD5 poiché
in questo caso, dobbiamo aver la possibilità di decodificare
le informazioni per poi rispedirle al client. Essendo Triple-Des
un algoritmo a chiave privata, dovremo usare una parola appunto
come chiave, e per evitare di utilizzare un valore in chiaro,
useremo la stessa password dell’utente, per cifrare
l’informazione.
Qualcuno si starà chiedendo, come sia possibile verificare
la correttezza delle password inserite se quelle in archivio
sono criptate e non è mai possibile decriptarle? Infatti.
Il confronto non avverrà tra le password in chiaro,
ma tra quelle criptate, e cioè, prima cripteremo quelle
inserite dall’utente, e poi le confronteremo con quelle
in archivio, praticamente lo script non confronterà
Topo = Topo ma 090290932009 = 090290932009 il risultato sarà
lo stesso, ma eviteremo di trattare valori in chiaro.
Passiamo ora alla spiegazione dello script allegato con questo
documento (login.php):
//
// Script
//
Per dirlo in parole povere questo è quello che fa lo
script:
Riceve i valori dal client
Cripta la password ricevuta con MD5
La confronta con quelle già criptate con MD5 nell’array
Se le password sono uguali
Usa la password ricevuta come chiave per decriptare l’informazione con 3Des
Invia l’informazione decriptata
Se le password non sono uguali
Risponde al client con un errore
Fine
Se guardate con attenzione lo script noterete che non vi è
nessuna informazione in chiaro, e quindi, anche venendone
in possesso, un cracker non potrebbe utilizzarlo, in teoria
potreste anche distribuire voi stessi lo script a dei vostri
affiliati senza correre il rischio che questi possano accedere
alle informazioni (se non tramite fortunati brute-force).
Gli esempi di utilizzo sono molteplici e sono limitati soltanto
dalla vostra fantasia, fatto sta che siamo riusciti a garantire
una maggiore sicurezza senza compromettere il servizio. |
| |
 |
| |
| |
![]() |
print
document |
![]() |
download
PDF |
|