Les données sont-elles toujours cryptées dans les communications IPv6?

30

Je n'arrive pas à obtenir une réponse directe à cette question. Wikipedia dit "IPsec fait partie intégrante de la suite de protocoles de base dans IPv6", mais cela signifie-t-il que TOUTES les communications sont toujours cryptées, ou cela signifie-t-il que le cryptage est facultatif, mais les appareils doivent être en mesure de le comprendre (s'il doit être utilisé )?

Si le cryptage est facultatif, est-ce le système d'exploitation qui décide d'utiliser le cryptage ou l'application? Les systèmes d'exploitation et logiciels courants permettent-ils généralement le chiffrement?

J'enquêterais moi-même, mais je manque de connectivité IPv6.

Mise à jour: Ok, donc c'est facultatif. Ma question de suivi: est-ce généralement l'application qui définit s'il faut utiliser le chiffrement ou est-ce le système d'exploitation?

Un exemple spécifique: Imaginez que j'ai une version récente de Windows avec prise en charge native d'ipv6 et que je recherche quelque chose sur ipv6.google.com à l'aide de Mozilla Firefox. Serait-il chiffré?

alan
la source
16
IPSec est comme un verrou sur une porte; cela peut faire partie de la porte, mais cela ne signifie pas que la porte est nécessairement verrouillée.
Chris S
@Chris S: Super commentaire, vous avez mon vote positif pour cela.
SplinterReality

Réponses:

31

Non.

IPv6 a IPsec intégré dans le cadre du protocole, et ce n'est pas un boulon comme c'est le cas avec IPv4. Cependant, cela ne signifie pas qu'il est activé par défaut, cela signifie simplement qu'il s'agit d'une surcharge (théoriquement) inférieure sur la pile réseau.

En règle générale, l'utilisation d'IPsec est déterminée au niveau IP de la pile réseau, et donc déterminée par les stratégies système elles-mêmes. Par exemple, le système A peut avoir une politique qui requiert à la fois AH et ESP d'avoir une communication avec le sous-réseau 4.0.0.0/8.

Mise à jour: pour être clair, l'application s'en fiche - elle sait juste qu'elle doit ouvrir une connexion réseau quelque part et envoyer / recevoir des données vers le bas. Le système doit alors déterminer s'il faut négocier IPsec pour la connexion demandée donnée. IPsec est très bien conçu pour être un mécanisme d'authentification / cryptage de bas niveau et est spécialement conçu pour que les protocoles et les applications de niveau supérieur n'aient pas à s'en soucier.

Cela dit, il s'agit simplement d'un autre contrôle de sécurité au niveau du réseau, et ne doit pas nécessairement être utilisé isolément ou utilisé pour garantir la `` sécurité '' - si vous essayez de résoudre un problème d'authentification, il est tout à fait possible que vous souhaitiez que le pour appliquer une sorte d'authentification au niveau de l'utilisateur tout en laissant l'authentification au niveau de la machine à IPsec.

croître
la source
1
Merci d'avoir clairement rejeté un mythe horriblement populaire.
Marcin
3
Oh, les choses qui auraient pu être. Peut-être que nous aurons cela en IPv8 dans quelques centaines d'années.
Michael Hampton
1
Je ne suis pas d'accord - le cryptage devrait toujours être possible et, au mieux, très facile. Obliger un certain type de contrôle de sécurité indépendamment de l'existence d'autres contrôles est un peu à courte vue en ce qui concerne les cas d'utilisation où vous ne voulez pas activement de chiffrement au niveau IP.
growse
20

Réponse courte: Non.

Réponse longue: IPsec a été pris en compte lors de la conception d'IPv6, en ce sens que, contrairement à IPv4, IPsec (lorsqu'il est utilisé) fait partie de l'en-tête IPv6.

Plus d'explications: dans IPv4, IPsec s'exécute sur IP lui-même. Il s'agit en fait d'un protocole de couche 4 qui se fait passer pour un protocole de couche 3 (de sorte que les protocoles L4 habituels de TCP et UDP pourront toujours fonctionner). L'ESP (Encapsulating Security Payload) ne peut pas s'étendre entre les paquets IP. En conséquence, les paquets IPsec auront généralement une capacité de charge utile considérablement réduite si la fragmentation est empêchée. De plus, parce qu'il est au-dessus de l'IP, l'en-tête de l'IP n'est pas protégé.

Dans IPv6, IPsec fait partie de IP lui-même. Il peut s'étendre sur des paquets, puisque l'en-tête ESP fait désormais partie de l'en-tête IP. Et comme il est intégré à IP, davantage de parties de l'en-tête IP peuvent être protégées.

J'espère que mon explication «en un mot» est suffisamment claire.

pepoluan
la source
1
En fait, AH signe le paquet entier , ce qui signifie que rien ne peut être changé (c'est-à-dire que NAT le brise.) C'est pourquoi très peu de tunnels IPSec utilisent réellement AH. Et c'est l'un des nombreux en- têtes d'extension , pas littéralement «une partie de l'en-tête IP».
Ricky Beam
2

À votre question de suivi:

Le système d'exploitation définit quand utiliser le chiffrement. Ces options de "politique" se trouvent dans les panneaux de configuration / politiques de configuration. Vous dites des choses comme "si vous voulez vous connecter à n'importe quelle adresse du sous-réseau ab12 :: vous devez avoir le secret Blah1234". Il existe des options pour utiliser PKI.

Pour le moment, une application ne peut pas ajouter à cette politique ou exiger que cette politique soit configurée. Il y a une mention dans la section ipv6 du socket linux "La prise en charge IPSec pour les en-têtes EH et AH est manquante".

Mike F
la source
1

À votre question de suivi, oui et non.

Les applications peuvent spécifier le cryptage, mais le cryptage est effectué au niveau de l'application. Il existe une grande variété de paires de protocoles non chiffrés / chiffrés utilisant différents ports tels que HTTP / HTTPS, LDAP / LDAPS, IMAP / IMAPS et SMTP / SSMTP. Ils utilisent tous le cryptage SSL ou TLS. Certains services offrent une option startTLS qui permet de démarrer une connexion cryptée sur le port normalement non crypté. SSH est une application qui utilise toujours une connexion cryptée. Le chiffrement est de bout en bout pour ces cas. (Il existe un algorithme de chiffrement NULL qui peut être utilisé, et le contenu chiffré sera transporté non chiffré.)

IPSEC est configuré par l'administrateur et l'application ne saura pas si la connexion est chiffrée ou non. J'ai principalement vu IPSEC utilisé pour combler le trafic entre les réseaux locaux via des connexions non sécurisées (connexions VPN). Je pense que l'IPSEC peut s'appliquer à une partie seulement de l'itinéraire, donc sur certains segments du réseau, les données sont transmises en clair (non cryptées).

Étant donné le choix, j'utiliserai le cryptage d'application car le cryptage réseau n'est pas très utilisé.

BillThor
la source