Domanda

Siamo nel processo di spostamento nostra architettura web ad un nuovo ambiente. Sono inclusi decine di siti diversi che vanno dal quasi completamente statico per siti dinamici che richiedono l'autenticazione e con contenuti sensibili. I nostri amministratori di server web hanno (senza alcun input da parte del team di sviluppo) ha deciso di renderlo uno standard nel nuovo ambiente per forza SSL per tutto. Non sono d'accordo con questa decisione e vorrei avere la conoscenza il più possibile quando mi siedo per discuterne. Ecco quello che ho finora:

  • Per ogni sito, un certificato SSL ha un costo diretto. Abbiamo un dev, QA, e l'ambiente prod, e quindi che è tre certificati che sono necessari per ogni sito
  • Per la maggior parte delle pagine, il contenuto non è sicuro e costringendo SSL renderebbe le richieste di pagine richiedono più tempo sul server a causa di cifrare e decifrare
  • Da quello che ho capito, la maggior parte dei browser per Non le pagine nella cache che sono SSL'ed e quindi ancora una volta, le richieste di pagina ci vorrà più tempo
  • I browser più vecchi hanno problemi con i download di file quando sono SSL'ed

Non ho un problema con costringendo SSL quando gli utenti vengano autenticati oppure chiedono dati sensibili. Tuttavia, credo che costringendo SSL per impostazione predefinita su tutti i siti è un po 'troppo.

È stato utile?

Soluzione

SSL possono di inibizione a livello di rete di caching. Ci sono soluzioni a questo, ma può significare che più computer nella stessa rete devono ri-scaricare risorse pagina. Questo può aumentare il carico di rete ad entrambe le estremità. A livello di caching del browser non è un problema nei browser moderni.

SSL complica l'uso dei cosiddetti "domini virtuali". Tradizionalmente in modo da formare una connessione SSL il browser e necessità server per essere al lavoro per lo stesso nome di dominio. Ciò ha reso impossibile ospite più di un certificato SSL su un singolo IP perché il server avrebbe risposto con il certificato errato. Le implementazioni di Server Name Indication (un'estensione del protocollo TLS che utilizza SSL) ha fissato molti dei problemi con questo.

On prestazione pura, la crittografia e l'integrità simmetrica di controllo sui dati tunnel non è molto costoso; se il server non può crittografare e decrittografare alla velocità della rete, allora o si ha proprio in fibra ottica di Dio, o si dovrebbe pensare a sostituzione di quelle i486. Tuttavia, l'avvio di una connessione SSL, noto come "stretta di mano", è un po 'più costoso, e può implicare un collo di bottiglia sui carichi pesanti (quando ci sono centinaia di connessioni al secondo, o più). Fortunatamente, una determinata istanza del browser riutilizzerà gallerie e le sessioni SSL, quindi questo non è un problema se si dispone di solo poche decine di utenti.

Nel complesso, mettendo SSL ovunque appare come un modo per ottenere una "sensazione di caldo fuzzy" sulla sicurezza. Questo non è un bene. Questo di solito significa che concentrandosi sul irrilevante, gli amministratori saranno più propensi a ignorare i problemi di sicurezza attuali. Essi potranno anche rendere il sistema più complesso da mantenere, il che rende più difficile da diagnosticare e correggere i problemi. Si noti che dagli amministratori punto di vista, questo rende il loro lavoro più sicuro, in quanto aumenta il costo di sparare loro e la loro sostituzione.

Altri suggerimenti

In risposta a risposta di Thomas:

  

Per ogni sito, un certificato SSL ha un costo diretto. Abbiamo un dev, QA, e l'ambiente prod, e quindi che è tre certificati che sono necessari per ogni sito

Quasi vero. Non è necessario disporre di ogni singolo dev e qa dietro SSL con, certificati attuali validi. Si - forse - desidera un sito di staging con un certificato valido. Ma al di là del front-end Apache, il tuo back-end non dovrebbe sapere che di lì SSL coinvolto. Non stai testando qualcosa di unico o speciale con l'acquisto di certificati dev.

Inoltre, il costo è nominale. Stai spendendo più soldi per la conversazione che i certificati in realtà costo.

  

Per la maggior parte delle pagine, il contenuto non è sicuro e costringendo SSL renderebbe le richieste di pagine richiedono più tempo sul server a causa di cifrare e decifrare

Un po '. Hai misurato? Si possono trovare che è difficile da misurare perché la variabilità di Internet velocizza briscola il costo di elaborazione SSL.

  

Da quello che ho capito, la maggior parte dei browser per Non le pagine nella cache che sono SSL'ed e quindi ancora una volta, le richieste di pagina ci vorrà più tempo

Anche in questo caso, avete misurato questo?

  

I browser più vecchi hanno problemi con i download di file quando sono SSL'ed

