È una riscrittura forzata da http a https secure? Cosa aggiunge SSLRequireSSL?

6

Ho letto in contraddizione i consigli su come forzare le connessioni https nel modo seguente:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

A me sembra che questo non permetterebbe a nessuno di passare una richiesta http. C'è qualche svantaggio in questo approccio?

Che sicurezza aggiunge

SSLRequireSSL

alla <directory /> add aggiungere? So che costringerà Apache a rimbalzare le richieste non-https ma riusciranno comunque a passare comunque?

O in altre parole: qual è il modo migliore di implementare un sito https, se non questo?

Non abbiamo un certificato EV, né abbiamo una grande base di utenti. Quello che abbiamo è una serie di siti di sondaggi in cui vogliamo rendere http impossibile.

    
posta markus-tharkun 19.10.2012 - 00:48
fonte

3 risposte

7

What is the best way of implementing a https-only site, if not this?

Utilizza un server virtuale separato per l'HTTP, non collegato a nessuna delle risorse del sito HTTPS "reale".

Per assicurarti che i browser moderni si rifiutino di utilizzare semplicemente HTTP per il tuo sito in futuro, utilizza l'intestazione Strict Transport Security .

ad es.

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    Header set Strict-Transport-Security "max-age=8640000;includeSubdomains"
    ...site settings...
</VirtualHost>

What does SSLRequireSSL add?

Può essere utile proteggere particolari risorse se ci si trova in un virtualhost con SSLEngine optional , o in una parte di configurazione inclusa condivisa da un host virtuale HTTP e HTTPS.

    
risposta data 19.10.2012 - 13:41
fonte
4

Come dicevo in questa risposta su Webmasters.SE, l'unica soluzione generale a questo problema è dai ai tuoi utenti solo l'indirizzo https:// e assicurati che si aspetti di utilizzarlo solo. In definitiva, è responsabilità dell'utente verificare che stiano utilizzando SSL / TLS, come previsto.

Un modo per provare a imporla automaticamente è incoraggiare gli utenti a utilizzare un browser che supporti Sicurezza del trasporto rigoroso HTTP (ancora, fino a quando tutti i browser lo supportano, ciò richiede la consapevolezza dell'utente).

Altre forme di aggiornamenti forzati dal server (inclusa la chiusura della normale porta HTTP) saranno vulnerabili agli attacchi MITM. Detto questo:

  • I reindirizzamenti forzati da http:// a https:// proteggeranno l'utente dagli attacchi passivi di intercettazione. Può anche aiutare a sensibilizzare il problema all'utente (ad esempio se si connettono da una rete di cui possono fidarsi, ci si abitua e potrebbe trovare strano non vedere https:// su altre reti). Per questi motivi, vale la pena farlo comunque; stai almeno mitigando il rischio.
  • Sarebbe ideale per ottenere più siti nell'elenco HSTS precaricato , quindi come non essere vulnerabile, anche alla prima connessione. Tuttavia, quando si utilizza HSTS, una connessione su una rete fidata una volta con quella configurazione del browser dovrebbe essere sufficiente per dire ai browser di continuare a utilizzare HTTPS per quel sito.

Una volta fatto, devi ancora dire agli utenti di non ignorare gli avvisi sui certificati.

(È sempre meglio combinare tutto questo con i cookie sicuri, se vengono utilizzati i cookie.)

    
risposta data 19.10.2012 - 17:02
fonte
3

Il reindirizzamento http non è sicuro quanto negare semplicemente l'accesso tramite http.

Le persone che utilizzano l'indirizzo HTTP saranno comunque vulnerabili a un MITM attivo. Posso intercettare il reindirizzamento su HTTPS e modificarlo. Potrei tenerli su HTTP, o potrei reindirizzare al mio sito HTTPS (per abbinare il "lucchetto" che mostri quando non sto intercettando). Posso usare un nome di dominio che assomiglia molto al tuo o ad un'alternativa plausibile.

Certo, il mio attacco sarebbe più facile per gli utenti individuare se si utilizza un certificato EV. Ma se valesse la pena pagare per un certificato EV, probabilmente hai requisiti di sicurezza elevati e una vasta base di utenti, quindi dovresti ancora disabilitare l'accesso HTTP per fornire una certa difesa in profondità.

    
risposta data 19.10.2012 - 11:32
fonte

Leggi altre domande sui tag