Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
DEEBOT T90 PRO OMNI abbina un sistema di aspirazione basato su tecnologia BLAST ad un rullo di lavaggio dei pavimenti dalla larghezza elevata, capace di trattare al meglio le superfici di casa minimizzando i tempi di lavoro. Un robot completo che riesce anche ad essere sottile e garantire automazione ed efficienza nelle operazioni di pulizia di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2012, 16:17   #1
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
[Web Application] No SSL no party?

Ho un... coso fatto per girare in locale e sto pensando se portarlo sul web - così che uno possa usare il coso ad esempio da un internet-point.

Le comunicazioni tra server e client sono protette dalla classica password. Il protocollo di comunicazione client-server è classico:

-il client manda il nome utente in chiaro e il messaggio cifrato con una password
-il server piglia dal suo database la password associata al nome utente, decifra il messaggio, crea la risposta, la cifra con la password e la spedisce al client
-il client riceve il messaggio cifrato, lo decifra con la sua password e ottiene la risposta.

Funziona finchè qualcuno non estorce la password all'utente.

Il problema è l'autenticazione: come faccio io pippo a sapere che sto parlando con il coso?

Vale a dire, prima di dare duemila dollari a verisign per un certificato ssl che poi so già che per installarlo sul server dovrò piangere in bustrofedico, non c'è una procedura alternativa?

Detto altrimenti, COSOWEB2000 può evitare che Tony Famoafidasse vada a scrivere la sua password sul front-end di www.physing.com anziche su quello di www.cosoweb2000.com?

Ho un paio di mezze idee che mi circolano in testa. Una è quasi allo stadio di tre quarti di idea:

l'utente invia un messaggio al server, il server risponde con una parola chiave nota solo all'utente e al server, l'utente umano verifica che la parola chiave corrisponda a quella che sa: se sì allora il pannello di login che vedo mi è stato inviato dal server e posso scriverci dentro la mia password, sapendo che non sarà inviata. Altrimenti quel campo password che vedo molto probabilmente invierà la mia password alle seichelles.

Lo chiedo anche perchè a me questa necessità di dipendere da un'autorità terza per determinare l'identità di uno dei due web-dialoganti sembra un controsenso (e chi mi dice che l'autorità terza sia veramente terza?).

Ringrazio in trepidante attesa.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 16:32   #2
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Ciao!
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Ho un paio di mezze idee che mi circolano in testa. Una è quasi allo stadio di tre quarti di idea:

l'utente invia un messaggio al server, il server risponde con una parola chiave nota solo all'utente e al server, l'utente umano verifica che la parola chiave corrisponda a quella che sa: se sì allora il pannello di login che vedo mi è stato inviato dal server e posso scriverci dentro la mia password, sapendo che non sarà inviata. Altrimenti quel campo password che vedo molto probabilmente invierà la mia password alle seichelles.
Se ho ben capito, hai solo spostato il problema. Se parliamo di sicurezza, un eventuale attaccante potrebbe sniffare questa 'parola d'ordine' e spacciarsi comunque per il server!
Se partiamo dal presupposto che client e server hanno una password condivisa puoi basare l'autenticazione su una sfida simmetrica cioè per esempio:
1) Server manda una sfida al client (un numero random utilizzato SOLO una volta);
2) Il client concatena la sfida ricevuta con la password condivisa e calcola l'hash di tutto. Invia il risultato al server;
3) Il server esegue lo stesso calcolo e lo confronta con quanto ricevuto. Se uguale autentica l'utente altrimenti no;
4) Si ripete la procedura anche per autenticare il server con un'altra sfida simmetrica da parte del client contro il server.
In questo modo la conoscenza della password viene dimostrata indirettamente senza mai trasmetterla in rete quindi le parti si possono fidare. Rimangono due problemi:
- come viene concordata la password comune (se viene mandata in chiaro anche solo la prima volta non abbiamo concluso nulla);
- se male implementato, questo metodo è passibile di attacco man in the middle.
Non so se ho centrato l'argomento...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 17:14   #3
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Le comunicazioni sono cifrate, il protocollo è lo stesso di un key pair dove il nome utente è la parte pubblica.

Il problema è l'applicazione lato client. L'utente apre la pagina di login ma non è il mio login, è un physing di Sniffone84.

Non può scrivere la sua password in quella pagina perchè come clicca "invia" anzichè usare la password per cifrare la comunicazione Sniffone84 all'invio ci mette un bel "mandamela per e-mail".

SSL garantisce l'autenticità della pagina di login se l'utente va a guardare il certificato (altrimenti può benissimo essere una pagina di Sniffone84 distribuita tramite https, con un certificato validissimo che però non è il mio).

E senza SSL?.