Davvero? Quale specifico "più vecchio del browser" hai intenzione di sostenere che ha questo problema? Se non riesci a trovare uno e state pensando che qualcuno, da qualche parte potrebbe avere questo problema, si può essere overengineering. Controlla i log e vedere che cosa i browser dei vostri clienti effettivamente uso, e quindi determinare se avete un problema.

Sono d'accordo che "SSL ovunque" non è un buon approccio. Penso che è necessario almeno una porta non SSL-80 pagina di "benvenuto". Ma io non sono sicuro che il tuo attuale serie di questioni sono ragioni solide. Penso che è necessario molto più misure per rendere il caso che coinvolge in realtà SSL colpi di costo reale o di prestazioni reali.

A partire dal 2012, siti dovrebbe usare solo SSL se hanno personali (PII) o informazioni commercialmente importante, o se hanno alcun concetto di un account di accesso.

I siti che pubblicano solo a basso valore, a basso la fiducia del pubblico le informazioni di sola lettura sono un po 'discutibile, ma probabilmente potrebbe ancora utilmente servire tutto su HTTPS. Gli aggressori potrebbero cercare di inserire malware o adware, o comandi di reindirizzamento, in HTTP contenuti.

Una politica aziendale di "tutto su SSL, senza una specifica deroga" è ragionevole.

Si dovrebbe anche guardare Distribuzione HTTP Strict Transport Security per fare prima richiesta sicuro che anche l'utente dalla tipizzazione example.com viene inviato tramite HTTPS.

Man-in-the-middle attacchi sono un problema del mondo reale, in particolare su reti WiFi, ma anche a livello di provider e del paese. Se lo fai solo la fase di login su SSL e poi passa un cookie di sessione in chiaro, che cookie di sessione viene rubato. Vedere Firesheep per una dimostrazione chiara.

SSL è in modo sicuro cacheable per utente, sia per la sessione o indefinitamente. Client-end cache del proxy sono ormai rare e ottimizzazione per quel caso non è importante. Quando lo fanno esistono, comunemente ottenere le cose sbagliate e bypassando tramite SSL vale la pena.

SSL buona esecuzione o SPDY può essere veloce: il sovraccarico del server non è elevato e può essere facilmente spostato su una macchina proxy inverso separato. Ci sono CDN SSL.

Non c'è bisogno di acquistare i certificati reali per i siti che sono solo per gli sviluppatori e tester. Il costo dei certificati, nella bassa decine di dollari, è trascurabile anche per i siti non commerciali.

crittografia dei dati attraverso la rete è uno strato utile di difesa in profondità. Ovviamente non è sufficiente di per sé a rendere il servizio sicuro, ma elimina alcuni tipi di problemi e ha un basso costo.

Anche per i dati di sola lettura, non c'è valore nel client sapere che stanno ricevendo il luogo autentico:. Per esempio, se si sta scaricando i binari non si vuole trojan da inserire

le pagine in modo sicuro distintivi che necessitano di essere su SSL da quelli che non lo fanno richiede sforzo sviluppatore che potrebbe quasi certamente essere utilizzato meglio.

Fare standard una camicia di forza per i sistemi diversi, soprattutto senza la consultazione, non è mai buona. Ma dire che i siti dovrebbero essere tutti su SSL se non c'è un motivo particolare per farlo tuttavia in un caso ha senso per me. Buoni esempi di caso per caso delle eccezioni, in cui si dovrebbe comunque offrire SSL, ma non forzare un reindirizzamento:

  • il sito è al servizio download di grandi dimensioni binarie (distribuzioni di musica / video / software) in modo da consentire più caching e download più veloci è importante (mostra dati)
  • i clienti sono arcaiche IE o clienti incorporati che proprio non può fare SSL in modo adeguato (ancora una volta, mostrano in realtà è un problema)
  • Ci sono molte risorse sul sito e si desidera robot per indicizzarlo su HTTPS

Se si utilizza SSL ovunque si utilizzerà un paio di risorse della macchina, in modo che possono essere ottimizzate se diventano importanti. Se non si utilizza SSL, né spendere più risorse per gli sviluppatori di prendere in considerazione la sicurezza caso per caso, o addirittura probabile che sarà più inclini a furto di account.

Adam Langley di Google ha scritto nel 2010 :

  

Se c'è un punto che vogliamo comunicare al mondo, è che SSL / TLS non è computazionalmente costoso più. Dieci anni fa sarebbe stato vero, ma non è solo il caso più. Anche tu puoi permettere di abilitare HTTPS per gli utenti.

     

