Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Sicurezza Registrazione
venerdì 22 ottobre 2010 - 15.07
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
almax
Profilo
| Junior Member
175
messaggi | Data Invio:
ven 22 ott 2010 - 15:07
Salve
avrei una domanda da fare :
Ho sviluppato un sistema di autenticazione su db access (per esigenza), che in fase di registrazione genera una chiave e crea un hash delle password con sh1 scrivendo su db le due cose. Il tutto in fase di registrazione viene inviata una mail con i dati dell'utente, unico invio con dati in chiaro.
A questo punto so che la password non è più recuperabile nel db, sia per il webmaster che per l 'utente. Mi rendo conto che la cosa sia un pò rigida ma credo più sicura.
In fase di password dimenticata il client fa una richiesta classica dal pannello login, riceve una mail con un link per poterla reimpostare, il link viene costruito ad hoc per quella richiesta in base a quella mail con dei dati non comprensibili. in querystring si porta dei campi criptati per fare delle verifiche e l'utente cambia la password, riceve una mail con la conferma di reset e i dati nuovi.
Secondo voi è un sistema valido o cmq può con facilità essere bucato ?
Grazie
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
ven 22 ott 2010 - 15:14
>Salve
Ciao,
>avrei una domanda da fare :
>Ho sviluppato un sistema di autenticazione su db access (per
>esigenza), che in fase di registrazione genera una chiave e crea
>un hash delle password con sh1 scrivendo su db le due cose.
Vediamo se ho capito... generi la chiave a partire da una password e ci calcoli l'hash sopra?
poi salvi 'chiave generata dalla password' e hash sul db?
>in fase di registrazione viene inviata una mail con i dati
>dell'utente, unico invio con dati in chiaro.
All'utente invii solo i suoi dati?
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
almax
Profilo
| Junior Member
175
messaggi | Data Invio:
ven 22 ott 2010 - 19:33
Si allora inserisco la password e con la password genero una chiave poi prendo la password + la chiave e genero un hash, user su una colonna, chiave seconda colonna, hash terza colonna, non merizzo da nessuna parte in chiaro la password.
In fase di registrazione e conclusa registrazione mando una mail con i dati in chiaro come promemoria per avere sempre a dosposizione i dati .. Nel caso i dati vengano persi o dimenticati, tramite link si richiede la restituzione della pass grazie al campo email .. controllo l'esistenza e sparo il link che manda a resettare la password per farne una nuova, alla conclusione mando i dati in chiaro con nova password ...
Velocemente la cosa funziona così .. Con i dovuti acco5gimenti e controlli ..
Grazie
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
sab 23 ott 2010 - 08:49
>Si allora inserisco la password e con la password genero una
>chiave poi prendo la password + la chiave e genero un hash, user
>su una colonna, chiave seconda colonna, hash terza colonna, non
>merizzo da nessuna parte in chiaro la password.
Qui dobbiamo capire una cosa... la password come viene inviata al generatore di chiave (che presumo risieda su un webserver)? Tramite una pagina web?
>In fase di registrazione e conclusa registrazione mando una mail
>con i dati in chiaro come promemoria per avere sempre a dosposizione
>i dati ..
Qui se passa la password in chiaro credo ci sia un problema...
>Nel caso i dati vengano persi o dimenticati, tramite
>link si richiede la restituzione della pass grazie al campo email
>.. controllo l'esistenza e sparo il link che manda a resettare
>la password per farne una nuova, alla conclusione mando i dati
>in chiaro con nova password ...
come sopra, la password non deve viaggiare da nessuna parte...
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
almax
Profilo
| Junior Member
175
messaggi | Data Invio:
sab 23 ott 2010 - 10:45
Quindi mi dici di non inviare i dati all'utente ? La password si viene inviata da form in post a pagina aspx che genera una chiave poi prende password + chiave e genera un hash e butta tutto nel db ...
Ma se non invio i dati come può l'utente avere un servizio di recupero .. Un invio oramai tutti i siti anche che si rispettino lo fanno, anche questo forum invia i dati per email in chiaro ... So che può essere una falla ma quanto grave ?
Grazie
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
sab 23 ott 2010 - 12:17
Rispondo in base alla filosofia che mi hanno insegnato (mai dare nulla per scontato in ambito di sicurezza)... Devi far riferimento a qualche testo di sicurezza su reti per approfondire poiché ricordo in linea di massima l'idea di funzionamento, non i particolari.
>Quindi mi dici di non inviare i dati all'utente ?
La password sicuramente no.
>la password si viene inviata da form in post a pagina aspx che genera una
>chiave poi prende password + chiave e genera un hash e butta
>tutto nel db ...
Se passi i dati 'in chiaro' dalla pagina html alla pagina aspx tramite POST o GET non hai nessuna sicurezza... pertanto sei già vulnerabile (vulnerabilissimo!!!) in questo punto.
Se li passi tramite https aggiungi un buon livello di 'sicurezza', simile a quello dei siti di cui parli. (legata comunque agli algoritmi che poi farai usare tra webserver e webbrowser) Tuttavia, ti serve un certificato rilasciato da una autorità garante.
Questo livello di sicurezza lo devi aggiungere obnligatoriamente
se vuoi un sistema 'abbastanza sicuro'.
>Ma se non invio i dati come può l'utente avere un servizio di
>recupero..
All'utente invierai solo username + e-mail + tutti i dati di registrazione omettendo PASSWORD, CHIAVE E HASH. (sono tre valori correlati tra di loro ed è pericoloso mandarli insieme...)
In genere quello che si fa è <<fidarsi>> che l'utente abbia accesso privilegiato alla propria e-mail quindi ti basta salvare la mail alla quale inviare il link di reimpostazione e far funzionare tutto sempre tramite HTTPS.
L'utente utilizzerà un modulo per chiedere la reimpostazione e in tale modulo inserirà o la propria e-mail o il proprio username.
Salvare la chiave su DB mi dà l'idea di volerla cifrare per nasconderla a occhi indiscreti. L'uso della hash non mi è chiaro.
> Un invio oramai tutti i siti anche che si rispettino
>lo fanno, anche questo forum invia i dati per email in chiaro
Chiaramente il sistema è sicuro se l'e-mail non è stata violata. In caso contrario tutto il castello cade.
(dotnethell è un forum non una banca... se invia la password in chiaro tramite e-mail non è molto grave!)
>... So che può essere una falla ma quanto grave ?
>
Dipende da dove lasci il fianco libero per essere attaccato. I dati sensibili devono viaggiare sempre su connessione protetta.
>Grazie
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
almax
Profilo
| Junior Member
175
messaggi | Data Invio:
sab 23 ott 2010 - 19:55
Intanto grazie ..
Si in effetti il tutto cambia in base al profilo di sicurezza ci sia bisogno ..
Al momento il mio intento è quello di creare un sistema abbastanza sicuro per un e-commerce e tra me e me mi chiedevo se questo lo fosse ...
allora la procedura è così .. La chiave e randomica quindi non ha nessi logici se non il random di un tot di caratteri, appena creata una chiave prendo chiave più password e creo un hash dell'addizione .. il tutto perchè da un hash non è possibile risalire alla password, è logico che in fase di login ho bisogno di tutti e due i dati per fare una verifica di autenticazione .. E' una sorta di maschera per la password ... Se apri il db non c'è modo di risalire, se conosci la password entri come entresresti ovunque ..
Per il discorso della mail gli unici dati che viaggiano sono user, pass e dati anagrafici la prima volta in fase di reset user e pass nuova ... E' logico che in un contesco bancario il tutto sarebbe fatto in https, ma in un e-commerce credo che possa andare, che dici
?
Grazie ancora
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
mer 27 ott 2010 - 20:31
>allora la procedura è così .. La chiave e randomica quindi non
>ha nessi logici se non il random di un tot di caratteri,
> appena
>creata una chiave prendo chiave più password e creo un hash dell'addizione
Scusami ma non ho capito bene come procedi...
fai Hash([CHIAVE XOR PASSWORD]) ?
>.. il tutto perchè da un hash non è possibile risalire alla password.
>è logico che in fase di login ho bisogno di tutti e due i dati
>per fare una verifica di autenticazione ..
Username e Password scritti dal cliente e inviati al server (in chiaro se non c'è https) sono soggette a violazione poiché se intercettati scavalcano la sicurezza che tu metti nel database...
>E' una sorta di maschera
>per la password ... Se apri il db non c'è modo di risalire, se
>conosci la password entri come entresresti ovunque ..
Si, proteggi da occhi indiscreti che accedono direttamente alla tabella sul DB ma il problema lo hai sul canale Browser->Server se non è cifrato...
>Per il discorso della mail gli unici dati che viaggiano sono
>user, pass e dati anagrafici la prima volta in fase di reset
>user e pass nuova ...
Qui credo hai un problema.
Se noti la maggior parte dei siti sicuri non invia mai la password (vecchia o nuova che sia) tramite e-mail. In realtà la password non viaggia mai in chiaro. (solo cifrata quando ti registri e quando la reimposti)
>E' logico che in un contesco bancario il
>tutto sarebbe fatto in https, ma in un e-commerce credo che possa
>andare, che dici
>?
Se vuoi sicurezza e non cifri i dati sul canale di comunicazione hai una sola alternativa... implementare qualche algoritmo di cifratura in Javascript però la cosa non mi sembra delle più semplici quindi posso consigliarti di scaricarti un certificato di test da verisign e implementare https
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !