In questo articolo volevo approfondire l’utilizzo di certificati SSL generati con una Certification Authority Microsoft per l’interazione con il Citrix Secure Gateway.
Innanzitutto è necessario focalizzare la nostra attenzione su come funzionano i certificati SSL. Il Secure Socket Layer (SSL) è un protocollo creato da Netscape per garantire una comunicazione sicura tra i server web e i browser. Quando il browser richiede una pagina sicura, il web server invia la propria chiave pubblica con il certificato, il browser verifica la validità del certificato e invia al web server una chiave di cifratura simmetrica codificata con la chiave pubblica del web server. A questo punto il web server comincia a trasmettere le informazioni codificandole con la chiave simmetrica, il browser decodifica e visualizza le informazioni.
La coppia chiave pubblica/chiave privata viene generata allo stesso tempo tramite un algoritmo basato sui numeri primi: quest due chiavi hanno la peculiarità di poter decifrare ciò che l’altra chiave ha cifrato, ma allo stesso tempo data una chiave non è possibile ricreare la prima.
A questo punto non resta che chiarire il perché del certificato. In effetti durante la trasazione con il nostro web server, vogliamo essere sicuri di parlare esattamente con quel web server e non con uno che si spaccia per esso (la parola phishing non vi suggerisce nulla?). Ecco a cosa servono i certificati: la chiave pubblica del web server viene firmata digitalmente da un terzo soggetto (la Certification Authority) che dichiara che noi siamo parlando effettivamente con quel web server. I browser moderni vengono rilasciati con una serie di chiavi pubbliche di alcuni enti che vengono dichiarati affidabili e che a loro volta firmano digitalmente i vari certificati. Quando il nostro browser incontra un certificato rilasciato da VeriSign, da GeoTrust o da un’altra di queste Certification Authority, sa che il nome scritto nel certificato SSL è affidabile e può verifcare l’esattezza del certificato basandosi sul’URL che abbiamo chiamato, sulla data di scadenza del certificato e, appunto, sulla firma digitale.
Quando utilizziamo una Certification Authority interna, quindi non universalmente riconosciuta potremmo ricevere un errore sul cerficato dovuto al fatto che il browser da cui stiamo accedendo non riconosce come affidabile la CA che ha firmato il certificato. In questo caso è necessario importare la chiave pubblica della CA per garantire che il certificato non dia problemi.
Questo è particolarmente importante quando parliamo di sicurezza e soprattutto quando utilizziamo i certificati per connetterci al Secure Gateway. Infatti l’implementazione di Citrix prevede che il certificato sia assolutamente valido per poter stabilire una connessione ad un Presentation Server tramite Secure Gateway. Se il computer da cui ci si collega non riconosce la CA utilizzata per firmare il certificato, la connessione all’applicazione pubblicata fallirà con un errore SSL.Chi utilizza una Certification Authority Microsoft in Active Directory è in qualche modo avvantaggiato perché la CA distribuisce automaticamente la propria chiave pubblica a tutti i computer in dominio. Ma se stiamo usando il Secure Gateway è probabile che chi accede alle nostre applicazioni non lo stia facendo da un computer in dominio. In effetti oggi esistono delle Certification Autority riconosciute dalla maggior parte dei browser/sistemi che vendono certificati a meno di 100€ all’anno (com per esemprio RapidSSL) e quindi è sempre necessario chiedersi quanto valga la pena complicarsi la vita.
Approfondimenti: i certificati SSL e Citrix Secure Gateway (seconda parte)