Nel gennaio di quest'anno (2010), Gmail commutato tramite HTTPS per tutto ciò che per impostazione predefinita. In precedenza era statointrodotto come opzione, ma ora tutti i nostri utenti utilizzano HTTPS per garantire la loro e-mail tra i loro browser e Google, per tutto il tempo. Per fare questo abbiamo dovuto distribuire nessun macchine aggiuntive e senza hardware speciale. Sulle nostre macchine produzione frontend, rappresenta SSL / TLS meno dell'1% del carico CPU, inferiori a 10 KB di memoria per connessione e meno del 2% di overhead di rete. Molte persone credono che SSL prende un sacco di tempo di CPU e speriamo i numeri di cui sopra (pubblico per la prima volta) aiuterà a dissipare questo.

Ho visto alcuni fantastiche le risposte a questa domanda, ma dopo un paio di giorni ho visto che ci sono un paio di cose mancanti . Pertanto, ci sono un paio di cose che voglio citare:

Perché utilizzare SSL su tutto

  • Sicurezza - Se solo poche pagine sono SSL crittografato, è più facile "annusare" fuori le pagine che contengono dati sensibili. Ora SSL è abbastanza sicuro maledetto, quindi questo non è qualcosa di cui preoccuparsi, ma nel caso in cui la chiave privata viene compromessa, è buona norma avere quel ulteriore livello di sicurezza in modo che è più difficile per i cattivi per arrivare al roba succosa.
  • Affidabilità - Ci sono persone che sostengono che quando si visita un sito che ha un certificato di verificata, è più facile per la fiducia. Dal momento che un certificato verificato costa denaro, è più facile fidarsi di un sito sapendo che il proprietario ha investito in un simbolo di fiducia.
  • Hassle - ammantando tutto sotto SSL è solo molto più facile. Tutto quello che dovete fare è tagliare fuori la http: all'inizio di ogni collegamento delle risorse e si sta bene.
  • Configurazione SEO - Non sarà necessario preoccuparsi affatto con la configurazione di SEO. Ho sentito dire che i motori di ricerca indice http:// e https:// come voci separate, quindi per coerenza (sia nel comportamento SEO e pagina), che ricoprono SSL su tutto e solo la creazione di un redirect 301 sembra una soluzione semplice piacevole.
  • Coerenza - Avrai un sito web molto più consistente se tutto solo https://. Un sacco di quadri rompono quando si tenta di fare un ibrido di SSL e non SSL. In cima a questo, plugin e codice di URL-dipendenti saranno davvero media se si tenta di rimbalzare avanti e indietro tra http e https.
  • Che Fuzzy sensazione di sicurezza -. Devi ammettere, quel piccolo barra verde in alto a sinistra che dice "dominio verificato" solo è una dannata buona sensazione

Why Not SSL Tutto

  • Velocità - SSL è più lento. Non di molto, naturalmente, e la maggior parte del tempo il costo è trascurabile. E 'un fatto inevitabile, tuttavia, che SSL sarà sempre più lento.
  • Browser Compatibility - Questo è probabilmente trascurabile, ma se si vuole il supporto davvero i vecchi browser che non lo fanno la cache su SSL, dovrete attaccare con port 80.
  • Plugin - Un gruppo di plugin non funzionano correttamente su SSL, quindi dovrete stare attenti a questo. Se vi capitasse di voler aggiungere un nuovo plug-in, si dovrà riconfigurare le impostazioni SSL o cercare un altro plugin.
  • Professionalità - Ora, anche se alcune persone sostengono che vedendo un dominio SSL verificata sembra degno di fiducia, gli altri lo vedono come una soluzione molto amatoriale e pigro. In realtà, è davvero facile ed economico (costo me circa $ 10) per ottenere un certificato SSL verificato che colpi fino al 96% dei browser!
  • Hassle - Quindi ho detto che è più facile a tutto SSL, ma allo stesso tempo si sta andando ad avere per assicurarsi che ogni risorsa viene caricato tramite https:// (o fare il soluzione rapida http:// -> // ). Può essere un po 'noioso se si dispone di un mazzo di collegamenti o addirittura incompatibili se si dispone di contenuti inviati dagli utenti ospitati su un sito che non supporta SSL. In questi casi, il browser piagnucolare a voi. Se hai mai visto tale avviso che dice "questa pagina ha contenuti non sicuri", saprete quanto sia fastidioso che è e quanto male che sembra.

Così, in breve, è davvero situazionale ma tendono ad evitare ammantando SSL. Certo, ci vuole un po 'più di configurazione, ma alla fine si ottiene un sistema molto più flessibile. Personalmente penso che il tutto "professionalità" è una stronzata (Twitter e Google SSL tutto). Tuttavia, se si dispone di externally ospitato contenuti o contenuti user-postato, di solito è una pessima idea a tutto SSL. Si potrebbe anche iniziare tutto SSL-ing e correre in un mucchio di guai.

ma questo è solo me. : D

