Skip to main content

Doc Olfeo On-prem

Mettre en place le déchiffrement TLS et gérer les flux HTTPS

Le déchiffrement TLS vous permet de :

  • faire de l'analyse de contenu sur des pages HTTPS (appliquer des règles sur les tailles et types de fichiers, analyse antivirus).

  • appliquer, pour des pages HTTPS, des règles sur des URLs précises plutôt que sur des domaines. En effet, sans déchiffrement, les règles ne peuvent s'appliquer qu'à des domaines car seul le nom du domaine apparaît en clair dans une requête HTTPS.

Le déchiffrement des requêtes HTTPS peut être coûteux en termes de performance. Sur des installations contraintes ou pour certaines destinations, vous pouvez paramétrer l'Olfeo pour ne pas déchiffrer certains flux.

L'option ne fonctionne que pour des intégrations en mode proxy (explicite ou en interception). En effet, le déchiffrement nécessite que les flux passent par le proxy : cela exclut donc les intégrations en mode couplage et miroir de port.

Avertissement

Pour l'analyse de contenu, les flux sont fournis en clair au service ICAP : dans les architectures où l'analyse de contenu n'est pas faite par le même Olfeo que celui qui héberge le proxy, faites en sorte que ces flux soient cloisonnés/sécurisés.

Un Olfeo faisant du déchiffrement TLS ne peut pas avoir de proxy parent. En effet, l'analyse de contenu doit être faite par le proxy situé à la fin de la chaîne de proxys (performance, non mise en cache de code malicieux, protection des proxys enfants, stripping des en-têtes...).

Comportement d'Olfeo On premises sans déchiffrement TLS, ou avec un flux pour lequel le déchiffrement est désactivé

Sans déchiffrement TLS :

  • Le filtrage par catégorie ou liste de domaines fonctionne, mais le filtrage sur une URL spécifique ne fonctionne pas (car seul le nom de domaine est transmis en clair dans la requête). Le blocage s'effectue sur le nom de domaine, pas sur la page exacte.

  • L'antivirus ne peut pas analyser les contenus chiffrés.

  • En cas de blocage par une règle ou une politique d'une requête HTTPS, le proxy ne pourra pas établir le CONNECT vers le serveur. La connection TCP sera alors terminée et l'utilisateur final se verra afficher une erreur de connection TCP dans son navigateur.

Pour que la gestion des pages HTTPS soit opérationnelle, réalisez les opérations suivantes :

  1. À la page Proxy avancéHTTPOptions SSL, entrez le Certificat d'Autorité (CA) qui servira à générer les certificats lors du chiffrement de la réponse (fichiers .crt et .key/.pem).

    Important

    Depuis la v6.7, le certificat d'autorité nécessaire pour le déchiffrement doit être compatible avec TLS 1.3 - A ce titre, il doit avoir une longeur de clé minimale de 2048 bits et être chiffré avec un algortithme plus récent que SHA-1

  2. Une fois le certificat d'autorité et sa clé installés, rendez-vous à la page Proxy avancéHTTPConfiguration :

    • Cochez la case Option SSL pour le ou les ports d'écoute désirés. Vous pouvez choisir de ne pas activer le déchiffrement sur certains ports, par exemple pour des ports ne recevant que des mises à jour provenant d'URLs de confiance.

    • Dans la section Types de requêtes autorisées par port de destination, assurez-vous que la case Navigation est cochée pour le port 443.

    • Pour les intégrations proxy en interception, les flux HTTP et HTTPS doivent arriver sur des ports différents.

  3. Paramétrez le comportement du déchiffrement. Définissez à présent :

  4. Déployez votre certificat d'autorité sur les postes clients (par exemple, par GPO, ou en liant le certificat à la charte internet).

Vérifier que le déchiffrement fonctionne

Pour vérifier que le déchiffrement fonctionne correctement, vérifiez le certificat d'une page HTTPS filtrée par votre Olfeo. Celui-ci doit afficher les informations issues de votre certificat d'autorité.

dechiffrement_verifier_certificat.png

Pour les intégrations en mode proxy explicite, dans le trafic temps réel, les flux déchiffrés montrent l'URL complète de la ressource (URL commençant par https://).

dechiffrement_verifier_livelog.png

Page Proxy avancéHTTPOptions SSL.

Service de gestion des certificats

Définissez le certificat d'autorité (CA) qui créera des signatures pour chiffrer les flux entre le proxy et le client (fichiers .crt et .key). Utilisez un certificat généré par votre PKI ou par un outil de gestion de certificats. Ce certificat devra être déployé par vos soins sur les postes clients.

Important

Les certificats protégés par mot de passe ou passphrase ne sont pas supportés.

Important

Quel que soit le cas pour générer le CA, le niveau de sécurité du chiffrement est votre responsabilité. Pour être conforme aux exigences minimales du support de TLS 1.3, le CA doit respecter les conditions suivantes :

  • il doit être chiffré en utilisant un algorihtme plus fort que SHA-1 (SHA-256 ou équivalent)

  • il doit avoir une longeur de clé supérieure à 2048 bits.

Taille de la base : taille du cache qui stocke les empreintes des certificats générés par l'Olfeo. Le coût de génération de certificats est élevé.

Personnaliser les options SSL
  1. Choisissez les versions du protocole utilisées pour communiquer avec les serveurs distants : vous pouvez choisir de refuser d'établir la connexion à des serveurs utilisant des versions trop vulnérables de TLS. Il est recommandé de désactiver SSL v1, SSL v1.1 sauf si pour les versions les plus anciennes de navigateurs ou de serveurs. Maisil est préférable de ne pas désactivé TLS v1.2 (cela empêcherait par exemple Google de fonctionner).

  2. Activer divers contournements de bugs : correspond à l'option SSL_OP_ALL d'OpenSSL. Cette option peut permettre de gérer certains problèmes entre d'anciens navigateurs et certains sites. Il est recommandé de la laisser activée.

Options avancées

Définissez les suites cryptographiques à utiliser pour établir des sessions TLS avec des serveurs distants. L'option Suites cryptographiques recommandées cochée par défaut correspond aux suites recommandées par l'ANSSI.

Page Proxy avancéHTTPRègles de déchiffrement SSL.

Règles de déchiffrement

Dans cette section, définissez quels flux ne doivent pas être déchiffrés, et, pour les flux déchiffrés, la méthode à utiliser.

Colonne

Description

Ports du proxy

La règle ne s'applique que si le flux est reçu sur le port spécifié ici. La liste propose tous les ports pour lesquels l’option SSL est activée (à la page Proxy avancéHTTPConfiguration).

Destination

La règle ne s'applique que si le flux est à destination d'une URL spécifiée ici.

  • Sélectionnez une ou plusieurs catégories

    ou

  • Utilisez des listes de domaines et non des listes d'URLs. En effet, seuls les noms de domaines sont reçus en clair dans une requête HTTPS.

Action

