Quanto è sicuro proteggere i contenuti sensibili tramite URL con hash MD5 e nessun'altra autorizzazione?

4

Supponiamo di avere un sito web che utilizza l'hash MD5 in URL come questo:

http://somewebsite.com/XXX/

dove XXX è hash MD5.

Il contenuto di questo sito Web potrebbe contenere dati sensibili come i dettagli della transazione con dati personali.

Non ci sono altre autorizzazioni per questo sito web, quindi se hai un URL puoi accedervi.

Quanto è sicuro? Voglio dire, se nessuno condividerà l'URL con nessuno, allora posso presumere che nessuno possa accedervi?

Quanto tempo impiegava il web crawler per eseguire la scansione di tutte le combinazioni di tale URL?

Chiedo perché sto usando qualche negozio web, memorizzo i dettagli delle transazioni con dati personali in questo modo, sto dicendo che non è sicuro e qualcuno può visualizzare i dati sensibili dei propri clienti, ma non ne sono convinti. Costruire il web crawler è semplice per me, so come farlo, ma non so quanto tempo trascinerà tra tutte le combinazioni, forse al negozio hanno ragione? Non si tratta del mio sito web, sono l'utente finale di quel negozio e devo convincerli che si sbagliano.

    
posta BlueMark 17.09.2014 - 23:58
fonte

2 risposte

6

Ci sono un paio di problemi da considerare con gli URL "segreti".

In primo luogo, offrono un diverso livello di sicurezza contro l'individuazione quando vengono pubblicati su HTTP o HTTPS. Oltre HTTPS, il percorso è protetto. Su HTTP, non lo è. Ciò significa che quando si utilizza HTTP, chiunque nel percorso del traffico (persone che sniffano traffico wireless, server proxy, server di memorizzazione nella cache) ha accesso al percorso e può quindi scoprirlo. Su HTTPS, viene esposto solo il nome host, il percorso è protetto dagli intercettatori.

In secondo luogo, possono essere salvati in un segnalibro o salvati in vari modi. Devi considerare se l'uso improprio di URL con segnalibro rappresenta una minaccia significativa per la tua applicazione.

Terzo, non c'è modo di far scadere l'accesso a un URL valido. Se si dispone di un sistema di autenticazione, è possibile applicare timeout di sessione di qualche tipo. Se non lo fai, finché l'URL è valido, chiunque lo abbia può accedervi.

Il quarto e più specifico di questa specifica applicazione è la domanda di Izam nei commenti. Quale viene sottoposto a hash per creare gli URL? Se si tratta di qualcosa come un ID di transazione basato su un numero incrementale o qualcosa di diverso per cui un algoritmo può facilmente generare input e hash candidati, no, non sarebbe sicuramente sicuro perché un utente malintenzionato potrebbe generare un set di hash potenzialmente validi e provarli tutti. Potrebbero non funzionare tutti, ma se alcuni di loro lo fanno, lo schema è rotto. In particolare se è qualcosa come un intero incrementale, perché se scoprono input validi, tutti gli URL validi possono essere facilmente determinati ed esposti.

Quindi, gli URL segreti possono essere uno strumento valido in alcuni casi. Con informazioni personali in gioco, particolarmente informazioni finanziarie, vorrei non fare affidamento su questo meccanismo. È troppo debole.

    
risposta data 18.09.2014 - 00:17
fonte
0

Non è necessario eseguire la scansione di TUTTE le combinazioni: è sufficiente trovare UNO a cui non si è autorizzati ad accedere. Ciò dimostra che il metodo è rotto. Poiché si tratta di un hash MD5, è probabile che abbia anche la stessa lunghezza ogni volta, il che rende più facile restringere un link valido.

Credo che un crawler impiegherebbe meno di 5 righe di codice e meno di un'ora per trovare un collegamento a cui non si dovrebbe avere accesso.

    
risposta data 18.09.2014 - 00:56
fonte

Leggi altre domande sui tag