E' vero però che il problema è spostato nel protocollo all'amatriciana perchè quando il server invia la sua password non può farlo in chiaro e se non lo fa in chiaro per decifrarlo l'utente deve mettere la sua password da qualche parte, non ha modo di distinguere la mia pagina da quella di Sniffone e quindi sono fregato.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 17:59   #4
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
SSL garantisce l'autenticità della pagina di login se l'utente va a guardare il certificato (altrimenti può benissimo essere una pagina di Sniffone84 distribuita tramite https, con un certificato validissimo che però non è il mio).

E senza SSL?.
Bhè però l'attaccante non avrà mai un certificato per il dominio www.cosoweb2000.com (o meglio la chiave privata associata) quindi se gli utenti guardano la URL si rendono conto che è il server sbagliato (sebbene abbia un certificato valido). Qualcuno che ci casca probabilmente ci sarà ma basterebbe guardare la URL...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield

Ultima modifica di Mettiu_ : 25-02-2012 alle 18:01.
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 19:31   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Allora sono a cavallo.

Se l'url non può che apparire legittimo - cioè se necessariamente un physer deve usare un url diverso, ancorchè simile - allora l'identità del server è accertabile dall'utente in virtù del suo indirizzo web.

Dunque SSL è superfluo ergo c'è qualcosa che non torna.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 19:49   #6
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Dunque SSL è superfluo ergo c'è qualcosa che non torna.
No che non è superfluo... Se un server usa un certificato X.509 su TLS l'identità che è riportata sulla barra degli indirizzi è garantita! Se non usassi TLS con certificati pubblici, chiunque potrebbe avvelenare la cache di un DNS server e farti credere di essere su www.cosoweb200.com (quindi nella barra vedresti l'URL corretto pur essendo sul server dell'attaccante). Con TLS questo non è possibile... Ovviamente se l'utente riceve una mail di fishing e clicca sul link www.tirubolapass.com e mette la pass fine della sicurezza, non penso si possa fare niente...
Spero di non aver detto qualche fesseria...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 20:31   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Sono andato a guardare un po' di "DNS spoofing" e sono caduto da cavallo.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2012, 23:29   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Di bene in meglio. Ho appena scoperto che si può far vedere un url e caricare tutt'altro. Poi ho letto di un tipo di man in the middle chiamato "man in the browser" che buonanotte... bella la sicurezza delle web application.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 11:51   #9
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
ma non puoi usare un certificato non necessariamente verificato da verisign & co?

Ultima modifica di SerMagnus : 26-02-2012 alle 11:57.
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 12:58   #10
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Quote:
Originariamente inviato da SerMagnus Guarda i messaggi
ma non puoi usare un certificato non necessariamente verificato da verisign & co?
No perchè i browser si fidano solo di certificati che fanno parte della catena di certificazione di qualche root CA (tipo Verisign, ecc ecc...) quindi se non hai un certificato rilasciato da loro ti ritrovi il classico errore di certificato scaduto e/o non fidato...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 14:47   #11
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
lo so, però dipende anche dal tipo di utilizzo, se è per uso interno puoi installare il certificato a mano sulle macchine e risolvi il problema
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 15:14   #12
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Ho un... coso fatto per girare in locale e sto pensando se portarlo sul web - così che uno possa usare il coso ad esempio da un internet-point.
Dubito abbia voglia di portarsi appresso il certificato e installarlo su una macchina di un internet-point che magari userà solo 5 minuti...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 16:50   #13
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Per come l'ho capita io il problema dell'autocertificazione è che la provenienza del certificato non è controllabile dal client - perchè l'identità del terzo confermante non è presente tra le CA installate nel browser. Siccome non c'è può essere chiunque, nel senso che io potrei anche dargli il link per installare il certificato del terzo ma a quel punto il man-in-the-middle darebbe il suo.

Che bolle, dovrò prendere un certificato. Come dal notaio: lei è lei, fanno mille euro. Azz... che bel lavorino che si è trovato.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 17:07   #14
Dolcezeus
Member
 
Iscritto dal: Jul 2008
Messaggi: 43
Salve... sono completamente daccordo con Mettiu per il phinshing non esistono soluzioni bisogna solo fare training degli utenti.. per quanto riguarda la sicurezza della tua web app l'unica soluzione sicura e versatile è usare TLS e comprarsi un certificato X.509..
lato browser non è possibile cifrare nulla direttamente usando un form comune.. quindi o TLS+certificato o no party
Dolcezeus è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 17:18   #15
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
oppure con javascript potresti inviare direttamente degli hash md5 di user e pass dal client. il punto è capire poi cosa succede con js disabilitato
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 18:13   #16
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Ci sono un tot di librerie per la cifratura lato client-browser - quella che uso adesso è sjcl. Il punto non è la cifratura ma l'autenticazione, è quella che mi frega.