L'action à effectuer si le flux correspond à toutes les conditions définies dans les autres colonnes.

  • Déchiffrement : les flux correspondants aux critères définis dans la règle sont déchiffrés.

    Lorsque le client envoie une requête HTTPS au proxy, la requête CONNECT est traitée pour créer le tunnel SSL. Ensuite le client envoie un client Hello, et dans ce cas-là le serveur est directement contacté avec un « clientHello » généré par SQUID, permettant de mettre un terme au handshake TLS côté serveur. Le client reçoit alors la réponse «ServerHello» avec le certificat utilisé lors de l’activation de l’option SSL, cela permet de déchiffrer les requêtes HTTP à suivre.

  • Pas de déchiffrement : les flux correspondants aux critères définis dans la règle ne sont pas déchiffrés. Utilisez cette option :

    • pour les flux de nature privée tels que des sites de banques ou d'assurances.

    • pour les flux autres que SSL utilisant la méthode CONNECT. En effet, lorsque le déchiffrement est activé, le proxy tente de déchiffrer toutes les requêtes utilisant la méthode CONNECT (sur laquelle s'appuie SSL/TLS). Si un flux utilise cette méthode mais n'est pas chiffré, et que le proxy tente de le déchiffrer, la connexion échouera.

      • Pour autoriser la connexion à un serveur précis, ajoutez une regex correspondant à celui-ci dans la colonne Destination.

      • Pour gérer toutes ces exceptions d'un coup, dirigez tous les flux concernés vers un port spécifique du proxy et ajoutez une exception concernant ce port.

    Si vous ne déchiffrez pas certains flux, n'oubliez pas d'activer les pages de blocage HTTPS.

Règles de gestion des erreurs SSL

Dans cette section, créez des règles pour dire à Olfeo On premises que faire si par exemple le serveur distant lui envoie un certificat expiré, ou s'il détecte des problèmes dans la chaîne de certificats.

  • Ajoutez une règle. Dans la colonne Cas d'erreur, sélectionnez les erreurs désirées. Dans la colonne Action, cliquez sur l'icône pour sélectionner Bloquer ou Autoriser :

    • Bloquer : l'utilisateur recevra une page de blocage générée par le proxy

    • Autoriser : la page sera déchiffrée malgré l'erreur SSL et sera envoyée à l'utilisateur.

  • Dans la liste Pour le reste, définissez l'action à effectuer pour toutes les erreurs SSL non concernées par les règles que vous avez créées.

Pour plus d'informations sur les erreurs dans la liste, voir https://www.openssl.org/docs/manmaster/man1/verify.html#DIAGNOSTICS (en anglais).

Requête vers www.gnu.org/help/help.html, vue par un proxy explicite, en HTTP et en HTTPS : en HTTPS, seul le domaine est indiqué en clair.

HTTP

  GET http://www.gnu.org/help/help.html HTTP/1.1
  Host: www.gnu.org
  User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.5,en;q=0.3
  Accept-Encoding: gzip, deflate
  Connection: keep-alive
  Cache-Control: max-age=0   

HTTPS

  CONNECT www.gnu.org:443 HTTP/1.1
  User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
  Proxy-Connection: keep-alive
  Connection: keep-alive
  Host: www.gnu.org:443
  
  ...........o.p:@..X.O...2.8T0.o....5Cy_/..; .a.\8+NY~")........1.....(.....X...+./.
  .......3.9./.5.
  .............www.gnu.org......
  .................#..+..?t..S...R..a..$..".-.%........6;<f.L.42O.1gk.4..DS.
  ....b..8....#....W!.Q...u.!`II.f..T.'..=...K.......S.J...Ib.>.a...d.n9...29.
  ..&F.(...LDU.|.
  ..I...v...n.eU..V>..vx........e.......r.....9^iOJK........I|.3t........
  .h2.spdy/3.1.http/1.1..........
  ...........................X...........................................
  .......................................................(...........rW.B
  t..H..{7.x....+.b.....a......u.........>sq.....5..^..D.K.H...Th5.#k.U7.p
  @Io.s.(...`Jl..u.!.].M.....\.1...(...Nu2.6......Z.W4Q.
  .t.H..O=.......N.XB.6~#4.7+..o....w,...Fh.j&..,....0.A<n.5.+.Nb.M...)
  .........*..T..+...].O..W&U.C.vD>'j.8......a3.G..=vd...V.JC.z.{....."'.mI
  a_.....B..e...."0....iJLk.8.......)....;Z.=J....i.G..~.Qp#...]sc.C..Jt...
  M,..m..G...K.}OG.7.J!.C.
  ;.
  Yh........q.0J...(.......]0.}.J.....p........?.5.W.?.^.lrd[......|........
  ;..Z.r[.uL.k.Cl..?.....N0...B{....r.... ....X..8.
  t....~.F........_t&jv...Z,.E/..3.O...a>m...e.I..2..<..N......"j.......qm)...O
  9E*%..k^.....L........n.A,....b...9...nP....:H......<
  ..5..1.R......!...9...x.#..g.;.....3.k.M...y.V^....J..t.!.:....E..........
  Zz.;J..4.>..c..[..4P
  ...&..........}.t.U...H....p..e..."..,...lHB.N...M.T.^y..............g.. 
  Q...........E...
  .... ..=....!.....@...2$(6.^.'....F:...
  ...m`.......;....n1pZ...C...{..l.C.gc..G....E....E.k.....n...F.<'..d....b..
  ~..1.M.s......+.W.......{.:.N.[.L.S.L...w....Y...r.#..........f........m:.....
  ..U..5=.....MRkB..zS....`..z;........x9]......./.?4..R..Z....&........@......
  ....X.y.[............A.....%..q].([0Z.._....).E'R..............H....&!...G.~Z
  Z.#..zY.$...`..zB.......rm\