Posso utilizzare la porta 443 senza SSL?

5

Se sono in esecuzione un server Web sulla porta 80 e ho anche la porta 443 (HTTPS) attivata ma non viene applicata. Non ho auto-firmato o firmato con una CA appropriata (ad esempio, non utilizzo SSL per il mio sito), se la porta 443 attivata diventa una minaccia per il mio server web? Ad esempio, un hacker potrebbe hackerare la porta 443 e accedere al mio sito Web alla porta 80?

    
posta Pang Ser Lark 28.10.2015 - 08:34
fonte

4 risposte

12

Quindi stai utilizzando la porta 443 su un server web utilizzando un semplice HTTP (senza TLS / SSL)?

La procedura migliore è chiudere tutte le porte che non vengono utilizzate.

Dipende da dove la web root per la porta 443 è configurata per guardare sul server. Se questa è la stessa posizione del tuo sito web normale, questo potrebbe essere un rischio se ci sono determinati elementi che devono essere protetti tramite la configurazione mancante in questa configurazione del secondo webroot.

Se è configurato per cercare altrove, i file potrebbero essere esposti in modo non intenzionale.

Non è un rischio per la sicurezza dei tuoi utenti perché non vedranno https:// o il lucchetto nella barra degli indirizzi del browser. Vedrebbero semplicemente http://example.com:443/ che fornisce la stessa sicurezza della porta 80 ( http://example.com/ ).

    
risposta data 28.10.2015 - 11:15
fonte
3

L'esecuzione della porta 443 come descritto può essere problematica perché i dati che transitano attraverso di esso verranno crittografati ma non è possibile per un peer assicurarsi che stia comunicando con te e non con qualcun altro ( attacchi man-in-the-middle) il server tenterà di trasmettere in chiaro mentre quasi tutti i client convenzionali si aspetteranno traffico crittografato e (si spera) interromperanno con un errore 'handshake SSL non riuscito'.

Would attacker hack port 443 and come in to my website at port 80?

Devi preoccuparti di tutte le porte aperte come ho commentato di seguito. Non aprire una porta che non ti serve.

Potresti essere interessato a leggere questo: Utilizzo di SSL-port (443) per traffico non SSL, idea sbagliata?

    
risposta data 28.10.2015 - 08:44
fonte
2

È possibile eseguire HTTP su qualsiasi porta (e in modo simile HTTPS su qualsiasi porta). Convenzionalmente, si esegue HTTP sulla porta 80, HTTPS sulla porta 443, poiché l'uso di queste porte ben definite consente agli utenti di non specificare il numero di porta.

Se ti connetti a link farà una richiesta HTTPS alla porta 443. Se provi a connetterti a una porta che non sta eseguendo SSL / TLS con il protocollo HTTPS riceverai un errore di connessione SSL. Puoi vedere questo ad esempio, se provi a connetterti a https://security.stackexchange.com:80 . Questo è ciò che accadrà se si esegue HTTP sulla porta 443 su example.com; qualsiasi utente che si connette a https://example.com riceverà quell'errore.

Al contrario, se provi a connetterti a una porta che esegue HTTPS con il tuo browser che effettua la richiesta tramite il normale vecchio protocollo HTTP, riceverai un messaggio di errore HTTP 400 Bad Request ( The plain HTTP request was sent to HTTPS port ). Puoi vedere un esempio di questo errore andando a: http://www.time.com:443/ . Si noti che l'HSTS complica leggermente le cose; se stai utilizzando HSTS , il tuo browser può passare automaticamente le richieste HTTP a quelle HTTPS per un determinato sito. (Questo è il motivo per cui non vedrai questo errore se proverai ad andare a http://www.facebook.com:443/ e verrebbe reindirizzato a https://www.facebook.com ).

Se vuoi che le richieste di https://example.com funzionino, ma non hai bisogno della sicurezza di SSL, dovresti ottenere un certificato firmato correttamente. Questo può essere fatto gratuitamente con https://letsencrypt.org/ e ci sono molte altre soluzioni a basso costo. Se davvero non vuoi che gli utenti utilizzino HTTPS, puoi quindi riscrivere il reindirizzamento delle regole da HTTPS a HTTP. (Si prega di notare per utilizzare questi reindirizzamenti senza avvisi del browser su un certificato SSL non valido, è necessario un certificato SSL valido).

MODIFICA: è stato rimosso il consiglio per StartSSL in quanto non è più considerato affidabile dai principali browser .

    
risposta data 28.10.2015 - 18:08
fonte
0

Oltre all'aspetto della sicurezza, infrangerete gli standard. Se si avvia un server HTTP sulla porta 443 e si accede tramite un normale browser, si ottiene

gibberish sul lato server:

# python -m http.server 443
Serving HTTP on 0.0.0.0 port 443 ...
127.0.0.1 - - [28/Oct/2015 17:33:53] code 400, message Bad request version ('À+À/\x00\x9eÌ\x14Ì\x13Ì\x15À')
127.0.0.1 - - [28/Oct/2015 17:33:53] "▬♥☺ Ì☺  È♥♥◄mûú£ô↑ß\x99\x9e´q¨è÷ü¿c↔↓<2)ÂTO\x8f^¤:2→   À+À/ \x9e̶Ì‼̧À" 400 -
127.0.0.1 - - [28/Oct/2015 17:34:03] code 400, message Bad request version ('\x8er*Êå¦\x10xÆE\x05úH6X+\x00\x00\x14À')
127.0.0.1 - - [28/Oct/2015 17:34:03] "▬♥☺ \x9d☺  \x99♥☻ü▲Eÿµp=\x9b¹?kàê½↕▲\x8er*Êå¦►xÆE♣úH6X+  ¶À" 400 -
127.0.0.1 - - [28/Oct/2015 17:34:13] code 400, message Bad HTTP/0.9 request type ('\x16\x03\x01\x00\x9d\x01\x00\x00\x99\x03\x01Q¤')
127.0.0.1 - - [28/Oct/2015 17:34:13] "▬♥☺ \x9d☺  \x99♥☺Q¤↔:BÀ/o{XÈ\x8d↑|ÈÖÂ\x91á\x8c↕£ÿdá◄è¹\x8e"}÷  ¶À" 400 -

e errori di protocollo sul lato del browser

    
risposta data 28.10.2015 - 17:41
fonte

Leggi altre domande sui tag