L'applicazione sarebbe integralmente javascript: non è previsto che l'utente lo disabiliti.

Autenticazione del server: quella del client non è un problema.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 18:19   #17
Dolcezeus
Member
 
Iscritto dal: Jul 2008
Messaggi: 43
anche se le info di autenticazione vengono inviate cifrate non sarai mai protetto da:
phishing
sniffing
no-replay
la cosa importante da capire è che quando si parla di sicurezza non bisogna inventarsi nulla.
Dolcezeus è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 18:23   #18
Dolcezeus
Member
 
Iscritto dal: Jul 2008
Messaggi: 43
quando avrai finito potresti postare il link.. che vorrei divertirmi?
Dolcezeus è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 19:23   #19
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Uno può sniffare quanto vuole ma di quel che sniffa vede solo il nome utente. Il resto è un pacchetto di dati cifrati: se non azzecca la password può solo rispedire un vecchio messaggio ma sarebbe rifiutato - il protocollo dei messaggi include ovviamente la vecchiaia.

Non c'è bisogno di avere un programma da testare, basta il protocollo. Questa è una simulazione dei passaggi:

Codice:
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="sjcl.js"></script>
        <script type="text/javascript">
            function dologin() {
                var username = document.getElementById("username").value
                var userpass = document.getElementById("userpass").value
                var loginMessage = createLoginMessage()
                var cryptedMessage = sjcl.encrypt(userpass, loginMessage)
                var messageSentToServer = username + "," + cryptedMessage;
                serverProcess(messageSentToServer);
            }
            
            function createLoginMessage() {
                return "login request"
            }
            function serverProcess(message) {
                var userName = getUserNameFromClientMessage(message)
                var body = getCryptedBodyFromClientMessage(message)
                var password = readUserPasswordFromDatabase(userName);
                var cleartext = sjcl.decrypt(password, body);
                console.log("Server gets: " + cleartext);
            }
            function getUserNameFromClientMessage(message) {
                var i = message.indexOf(",");
                return message.substring(0, i);
            }
            function getCryptedBodyFromClientMessage(message) {
                var i = message.indexOf(",");
                return message.substring(i + 1, message.length);
            }
            function readUserPasswordFromDatabase(userName) {
                return "pippo"
            }
        </script>
    </head>
    <body>
        <div>
            <table border="0" cellpadding="4">
                <tbody>
                    <tr>
                        <td>Nome utente:</td>
                        <td><input id="username" type="text" size="20"></input></td>
                    </tr>
                    <tr>
                        <td>Password</td>
                        <td><input id="userpass" type="password" size="20"></input></td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <input type="button" value="Invia" onclick="dologin()"></input>
                        </td>
                    </tr>
                </tbody>
            </table>

        </div>
    </body>
</html>
La libreria sjcl si trova qui:

http://crypto.stanford.edu/sjcl/

L'unico buco che vedo è il programma stesso, cioè la sua autenticità, che ssl risolverebbe.

Perchè se è vero che non bisogna inventarsi nulla (e non è vero), è anche vero che bisogna sapere il motivo per cui si usa quel che è già stato inventato: non è che io mi metta ad usare SSL perchè ciccio45 mi ha detto che è sicuro. Lo uso perchè so che risolve uno specifico problema che la logica mi dice che ho.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2012, 20:59   #20
Dolcezeus
Member
 
Iscritto dal: Jul 2008
Messaggi: 43
capisco.. e potrei sapere come identifichi i login e ti proteggi da replay?
Cmq se trovi la soluzione al phishing ti consiglio di scrivere un RFP e presentarlo all'IETF (non scherzo.. un italiano che elimina una piaga così grande al giorno d'oggi in rete)
Dolcezeus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Gli utenti Intel possono dire addio all'...
NVIDIA: raggiungeremo almeno 1 triliardo...
Lenovo presenta workstation e server con...
Nuova BMW i3: la Serie 3 elettrica debut...
NVIDIA torna in Cina: stretto un accordo...
Vibe coding nel mirino di Apple: ecco le...
Smart TV QLED 50'' a un super prezzo: 4K...
Horizon Worlds lascia i visori Quest: Me...
Lexar compie 30 anni e cambia le regole ...
Questo SSD fornisce memoria aggiuntiva a...
PlayStation Portal si aggiorna: arriva l...
Akamai, le API nel mirino dei cyber atta...
Spider-Man: Brand New Day, finalmente on...
La serie TV di Hitman è ufficialmente fe...
"Grazie e arrivederci": Sam Al...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v