Questa prima cosa da chiedersi, che cosa SSL si acquista? Esso si acquista la certezza che nessuno e nessuna applicazione in grado di "sniffare" il traffico e vedere cosa sta succedendo tra il web-server e il browser. Il costo è il vero costo di acquisto di un certificato SSL, e il costo in corso di un leggero aumento della velocità di download. Si menziona che il browser più anziani hanno il download di file di difficoltà oltre la comunicazione SSL. Non posso parlare di questo, e non vorrei occuparmi troppo con quello. Da un punto di vista della sicurezza, si ha un'altra preoccupazione. firewall moderni monitorare il traffico alla ricerca di vari tentativi di hack. SSL impedisce il firewall dal monitor che la comunicazione, in modo che le esigenze sviluppatore di applicazioni / web-admin di essere ancora più interessati a proteggere la loro applicazione e siti da vari tentativi di hacking. Per farla breve, si dovrebbe comunicazioni solo cifrare che veramente bisogno.

In un'altra risposta a Thomas risposta, soprattutto perché è in cima.

Inoltre, più in basso ho legato un carta bianca con le migliori pratiche per SSL .

  

impedisce SSL cache, non solo dai browser, ma anche da server proxy. Ogni pagina web   elemento dovrà essere inviato dal server principale, ancora e ancora. Questa rete aumenta   carico.

vero solo in parte. SSL impedirà proxy caching, ma non il caching del browser - anche vedere le risposte a questa domanda . Non è un grosso problema a mio parere.

  

SSL impedisce l'utilizzo dei cosiddetti "domini virtuali". [...]

Questo è in parte vero. Tuttavia, domini virtuali funzioneranno bene finché si dispone di un solo certificato. Anche se non, Server Name Indication (SNI) dovrebbe essere una valida alternativa (o dovrebbe essere, una volta che Windows XP è dalla faccia del pianeta).

  

[prestazioni] Tuttavia, l'avvio di una connessione SSL, noto come "stretta di mano", è un po 'più costoso,> e può implicare un collo di bottiglia sui carichi pesanti (quando ci sono centinaia di connessioni al secondo, o più) . Fortunatamente, una determinata istanza del browser riutilizzerà tunnel   e sessioni SSL, quindi questo non è un problema se si dispone di solo poche decine di utenti.

Anche la stretta di mano non dovrebbe causare problemi di prestazioni sul lato server se si dispone di hardware moderno. Il motivo principale della stretta di mano essere "lento" è dovuto al fatto che i pacchetti di rete devono essere inviati avanti e indietro un paio di volte tra il server e il browser - potenza di calcolo ha poco a che fare con esso.

Per dirla in un altro modo:. Impostazione della connessione SSL sarà un ordine di grandezza in meno rispetto il rendering di una pagina PHP, che recupera i dati da un database

  

Nel complesso, mettendo SSL ovunque appare come un modo per ottenere una "sensazione di caldo fuzzy" sulla sicurezza. > Questo non è buono. Questo di solito significa che concentrandosi sul irrilevante,

affatto vero . O non hai bisogno di SSL a tutti sul tuo sito, perché è completamente contenuto pubblico. Oppure avete bisogno di SSL per qualche motivo (gli accessi degli utenti, aree protette). In tal caso, la pratica migliore è quella di mettere ovunque.

Avere SSL solo sulle parti della pagina è possibile aprire fino a tutti i tipi di rischi oscuri. E mentre si possono trovare e mitigare quelli in altri modi, è sarà più complesso, soggetto a errori e richiede molto tempo che avere SSL abilitato su tutte le pagine.

Ho trovato il questo white paper su SSL . Io non sono affiliati con la società che autore, ma ho trovato una sintesi molto concisa di tutte le cose che dovete tenere a mente durante la distribuzione di una configurazione SSL.

che la sicurezza è più di un componente va da sé. Ma già ottenendo il primo sbagliato non è un buon inizio.

Non credo che si dovrebbe SSL tutti i vostri siti e sicuramente non c'è bisogno di comprare certs per gli ambienti dev. Se si desidera / bisogno di un certificato SSL per dev può essere facilmente generato e che in molti casi sarebbe abbastanza per quell'ambiente. L'altra possibilità è che si può acquistare un certificato jolly e impostare Dev server in uno dei sottodomini, in questo modo è possibile avere lo stesso certificato per entrambi gli ambienti ma ancora una volta: si tratta di uno spreco di denaro se si acquista il certificato jolly (che sono più costoso) solo per avere dev lavoro su di esso pure. Ha senso se si dispone di più sottodomini su prod che deve essere SSLed.

Per quanto riguarda la velocità: sì, è un po 'un problema, ma non così significativa. risposte SSL non sono memorizzate nella cache in modo che li utilizzano aumenterà i server caricare un po ', ma credo che questa è la parte che di amministrazione dovrebbe essere a conoscenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top