Ciao a tutti,
scusate se forse sono stato un pò confuso e non ho spiegato approfonditamente il
mio punto di vista. Cercherò di approfondirlo e spiegarmi meglio.
Il discorso nasce tutto da una serie di esperienze che mi hanno portato a
sviluppare applicazioni "critiche" in vari linguaggi per il web su protocollo
HTTP senza alcun utilizzo di SSL.

Dato che sono stato abituato ad essere paranoico da quando ho iniziato ad
immergermi nella sicurezza, il mio contorto ragionamento mentale e relativo
approcio si basa sul postulato "Se rendi sicura, per quanto sicura sia una
parola abbastanza priva di significato, un'applicazione su protocollo HTTP
allora l'SSL aggiunge un grado di sicurezza UNO alla tua già raggiunta
sicurezza".

Penso che siamo tutti d'accordo che:

GET https://www.sito.it/pagina.do?user=user&password=password
POST https://www.sito.it/pagina.do?user=user&password=password

siano registrate sul log del webserver in questa maniera:

GET https://www.sito.it/pagina.do?user=user&password=password
POST https://www.sito.it/pagina.do

(su Apache, perlomeno, una richiesta GET è accompagnata dalle querystring mentre
una POST visualizza solo la pagina che è stata richiesta dalla POST senza dar
seguito alle querystring).

Usare una GET piuttosto che una POST, quindi, non è solo un mero aspetto
estetico per cui chi sta dietro le mie spalle non vedrà passare sulla barra
degli URL le mie querystring belle visibili, ma anche una questione di livello
di logging delle due richieste (a meno di configurare il catching delle
querystring passate in POST).

Mettendo che il webserver sia configurato per loggare *TUTTO*, un hash della
password con un random seed associato usando SHA-256 (usando Javascript alla
fonte) mi renderebbe relativamente più tranquillo dal punto di vista del
logging a livello webserver.

Immagino anche a degli scenari in cui, io utente medio, non ho la più pallida
idea di cosa voglia dire "Il certificato a qualche problema", premo lo stesso
su OK e trasferisco la mia richiesta ad un qualcosa in grado di intercettare e
reiniziare una richiesta SSL (sullo stampo dei local proxy come Paros o di
estensioni di Firefox come Tamper Data o come spiegato nel whitepaper
http://www.sans.org/reading_room/whitepapers/threats/ssl-man-in-the-middle-attacks_480);
anche qui un hash generato come spiegato sopra mi renderebbe relativamente più
tranquillo.

Ad esempio, mi è capitato di lavorare in realtà in cui server Windows serventi
applicazioni web non fossero hardenizzati perchè tanto Netbios era negato dal
firewall fin quando non arrivò un virus sulla LAN dove erano attestati tutti i
webserver Windows con le conseguenze che immagino intuiate. Per questo che mi
chiedo sempre: perchè applicare solamente un'unica strada quando posso
percorrerne due?

Prendendo un altro esempio indescrivibilmente più grave e calzante, quando
andavo alle superiori, il bus si fermava dalla parte opposta all'ingresso della
mia scuola e quindi dovevi attraversare la strada; c'erano le strisce pedonali,
ma, quando tre ragazzi sono finiti sotto delle auto, hanno pensato bene di
aggiungere anche un semaforo.

Ma magari sono castelli di carte che mi sto costruendo. Scusate se vi ho
annoiato.

--
Alessandro Romani
ICT Security Analyst

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List

Rispondere a