Statut de ce document
Ce document spécifie un protocole standard d'Internet, pour la communauté Internet, et ne sera éprouvé qu'après plusieurs discussions et suggestions. Referez-vous à l'édition courante de "Internet Official Protocol Standards" (STD 1) pour savoir l'état de sa standardisation et son statut. La distribution de cette note illimitée.
Note de Copyright : Copyright (C) The Internet Society (1998). Tous droits réservés.
Table des matières
1. Introduction
2. Objectifs de conception
3. Vision globale du système
4. Association de Sécurité
5. Traitement du trafic IP
6. La traitement d'ICMP (en relation avec IPsec)
7. Faire de l'audit
8. Utilisation dans les système supportant la sécurité du flux d'information
9. En terme de performance
10. Conditions de conformité
11. Considération sur la sécurité
12. Différences avec la RFC 1825
Remerciements
Annexe A -- Glossaire
Annexe B -- Analyse et discussion sur PMTU/DF/Fragmentation
Annexe C -- Code d'exemple de la fenêtre d'espace des séquences
Annexe D -- Catégories des messages ICMP
Références
Démenti
Information concernant les auteurs
Note intégrale et originale de Copyright
1. Introduction
1.1 Résumé du contenu de ce document
Ce document spécifie l'architecture de base pour les système compatible avec IPsec. Le but de cette architecture est d'apporter divers services en terme de sécurité du trafic au niveau de la couche IP, à la fois dans les environnements IPv4 et IPv6. Ce document décrit le but de tels systèmes, leurs composants, et comment ils se lient entre eux dans l'environnement IP. Il décrit également les services de sécurité offerts par le protocole IPsec, et comment ces services peuvent être employés dans l'environnement IP. Ce document ne détaille pas tous les aspects de l'architecture IPsec. D'autres documents s'intéresseront aux autres détails architecturaux de nature plus avancée, comme l'utilisation d'IPsec dans un environnement de translation d'adresse (NAT, Network Address Translation) ou encore pour un support plus complet du multicast IP. Les composants fondamentaux qui suivent sur l'architecture de sécurité Ipsec sont vus en termes de fonctionnalités fondamentales et nécessaires.
D'autres RFC (voir la section 1.3 pour avoir des liens vers d'autres documents) définissent les protocoles en (a), (c) et (d).
a. Protocoles de sécurité -- Authentification Header (AH, entête d'authentification) et Encapsulating Security Payload (ESP, encapsulation de données de sécurité).
b. Associations de sécurité -- Qu'est-ce que c'est, comment elles fonctionnent, comment elles sont gérés, le traitement associé
c. Gestion de clefs -- Automatique et manuelle (IKE, Internet Key Exchange, échange de clefs Internet).
d. Algorithme pour l'authentification et le chiffrement.
Ce document ne décrit pas une architecture de sécurité complète pour Internet. Il s'intéresse seulement à la sécurité de couche IP, obtenue par l'utilisation combinée de la cryptographie et des mécanismes d'un protocole de sécurité.
Les mots-clefs tels DEVOIR, RECOMMENDER, POUVOIR ou OPTIONNEL et leurs déclinaisons, lorqu'il 1000 s apparaissent dans ce document, sont à interpréter de la façon dont la RFC 2119 [Bra97] le décrit.
1.2 Audience
L'audience ciblée par ce document inclut ceux qui doivent implémenter cette technologie de sécurité IP, où d'autres qui sont intéressés par l'acquisition d'une certaine compréhension de ce système. En particulier, les utilisateurs éventuels de cette technologie (utilisateurs finaux ou administrateurs de système) font partie du public ciblé. Un glossaire est donné en annexe pour combler les problèmes de vocabulaire ou de contexte. Ce document suppose que le lecteur connaît IP (Internet Protocol) et les technologies qui lui sont liés, ainsi que les termes et concepts généraux concernant la sécurité.
1.3 Documents liés au sujet
Comme mentionné plus haut, d'autres document donne des définitions détaillées de certains composants d'IPsec et de leurs interactions. Cela inclut les RFC sur les sujets suivants :
a. "IP Security Document Roadmap" [TDG97] - un document qui donne les grandes lignes sur la description des spécifications des algorithmes de chiffrement et d'authentification utilisés dans ce système.
b. Protocoles de sécurité - Les RFC décrivant les protocoles Authentication Header (AH) [KA98a] et Encapsulating Security Payload (ESP)[KA98b].
c. Les algorithmes d'authentification et de chiffrement - une RFC séparée pour chaque algorithme.
d. Gestion automatique des clefs - Les RFC "The Internet Key Exchange (IKE)" [HC98], "Internet Security Association and Key Management Protocol (ISAKMP)" [MSST97], "The OAKLEY Key Determination Protocol" [Orm97], et "The Internet IP Security Domain of Interpretation for ISAKMP" [Pip98].
2. Objectifs de conception
2.1 Description des objectifs, des besoins et des problèmes
IPsec est conçu pour donner une sécurité de haute qualité, basée sur la cryptographie, sans problème d'interopérabilité, pour IPv4 et IPv6. L'ensemble des services de sécurité proposé inclut le contrôle d'accès, l'intégrité en mode non connecté, l'authentification de l'origine des données, la protection contre le rejeu (une forme d'intégrité), la confidentialité (chiffrement), et une certaine confidentialité sur le flux de trafic. Ces services sont offerts par IP ou par d'autres protocoles de couches supérieures.
Ces objectifs sont atteints par l'utilisation de deux protocoles de sécurité de trafic, Authentication Header (AH) et Encapsulating Security Payload (ESP), et par l'utilisation de procédures et de protocoles de gestion de clefs de cryptographie. L'ensemble des protocoles IPsec, employés dans n'importe quel contexte, et la façon dont ils sont utilisés, seront déterminés par les besoins des utilisateurs ou/et des sites/organisations sur la sécurité et les systèmes.
Quand ces mécanismes sont correctement implémentés et déployés, ils ne doivent pas compromettre les uti 1000 lisateurs, les hôtes, ni les autres composants d'Internet qui n'utilisent pas ces mécanismes de sécurité pour protéger leur trafic. Ces mécanismes sont également conçu pour être indépendant de tout algorithme. Cette modularité permet de sélectionner différents types d'algorithme sans affecter la partie implémentation. Par exemple, des communautés différentes d'utilisateurs peuvent sélectionner (ou même créer) différents types d'algorithmes si nécessaire.
Un ensemble standard d'algorithmes par défaut est spécifié pour facilité l'interopérabilité avec l'ensemble d'Internet. L'utilisation de ces algorithmes, en conjonction avec la protection du trafic IPsec et des protocoles de gestion de clefs, devrait permettre aux développeurs d'applications et de systèmes de déployer des technologies de sécurité cryptographique de haute qualité sur la couche Internet.
2.2. Avertissements et suppositions
La suite de protocoles IPsec et des algorithmes associés par défaut sont conçus pour donner de la sécurité de haute qualité pour le trafic d'Internet. Quoiqu'il en soit, la sécurité offerte par l'utilisation de ces protocoles dépend de la qualité de leur implémentation, qui n'est pas le sujet de ce standard. De plus, la sécurité d'un système ou d'un réseau est fonction de nombreux facteurs, qu'il soit entre autres personnels, physiques, procéduraux, d'émanations compromettantes, et de pratiques de sécurité informatique. Donc, IPsec est seulement une partie d'une architecture globale de sécurité d'un système.
Finalement, la sécurité offerte par l'utilisation d'IPsec est extrêmement dépendante de plusieurs aspects de l'environnement dans lequel l'implémentation d'IPsec s'exécute. Par exemple, les problèmes de sécurité des systèmes d'exploitations, les sources de nombres aléatoires de piètre qualité, les pratiques et les protocoles négligés pour la gestion du système, etc. peuvent tous dégrader la sécurité offerte par IPsec. Comme vu plus haut, aucun de ces attributs environnementaux ne sont étudiés dans le présent standard, ou d'autres concernant IPsec.
3. Vision globale du système
Cette section donne une description vue de haut du fonctionnement d'IPsec, des composants du système, et de la façon dont il interagissent entre eux, pour obtenir les services de sécurité décrits plus haut. Le but de cette description est de permettre au lecteur d'avoir en tête l'ensemble du processus/système, de voir comment il s'intègre à l'environnement IP, et de présenter le contexte avant les sections suivantes de ce document, qui décrit chacun des composants plus en détails.
Une implémentation d'IPsec s'exécute dans un environnement hôte ou sur une passerelle de sécurité pour protéger le trafic IP. La protection offerte est basée sur des besoins définis par la base de données de la politique de sécurité (SPD, Security Policy Database) établie et maintenue par un utilisateur ou un administrateur système, ou par une application s'exécutant avec les contraintes & 1000 eacute;tablies par l'un des deux. En général, les paquets sont sélectionnés pour l'un des trois modes d'utilisation basés sur IP, selon l'information de la couche de transport (Sélecteurs, Section 4.4.2), empêchant les entrées dans la SPD. Chaque paquet peut utiliser les services de sécurité IPsec, ou de les éviter, selon les règles de la SPD identifiées par les Sélecteurs.
3.1 Que fait IPsec ?
IPsec offre des services de sécurité au niveau de la couche IP en permettant au système de choisir le protocole de sécurité dont il a besoin, de déterminer l'algorithme à utiliser pour ce ou ces services, et de mettre en place les clefs de cryptographie nécessaire pour assurer ces services. IPsec peut être utilisé pour protéger un ou plusieurs accès entre deux hôtes, entre deux passerelles de sécurité, ou entre une passerelle de sécurité et un hôte (Le terme "passerelle de sécurité" ou "security gateway" est utilisé tout au long de ce document pour parler d'un système intermédiaire qui utilise les protocoles d'IPsec. Par exemple, un routeur ou un firewall utilisant IPsec est une passerelle de sécurité).
L'ensemble des services de sécurité que peut proposer IPsec inclut le contrôle d'accès, l'intégrité en mode non connecté, l'authentification de l'origine des données, le rejet des paquets de rejeu (une forme d'intégrité), la confidentialité (chiffrement), et une certaine confidentialité sur le flux de trafic. Parce que ces services sont proposés au niveau IP, ils peuvent être utilisés par un protocole appartenant à une couche supérieure, comme TCP, UDP, ICMP, BGP, etc.
Le DOI d'IPsec supporte également la négociation de compression IP [SMPT98], motivée entre autre par le fait que lorsque le chiffrement est utilisé au sein d'IPsec, il empêche une compression efficace par les protocoles des couches inférieures.
3.2 Comment fonctionne IPsec ?
IPsec utilise deux protocoles pour assurer la sécurité du trafic -- Authentication Header (AH) et Encapsulating Security Payload (ESP). Ces deux protocoles sont décrits en détails dans leurs RFC respectives [KA98a, KA98b].
- L'entête d'authentification IP (AH, Authentication Header [KA98a]) apporte l'intégrité en mode non connecté, l'authentification de l'origine des données, et un service anti-rejeu optionnel.
- Le protocole Encapsulating Security Payload (ESP, [KA98b]) peut apporter la confidentialité (chiffrement), ainsi qu'une certaine confidentialité du flux de trafic. Il peut également apporter l'intégrité en mode non connecté, l'authentification de l'origine des données, et un service anti-rejeu optionnel (un ou plusieurs de ces services de sécurité doit être impliqué quand ESP est évoqué).
- AH et ESP apportent tous deux le contrôle d'accès, basé sur une distribution de clefs de cryptographie et la gestion des flux de trafic relatifs à ces protocoles de sécurité.
Ces protocoles peuvent être impliqués seuls ou ensemble pour apporter l'ensemble d& 1000 eacute;siré des services de sécurité dans IPv4 et IPv6. Chaque protocole supporte deux modes d'utilisation : le mode transport et le mode tunnel. En mode transport, le protocole propose une protection préliminaire pour les protocoles supérieurs, et en mode tunnel, le protocole est utilisé dans les paquets IP envoyés en tunneling. La différence entre ces deux modes est évoqué dans la Section 4.
IPsec permet à l'utilisateur (ou l'administrateur système) de contrôler la granularité de ce qui utilise un service de sécurité. Par exemple, on peut créer un simple tunnel chiffré pour transporter tout le trafic entre deux passerelles de sécurité ou un tunnel chiffré séparé pour chaque connexion TCP entre les deux hôtes communiquant par ces passerelles. La gestion d'IPsec doit incorporer des équipements pour spécifier :
- quels services de sécurité utiliser et dans quel cas
- la granularité avec laquelle une protection donnée doit être appliquée
- les algorithmes utilisés pour une sécurité basée sur la cryptographie
Comme ces services de sécurité utilisent des valeurs secrètes partagées (clefs de cryptographie), IPsec repose sur un ensemble séparé de mécanismes permettant de mettre ces clefs en place. (Les clefs sont utilisées pour l'authentification/intégrité et services de chiffrement.) Ce document nécessite d'autres supports pour la distribution automatique ou manuelle de clefs. Il spécifie une approche spécifique basée sur les clefs publiques (IKE -- [MSST97, Orm97, HC98]) pour la gestion automatique des clefs, mais d'autres techniques de distribution automatique de clef PEUVENT être utilisées. Par exemple, les systèmes basés sur KDC comme Kerberos ou d'autres systèmes à clefs publiques comme SKIP peuvent être utilisés.
3.3 Où IPsec peut-il être implémenté ?
Il y a plusieurs façons d'implémenter IPsec sur un hôte ou en conjonction avec un routeur ou un firewall (pour créer une passerelle de sécurité). Plusieurs exemples sont données ci-dessous :
a. Intégration d'IPsec dans l'implémentation native d'IP. Ceci demande un accès au code source d'IP et est applicable à la fois sur les hôtes et les passerelles de sécurité.
b. Les implémentations "Bump-in-the-stack" (BITS), où IPsec est implémenté "en dessous" d'une implémentation existante de la pile IP, entre l'IP natif et les drivers du réseau local. L'accès au code source de la pile IP n'est pas nécessaire dans ce cas, ce qui rend cette approche appropriée pour utiliser les systèmes tels quels. Cette approche, quand elle est adoptée, est généralement utilisée sur les hôtes.
c. L'utilisation d'un processeur de cryptographie extérieur est une fonction courante sur les systèmes de sécurité réseaux utilisés par les militaires, et même quelques systèmes commerciaux. C'est quelquefois vu comme une implémentation "Bump-in-the-wire" (BITW). Ces implémentations peuvent être conçues 1000 pour servir sur un hôte ou sur une passerelle de sécurité. Généralement, l'élément BITW est adressable par IP. Quand il s'agit d'un simple hôte, ça peut se rapprocher d'une implémentation BITS, mais dans un routeur ou un firewall, il doit fonctionner comme pour une passerelle de sécurité.
4. Association de Sécurité
Cette section définit les besoins en terme de gestion des Associations de Sécurité nécessaire à toute implémentation d'IPv6 et les implémentations d'IPv4 qui utilisent AH, ESP, ou les deux. Le concept de "Association de Sécurité" (SA, Security Association) est fondamental dans IPsec. AH et ESP utilisent tous les deux les SA et une des fonctions majeures de IKE est l'établissement et le maintien d'Associations de Sécurité. Toute implémentation de AH ou ESP DOIT supporter le concept d'Association de Sécurité comme décrit par la suite. Le reste de cette section décrit différents aspects de la gestion des Associations de Sécurité, définissant les caractéristiques requises pour la gestion d'une politique de SA, le traitement du trafic, et les techniques de gestion d'une SA.
4.1 Définition et étendue
Une Association de Sécurité (SA) est une connexion simplex qui apporte des services de sécurité au trafic qui transite par elle. Les services de sécurité sont apportés par la SA par l'intermédiaire de AH ou de ESP, mais pas des deux. Si les protections de AH et ESP sont toutes deux appliquées à un flux, alors au moins deux SA sont créées pour apporter la protection de ce flux. Pour sécuriser une transmission bi-directionnelle typique entre deux hôtes, ou entre deux passerelles de sécurité, deux Associations de Sécurité (une dans chaque direction) sont nécessaires.
Une Association de Sécurité est identifiée de façon unique par trois variables que sont l'index du paramètre de sécurité (SPI, Security Parameter Index), l'adresse IP destination, et l'identifiant du protocole de sécurité (AH ou ESP). En principe, l'adresse destination peut être une adresse unicast, broadcast ou de groupe multicast. Cependant, les mécanismes actuels de gestion des SA dans IPsec sont définis seulement pour les SA unicast. Par conséquent, dans les discussions qui suivent, les SA seront décrites dans le contexte d'une communication point-à-point, même si le concept est également applicable dans le cas d'une communication multipoint.
Comme indiqué ci-dessus, deux types de SA sont définies : en mode transport et en mode tunnel. Le mode transport d'une SA est une Association de Sécurité entre deux hôtes. Dans IPv4, l'entête du protocole de sécurité en mode transport apparaît juste après l'entête d'IP et toutes ses options, et avant n'importe quel protocole des couches plus élevées (comme TCP ou UDP). Dans IPv6, l'entête du protocole de sécurité apparaît après l'entête IP et ses extensions de base, mais peut apparaître avant ou après les options de destination, et avant les protocoles des couches supérieures. Dans le cas d'ESP, le mode transport de SA fournit des services de sécurité uniquement pour les protocoles supérieurs, pas pour l'ent&eci 1000 rc;te IP ou tous les entêtes d'extension précédant l'entête ESP. Dans le cas d'AH, la protection est également étendue à certaines parties choisies de l'entête IP, à certaines parties choisies des entêtes d'extension, et à certaines options choisies (contenues dans l'entête IPv4, dans l'entête d'extension Hop-by-Hop et dans les entêtes d'extension de destination pour IPv6). Pour plus de détails sur la protection accordée par AH, référez-vous aux spécifications d'AH [KA98a].
Le mode tunnel d'une SA est essentiellement une SA appliquée à un tunnel IP. Chaque fois que l'extrémité d'une Association de Sécurité est une passerelle de sécurité, la SA DOIT être en mode tunnel. Ainsi, une SA entre deux passerelle de sécurité est toujours en mode tunnel, de même qu'une SA entre un hôte et une passerelle de sécurité. Notez que dans le cas d'un trafic destiné à une passerelle de sécurité, comme les commandes SNMP, la passerelle de sécurité agit en tant qu'hôte et que le mode transport est possible. Dans ce cas, la passerelle de sécurité n'agit pas en tant que passerelle, c'est-à-dire que le trafic ne transite pas par elle. Deux hôtes PEUVENT établir entre eux une SA en mode tunnel. Les conditions nécessaires au mode tunnel, pour une SA impliquant une passerelle de sécurité, sont plus sévères pour éviter d'éventuels problèmes de fragmentation et de réasssemblage de paquets IPsec, ou quand les accès sont multiples (comme par l'intermédiaire de différentes passerelles de sécurité), jusqu'à une même destination se trouvant derrière des passerelles de sécurité.
Pour la SA en mode tunnel, il y a un entête IP "externe" qui indique la destination traitée par IPsec, plus un entête IP "interne" qui indique la destination finale (apparente) du paquet. L'entête du protocole de sécurité apparaît après l'entête IP externe, et avant l'entête IP interne. Si AH est utilisé en mode tunnel, les parties de l'entête IP externe sont protégées (comme vu ci-dessus), de même que tout paquet IP passant en tunneling (c.-à-d., tout l'entête IP interne est protégé, ainsi que les protocoles des couches plus élevées). Si ESP est utilisé, la protection est appliquée uniquement au paquet passant en mode tunneling, pas à l'entête externe.
En résumé,
a) l'hôte DOIT supporter à la fois le mode transport et le mode tunnel.
b) Une passerelle de sécurité supporte uniquement le mode tunnel. S'elle supporte le mode transport, elle ne devrait être utilisé que quand la passerelle de sécurité agit en tant qu'hôte, comme pour l'administration du réseau, par exemple.
4.2 Fonctionnalités des SA
L'ensemble des services de sécurité offerts par la SA dépend du protocole de sécurité choisi, du mode de la SA, des extrémités de la SA, et de l'utilisation des services optionnels du protocole. Par exemple, AH fournit l'authentification de l'origine de données et l'intégrité en mode non connecté des datagrammes IP (ci-après désignés sous le nom d'"au 1000 thentification"). La "précision" du service d'authentification est fonction de la granularité de l'association de sécurité avec laquelle AH est utilisé, comme nous le verrons dans la Section 4.4.2, sur les "Sélecteurs".
AH offre également le service d'anti-rejeu (intégrité) pour le récepteur, afin de contrer les attaques de déni de service. AH est un protocole à utiliser quand la confidentialité n'est pas nécessaire (ou n'est pas autorisé, par exemple, en raison des restrictions du gouvernement sur le chiffrement). AH fournit également l'authentification pour les parties choisies de l'entête IP, ce qui peut être nécessaire dans certains cas. Par exemple, si l'intégrité d'un entête d'option IPv4 ou d'une extension IPv6 doit être assurée le long du chemin entre l'expéditeur et le récepteur, AH peut fournir ce service (sauf sur les parties non-prévisibles pouvant changer dans l'entête IP).
ESP fournit en option la confidentialité du trafic (la puissance du service de confidentialité dépend en partie de l'algorithme de chiffrement utilisé). ESP peut également fournir l'authentification en option (comme défini ci-dessus). Si l'authentification est négociée pour une SA ESP, le récepteur peut également choisir d'imposer le service d'anti-rejeu avec les mêmes dispositifs que le service anti-rejeu d'AH. La portée de l'authentification offerte par ESP est plus étroite que celle d'AH, c'est-à-dire que le ou les entêtes IP situés hors de l'entête ESP ne sont pas protégés. Si les protocoles des couches supérieures sont les seuls qui doivent être authentifiés, alors l'authentification ESP est un choix approprié et plus efficace que l'utilisation de AH encapsulant ESP. Notons que même si la confidentialité et l'authentification sont facultatives, elles ne peuvent pas être toutes les deux absentes. Au moins l'une d'elles DOIT être choisie.
Si le service de confidentialité est choisi, alors la SA ESP (en mode tunnel) peut offrir une confidentialité partielle du flux entre deux passerelles de sécurité. L'utilisation du mode tunnel permet aux entêtes IP internes d'être chiffrés, cachant l'identité de la source et de la destination (finale) du flux. D'ailleurs, le bourrage de la charge utile d'ESP peut également être utilisé pour cacher la taille des paquets. Des services similaires de confidentialité du flux peuvent être offerts quand un utilisateur mobile se voit assigner une adresse IP dynamique lors de la connexion. Ces services établissent une SA ESP (en mode tunnel) avec le firewall (agissant en tant que passerelle de sécurité). Notez que les SA de bonne granularité sont généralement plus vulnérables à l'analyse du trafic que ceux de granularité brute qui transportent le trafic de beaucoup d'abonnés.
4.3 Combiner les SA
Les datagrammes IP transmis au-dessus d'une SA individuelle sont protégés par un unique protocole de sécurité, soit AH, soit ESP, mais pas les deux. Parfois, une politique de sécurité peut nécessiter une combinaison des services pour un flux particulier qui n'est pas réalisable avec une SA simple. Dans ce cas, il sera nécessaire d'utiliser plusieurs SA pour mettre en application la politique de sécurité demandée. Le terme "paquet d'associations de sé 1000 curité" ou "paquet de SA" est appliqué à une séquence de SA spécifiant le traitement que le trafic doit recevoir pour satisfaire une politique de sécurité. L'ordre de la séquence est définie par la politique (notons que les SA peuvent comporter un paquet qui peut être destiné aux différentes extrémités. Par exemple, une SA peut s'étendre d'un hôte mobile à une passerelle de sécurité et une autre SA emboîtée peut s'étendre jusqu'à un hôte placé derrière cette passerelle).
Les Associations de Sécurité peuvent être combinées dans des paquets de deux façons : la juxtaposition du transport et la création d'un tunnel itératif.
- La juxtaposition du transport se rapporte à l'application de plus d'un protocole de sécurité au même datagramme IP, sans demander la création d'un tunnel. Ce mélange d'AH et d'ESP est possible pour un seul niveau de combinaison ; davantage d'emboîtement n'apporte aucun autre avantage (utilisation d'algorithmes suffisamment forts pour chaque protocole) puisque le traitement est exécuté en une instance d'IPsec jusqu'à la destination (finale).
Hôte 1 -- Passerelle -- Internet -- Passerelle -- Hôte 2
| | de sécurité n°1 de sécurité n°2 | |
| | | |
| ----Association de sécurité 1 (transport ESP)----- |
| |
------Association de sécurité 2 (transport AH)--------
- Le tunneling itératif se rapporte à l'application de plusieurs couches de protocoles de sécurité par la création d'un tunnel IP. Cette approche tient compte de plusieurs niveaux d'emboîtement, puisque chaque tunnel peut commencer ou se terminer à un lieu IPsec différent tout au long du chemin. Aucun traitement spécial n'est prévu pour le trafic ISAKMP aux passerelles de sécurité intermédiaires autres que ce qui peut être indiqué par les entrées appropriées de la SPD (voir le cas 3 de la Section 4.5)
Il y a 3 cas de base pour le tunneling itératif -- le support n'est nécessaire que pour les cas 2 et 3 :
1. Les deux extrémités de la SA sont les mêmes -- Les tunnels internes et externes peuvent être soit AH, soit ESP, bien qu'il soit peu probable que l'hôte 1 les indiquerait tous deux comme étant les mêmes, i.e., AH dans AH et ESP dans ESP.
& 1000 nbsp; Hôte 1 -- Passerelle -- Internet -- Passerelle -- Hôte 2
| | de sécurité n°1 de sécurité n°2 | |
| | | |
| -------Association de sécurité 1 (tunnel)--------- |
| |
---------Association de sécurité 2 (tunnel)-----------
2. Une des deux extrémités de la SA est la même -- les tunnels internes et externes peuvent être soit AH, soit ESP.
Hôte 1 -- Passerelle -- Internet -- Passerelle -- Hôte 2
| | de sécurité n°1 de sécurité n°2 |
| | | |
| ---Association de sécurité 1 (tunnel)--- |
| |
---------Association de sécurité 2 (tunnel)-----------
3. Aucunes des deux extrémités n'est la même -- les tunnels internes et externes peuvent être soit AH, soit ESP.
Hôte 1 -- Passerelle -- Internet 1000 -- Passerelle -- Hôte 2
| de sécurité n°1 de sécurité n°2 |
| | | |
| -------- SA 1 (tunnel) ----- |
| |
---------Association de sécurité 2 (tunnel)-----------
Ces deux approches peuvent également être combinées. Par exemple, le paquet de SA pourrait être construit à partir d'une SA en mode tunnel et une ou deux SA en mode transport, appliquées dans un certain ordre (voir la Section 4.5 "Combinaisons de base des Associations de Sécurité"). Notons qu'il peut aussi arriver que des tunnels emboîtés n'aient en commun ni leurs sources, ni leurs destinations. Dans ce cas, il n'y aurait aucun hôte ou passerelle de sécurité ayant un paquet correspondant aux tunnels emboîtés. Pour les SA en mode transport, un seul ordre pour les protocoles de sécurité semble approprié. AH est appliqué à la fois aux protocoles des couches supérieures et à (certaines parties de) l'entête IP. Ainsi, si AH est utilisé en mode transport, en même temps qu'ESP, AH DEVRAIT apparaître dans le premier entête suivant IP, avant ESP. Dans ce cas, AH est appliqué au texte chiffré sorti d'ESP. En revanche, pour les SA en mode tunnel, on peut imaginer des ordres différents pour AH et ESP. L'ensemble des types de paquet de SA nécessaires DEVANT être supportés par une implémentation conforme d'IPsec est décrit dans la Section 4.5.
4.4 Les bases de données des Associations de Sécurité (Security Association Databases)
Plusieurs détails associés au traitement du trafic IP d'une implémentation IPsec sont en grande partie des problèmes locaux, pas d'étalonnage. Cependant, quelques aspects externes du traitement doivent être normalisés, pour assurer leur interopérabilité et pour fournir une capacité minimum de gestion qui est essentielle pour assurer un usage productif d'IPsec. Cette section décrit un modèle général pour le traitement du trafic IP en relation avec des SA, en rapport avec ce but d'interopérabilité et de fonctionnalité. Le modèle décrit ci-dessous est nominal ; l 1000 es implémentations conformes n'ont pas besoin de correspondre aux détails du modèle tel qu'il est présenté, mais le comportement externe de telles implémentations doit pouvoir correspondre aux caractéristiques extérieurement observables de ce modèle.
Il y a deux bases de données nominales dans ce modèle : la base de données de la politique de sécurité (SPD, Security Policy Database) et la base de données des Associations de Sécurité (SAD, Security Association Database). La première indique les politiques qui déterminent la destination de l'ensemble du trafic IP d'arrivée ou venant d'un hôte, d'une passerelle de sécurité, ou d'une implémentation IPsec BITS ou BITW. La seconde base de données contient les paramètres qui sont associés à chaque Association (active) de Sécurité. Cette section définit également le concept de Sélecteur, un ensemble de valeurs de champs de protocole IP des couches supérieures qui est utilisé par la base de données de la politique de sécurité pour faire correspondre un trafic à une politique, c.-à-d., une SA (ou le paquet de SA).
Chaque interface où IPsec est activée exige nominalement des entrées séparées dans les bases de données (SAD et SPD), en raison de la directionalité de plusieurs des champs qui sont utilisées comme Sélecteurs. En général, il y a une seule interface, pour un hôte ou une passerelle de sécurité (SG). Notons qu'une SG aura toujours au minimum 2 interfaces, mais celle qui est "interne" au réseau n'a généralement pas IPsec activé et donc seules une paire de SAD et une paire de SPD seraient nécessaires. D'autre part, si un hôte ou une SG avait plusieurs interfaces externes, il pourrait être nécessaire d'avoir des paires SAD et SPD séparées pour chaque interface.
4.4.1 La base de données de la politique de sécurité (SPD, Security Policy Database)
Finalement, une Association de Sécurité est un outil de gestion utilisé pour imposer une politique de sécurité dans un environnement IPsec. Ainsi, un élément essentiel au traitement de SA est la base de données fondamentale de politique de sécurité (SPD) qui indique quels services doivent être offerts aux datagrammes IP et de quelle façon. La forme de la base de données et de son interface ne sont pas abordés dans ces spécifications. Cependant, cette section indique quelles fonctionnalités minimum de gestion doivent être fournies, pour permettre à un utilisateur ou un administrateur système de contrôler la façon dont IPsec est appliqué au trafic transmis ou reçu par hôte, ou passant par une passerelle de sécurité.
La SPD doit être consultée pendant le traitement de tout le trafic (ENTRANT et SORTANT), y compris le trafic non-IPsec. Afin d'assurer ceci, la SPD exige des entrées distinctes pour le trafic entrant et sortant. On peut utiliser des SPD séparées (entrante ou sortante). En outre, une SPD séparée doit être utilisée pour chaque interface où IPsec est activée.
Une SPD doit distinguer le trafic qui est protégé par IPsec et celui qui passe IPsec. Ceci concerne la protection IPsec devan 1000 t être appliquée par un expéditeur et la protection IPsec qui doit être présente chez le récepteur. A n'importe quel datagramme entrant ou sortant, trois choix de traitement sont possibles : jeter, passer IPsec, ou appliquer IPsec. Le premier choix se rapporte au trafic qui n'est pas autorisé à quitter l'hôte, à traverser la passerelle de sécurité, ou à être fourni à une application. Le deuxième choix se rapporte au trafic qui est autorisé à passer sans protection IPsec supplémentaire. Le troisième choix se rapporte au trafic protégé par IPsec, et pour un tel trafic, la SPD doit indiquer les services de sécurité à fournir, les protocoles et les algorithmes à utiliser, etc...
Pour chaque implémentation d'IPsec, il DOIT y avoir une interface administrative qui permet à un utilisateur ou un administrateur système de contrôler la SPD. Spécifiquement, chaque paquet entrant ou sortant est sujet au traitement IPsec, et la SPD doit indiquer l'action à effectuer dans chaque cas. Ainsi, cette interface administrative doit permettre à l'utilisateur (ou administrateur système) d'indiquer le traitement en sécurité à appliquer sur n'importe quel paquet entrant ou sortant du système, pour un paquet ou un type de paquets (dans une implémentation d'hôte IPsec utilisant une interface basée sur les sockets, on peut consulter la SPD pour un type de paquet, mais le résultat est le même). L'administrateur système de la SPD DOIT permettre la création d'entrées conformes aux Sélecteurs définis dans la Section 4.4.2, et DOIT permettre le contrôle total de ces entrées. On s'attend à ce que l'utilisation de types d'informations différents (wildcards) dans les Sélecteur pose problème, et ce parce que tous les paquets d'une connexion simple UDP ou TCP tendent à correspondre à une entrée simple de la SPD, mais cette condition n'imposera pas un niveau de détails irraisonnable dans les spécifications de la SPD. Les Sélecteurs sont identiques à ceux que l'on trouve actuellement dans un firewall ou un routeur filtrant.
Dans des systèmes hôtes, on PEUT permettre à des applications de choisir quel traitement de sécurité doit être appliqué au trafic qu'elles produisent et consomment (les moyens de signaler de telles demandes dans l'implémentation IPsec ne sont pas du ressort de cette norme). Cependant, l'administrateur système DOIT pouvoir indiquer si un utilisateur ou une application peut ignorer les politiques du système (par défaut). Notez que les politiques indiquées par l'application peuvent répondre à certaines exigences du système, de sorte que le système ne soit pas obligé de procéder à un traitement IPsec supplémentaire pour répondre aux exigences d'une application. La forme de l'interface de gestion n'est pas indiquée par ce document et peut différer entre les hôtes et les passerelles de sécurité, et d'un hôte à l'autre, l'interface peut différer entre une implémentation BITS et une basée sur les sockets. Cependant, ce document indique un ensemble standard d'éléments de SPD que toutes les implémentations IPsec DOIVENT avoir.
La SPD contient une liste ordonnée d'entrées de politique. Chaque entrée de politique est introduite par un ou plusieurs Sélecteurs qui définissent l'ensemble du trafic IP concerné par cette entr&e 1000 acute;e de politique (les types de Sélecteur exigés sont définis dans la Section 4.4.2). Ceux-ci définissent la granularité des politiques ou des SA. Chaque entrée inclut une indication permettant de savoir si le trafic correspondant à cette politique sera passé, rejeté, ou sujet à un traitement d'IPsec. Si le traitement par IPsec est nécessaire, l'entrée donne les spécifications de la SA (ou paquet de SA), précisant les protocoles IPsec, les modes, et les algorithmes à utiliser, ainsi que leurs interactions. Par exemple, une entrée peut nécessiter de protéger tout son trafic associé par ESP en mode transport, en utilisant 3DES-CBC avec un IV explicite, encapsulé à l'intérieur de AH en mode tunnel, utilisant HMAC/SHA-1. Pour chaque Sélecteur, l'entrée de la politique indique comment dériver les valeurs correspondantes pour obtenir une nouvelle entrée dans la base de données d'Association de Sécurité (SAD, voir la Section 4.4.3) de celles de le SPD et du paquet (notons qu'actuellement, les intervalles sont seulement supportés pour les adresses IP, mais les types d'informations différents (wildcarding) peuvent être exprimés pour tous les Sélecteurs):
a. Utilisation de la valeur dans le paquet elle-même -- ceci limitera l'utilisation de la SA aux paquets qui ont la valeur de ce paquet pour le Sélecteur, même si le Sélecteur de l'entrée de la politique a un intervalle de valeurs autorisées ou un type d'informations différentes pour ce Sélecteur.
b. Utilisation de la valeur associée à l'entrée de la politique -- si ça devaient être uniquement une valeur simple, alors il n'y aurait aucune différence entre (b) et (a). Cependant, si les valeurs autorisées pour le Sélecteur appartiennent à un intervalle (pour des adresses IP) ou un type d'informations différentes (wildcard), alors, dans le cas d'un intervalle, (b) permettrait l'utilisation de la SA par n'importe quel paquet avec une valeur de Sélecteur appartenant à cet intervalle, et pas seulement par les paquets dont la valeur de Sélecteur du paquet est celle qui a déclenché la création de la SA. Dans le cas d'un type d'informations différent (wildcard), (b) permettrait l'utilisation de la SA par des paquets ayant n'importe quelle valeur pour ce Sélecteur.
Par exemple, supposez qu'il y a une entrée de la SPD où la valeur autorisée pour l'adresse source est une partie quelconque d'un intervalle d'hôtes (192.168.2.1 à 192.168.2.10). Supposez ensuite qu'un paquet doit être envoyé a l'adresse source de 192.168.2.3. La valeur à utiliser pour la SA pourrait être n'importe laquelle de des valeurs ci-dessous selon ce que l'entrée de la politique pour ce Sélecteur indique comme étant la source de valeur de Sélecteur:
Source de la valeur Exemple pour la nouvelle
à utiliser pour la SA valeur du Sélecteur SAD
--------------------- ------------------------
a. paquet 192.168.2.3 (un hôte)
b. entrée SPD &nb 1000 sp; 192.168.2.1 à 192.168.2.10 (intervalle d'hôtes)
Notez que si l'entrée de la SPD avait une valeur autorisée de type d'informations différentes (wildcard) pour l'adresse source, alors la valeur de Sélecteur SAD pourrait être d'un type d'informations différent (wildcard) (n'importe quel hôte). Le cas (a) peut être utilisé pour empêcher les partages, même entre les paquets correspondant à la même entrée de la SPD.
Comme décrit ci-dessous dans la Section 4.4.3, les Sélecteurs peuvent inclure des entrées d'un type différent ("wildcard") et, par conséquent, les Sélecteurs de deux entrées peuvent se superposer (c'est analogue à la superposition apparaissant avec les acces-lists (ACL) ou les entrées de filtrage des paquets dans les routeurs ou firewalls). Ainsi, pour assurer un traitement conforme et prévisible, les entrées de la SPD DOIVENT être ordonnées et la SPD DOIT toujours être parcourue dans le même ordre, de sorte que la première entrée correspondante soit toujours la même (cette condition est nécessaire, de même que le fait de traiter le trafic, et les entrées de la SPD doivent être déterministes, mais on ne peut pas normaliser des entrées de la SPD, étant donné l'utilisation des types différents (wildcards) pour quelques Sélecteurs). On fournit plus de détails la correspondance des paquets et des entrées de la SPD dans la Section 5.
Notons que si ESP est utilisé, soit l'authentification, soit le chiffrement (mais pas les deux) peuvent être supprimé. Par conséquent, il DOIT être possible de configurer la valeur de la SPD concernant les algorithmes d'authentification et de chiffrement comme étant "NULL". Quoiqu'il en soit, au moins un de ces services doit être sélectionné, c'est-à-dire qu'on NE DOIT PAS pouvoir configurer les deux à "NULL".
La SPD peut être employée pour associer un trafic à certains SA ou paquets de SA. Ainsi, elle peut être utilisée comme base de données de référence pour la politique de sécurité et comme point de référence pour les SA (ou paquets de SA) existants (pour faciliter les politiques de rejet ou de passage citées ci-dessus, la SPD DOIT également fournir des moyens d'associer un trafic à ces fonctions, quoique ce ne soit pas, intrinsèquement, du traitement IPsec). La façon dont la SPD fonctionne est différente pour le trafic entrant et sortant. Ceci peut également différer pour un hôte et une passerelle de sécurité, ou pour les implémentations BITS et BITW. Les Sections 5.1 et 5.2 décrivent l'utilisation de la SPD pour le traitement du trafic entrant et sortant.
Etant donné qu'une politique de sécurité peut demander que plus d'une SA soit appliquée dans un ordre précis à un certain trafic, l'entrée de la politique dans la SPD doit conserver ces conditions ordonnées, quand il y en a. Ainsi, il doit être possible pour une implémentation d'IPsec de savoir qu'un paquet entrant ou sortant doit être traité par une suite de SA. Conceptuellement, pour le traitement sortant, on a pourrait imaginer des liens (vers la SAD) à partir d'une entrée de la SPD pour laquelle il y a des SA actifs, et chaque entrée se composerait d'une simple SA ou d'une liste ordonnée de SA qui comportent un paquet de SA 1000 . Quand un paquet est associé à une entrée de la SPD et qu'il y a une SA ou un paquet de SA existant qui peut être utilisé pour transporter le trafic, le traitement du paquet est contrôlé par l'entrée de la SA ou du paquet de SA de la liste. Pour un paquet IPsec entrant ayant plusieurs SA IPsec devant être appliquées, une consultation basée sur l'adresse destination, le protocole IPsec, et le SPI devrait identifier une SA unique.
La SPD est utilisée pour contrôler l'écoulement de l'ENSEMBLE du trafic par un système IPsec, ce qui comprend la sécurité et le trafic de gestion des clés (comme ISAKMP) allant ou venant d'entités se trouvant derrière une passerelle de sécurité. Cela signifie que le trafic ISAKMP doit être explicitement noté dans la SPD, sous peine d'être rejeté. Notez qu'une passerelle de sécurité pourrait interdire la traversée de paquets chiffrés de plusieurs façons, en ayant par exemple une entrée REJET dans la SPD pour les paquets ESP ou en fournissant un échange de clé par proxy. Dans ce dernier cas, le trafic serait routé en interne jusqu'au module de gestion des clefs dans la passerelle de sécurité.
4.4.2 Sélecteurs
Une SA (ou paquet de SA) peut être à grain fin ou à grain grossier, selon les sélecteurs utilisés pour définir l'ensemble du trafic pour SA. Par exemple, tout trafic entre deux hôtes peut être transporté par l'intermédiaire d'une simple SA, et apporter un ensemble uniforme de services de sécurité. Alternativement, le trafic entre deux hôtes pourrait être réparti entre plusieurs SA, selon les applications utilisées (comme défini par les champs Next Protocol et Port), avec différents services de sécurité offerts par différentes SA. De même, tout le trafic entre deux passerelles de sécurité pourrait être transporté par une simple SA, ou une SA pourrait être assignée à chaque paire d'hôtes communicants. Les paramètres suivants de Sélecteurs DOIVENT être supportés pour que la gestion de SA facilite le contrôle de la granularité de la SA. Notez cela dans le cas de la réception d'un paquet ayant un entête ESP, par exemple, à une passerelle de sécurité encapsulante ou dans une implémentation BITW, le protocole de la couche transport, les ports source et destination, et le nom (si il y est) peuvent être "OPAQUES", c.-à-d., inaccessible en raison du chiffrement ou de la fragmentation. Notez également que les adresses source et destination devraient être au format IPv4 ou IPv6.
- Adresse IP destination (IPv4 ou IPv6): ça peut être une adresse IP simple (unicast, anycast, broadcast (IPv4 seulement), ou groupe multicast), un intervalle d'adresses (bornes incluses), une adresse et un masque, ou une adresse de type différent (wildcard). Les trois derniers sont employés pour qu'un système destination puisse partager une même SA (par exemple, derrière une passerelle de sécurité). Notez que ce sélecteur est conceptuellement différent du champ "Adresse IP destination" dans l'ensemble employé pour identifier une SA unique. Quand un paquet tunnelé arrive à l'extrémité du tunnel, son SPI/Adresse Destination/Protocole sont utilisés pour rechercher la SA associ&ea 1000 cute;e au paquet dans la SAD. Cette adresse destination vient de l'entête IP encapsulée. Une fois que le paquet a été traité selon la SA du tunnel et est sorti du tunnel, ses sélecteurs "sont recherchés" dans la SPD d'arrivée. La SPD d'arrivée a un sélecteur appelé adresse destination. Cette adresse IP destination est celle de l'entête IP interne (encapsulé). Dans le cas d'un paquet transporté, il y aura seulement un entête IP donc aucune ambiguïté possible. [REQUIS pour toutes les implémentations]
- Adresse(s) IP source (IPv4 ou IPv6): ça peut être une adresse IP simple (unicast, anycast, broadcast (IPv4 seulement), ou groupe multicast), un intervalle d'adresses (bornes incluses), une adresse et un masque, ou une adresse différente (wildcard). Les trois derniers sont employés que plus d'un système source puissent partager la même SA (par exemple, derrière une passerelle de sécurité ou dans un hôte "multihomed"). [REQUIS pour toutes les implémentations]
- Nom : Il y a deux cas (notez que ces formes de nom sont supportées par DOI d'IPsec).
1. User ID (IDentificateur d'utilisateur)
a. Une chaîne de caractère complète de nom d'utilisateur (DNS), par exemple, mozart@foo.bar.com
b. Un nom particulier X.500, par exemple C = US, SP = MA, O = GTE Internetworking, CN = Stephen T. Kent.
2. Un nom de système (hôte, passerelle de sécurité, etc.)
a. Un nom DNS complet, comme foo.bar.com
b. Un nom particulier X.500
c. Un nom général X.500
Remarque : Une des valeurs possibles de ce sélecteur est "OPAQUE". [REQUIS pour les cas suivants. Notez que le support des formes de nom autres que les adresses n'est pas indispensable pour les SA ajoutées manuellement.
o User ID
- implémentations native des hôtes
- implémentations BITW/BITS considérés comme des HOTES avec un seul utilisateur
- implémentations d'une passerelle de sécurité pour le traitement ENTRANT
o Noms de systèmes -- toutes implémentations]
- Niveau de sensibilité des données : (labels IPSO/CIPSO)
[REQUIS pour tous les systèmes donnant une sécurité au flux d'information comme vu à la Section 8, OPTIONNEL pour les autres systèmes.]
- Protocole de la couche transport : Obtenu à partir du champ "Protocole" IPv4 ou des champs "Next Header" d'IPv6. Il peut s'agir d'un numéro individuel de protocole. Ces champs de paquet peuvent ne pas contenir le protocole de transport à cause des entêtes d'extension IP, comme par exemple, un entête de routage, AH, ESP, de fragmentation, les options de destination, les options de saut-par-saut, etc... Notez que le protocole de transport peut ne pas être disponible en cas de réception d'un paquet ayant un entête ESP. Ainsi, la valeur "OPAQUE" DEVRAIT être supportée. [REQUI 1000 S pour toutes les implémentations]
Remarque : Pour localiser le protocole de transport, un système doit enchaîner les entêtes des paquets en contrôlant le champ "Protocole" ou "Next Header" jusqu'à ce qu'il en rencontre un qu'il reconnaît comme protocole de transport, ou jusqu'à ce qu'il en atteigne un qui n'est pas sur sa liste d'entêtes d'extension, ou jusqu'à ce qu'il rencontre un entête ESP qui rend le protocole de transport opaque.
- Ports source et destination (par exemple, TCP/UDP): Ceux-ci peuvent être de différentes valeurs de ports de UDP ou de TCP ou un port de type différent (wildcard) (l'utilisation du champ "Prochain protocole" ou des champs "Ports source et/ou destination" (en même temps que les champs adresses source et/ou destination), comme sélecteur de SA est quelquefois abordé sous le nom de "session oriented keying"). Notez que les ports source et destination peuvent ne pas être disponibles en cas de réception d'un paquet ayant un entête ESP. Aussi, la valeur "OPAQUE" DEVRAIT être supportée.
Le tableau suivant résume les relations entre la valeur du "Next Header" dans le paquet et la SPD, et la valeur du Sélecteur de Port qui en découle pour la SPD et la SAD.
Next Header Protocole de la couche Valeur dérivée du champ Sélecteur
du paquet transport dans la SPD de Port dans la SPD ou la SAD
----------- ---------------------- ---------------------------------
ESP ESP ou ANY ANY (c.à.d, ne pas le regarder)
-sans importance- ANY ANY (c.à.d, ne pas le regarder)
valeur spécifique Valeur spécifique NOT ANY (c.à.d, passer le paquet)
fragment
valeur spécifique Valeur spécifique Champ Sélecteur de Port actuel
pas fragment
Si le paquet a été fragmenté, l'information de port peut ne pas être disponible dans le fragment traité. Dans ce cas, on jette le fragment. Un PMTU ICMP devrait être envoyé en premier fragment, qui aura l'information de port [PEUT être supporté]
Le contexte d'implémentation IPsec détermine la façon dont les sélecteurs sont utilisés. Par exemple, une implémentation d'hôte au sein de la pile peut se servir d'une interface de "socket". Quand une nouvelle connexion est établie, la SPD peut être consultée et une SA (ou paquet de SA) s'occupe de la socket. Ainsi, le trafic envoyé par l'intermédiaire de cette socket n'a pas besoin de consultations s 1000 upplémentaires des SPD/SAD. En revanche, les implémentations BITS, BITW, ou d'une passerelle de sécurité doit scruter chaque paquet et consulter les SPD/SAD à partir des sélecteurs. Les valeurs autorisées pour les champs Sélecteur diffèrent en fonction du flux de trafic, de l'association de sécurité, et de la politique de sécurité.
Le tableau suivante récapitule les différents types d'entrées nécessaires pour pouvoir être utilisés dans la SPD et la SAD. Il montre comment ils s'associent aux champs dans le trafic de données, étant soumis au criblage d'IPsec. (note: les entrées "sauvages" (wild) ou différentes (wildcard) pour les adresses source et destination comprennent un masque, un intervalle, etc...)
Champ Valeur du trafic Entrée de la SAD Entrée de la SPD
------- ------------- ---------------- --------------------
adr src adr IP unique single,range,wild single,range,wildcard
adr dest adr IP unique single,range,wild single,range,wildcard
prot. xpt* protocole xpt single,wildcard single,wildcard
port src* port src unique single,wildcard single,wildcard
port dest* port dst unique single,wildcard single,wildcard
user id* user id unique single,wildcard single,wildcard
labels sec. valeur unique single,wildcard single,wildcard
* Les entrées SAD et SPD pour ces champs peuvent être "OPAQUE" si la valeur du trafic est chiffrée.
Remarque : En principe, on peut avoir des sélecteurs et/ou des valeurs de sélecteur dans la SPD que l'on ne peut négocier pour une SA ou paquet de SA. Certains exemples pourraient montrer des valeurs de sélecteur employées pour choisir le trafic à jeter ou des listes énumératives qui engendrent la création d'une SA séparée pour chaque élément de la liste. Pour l'instant, ceci est laissé de côté et sera vu dans des futures versions de ce document et la liste de sélecteurs nécessaires et des valeurs de sélecteur est la même pour la SPD et la SAD. Cependant, il est acceptable d'avoir une interface administrative qui supporte l'utilisation des valeurs de sélecteur ne pouvant pas être négociées à condition qu'elles ne trompent pas l'utilisateur en lui faisant croire qu'il crée une SA avec ces valeurs de sélecteur. Par exemple, l'interface peut permettre à l'utilisateur d'indiquer une liste énumérative de valeurs mais cela aurait comme conséquence la création d'une politique et d'une SA séparée pour chaque élément de la liste. Un constructeur pourrait implémenter une telle interface pour que ce soit plus facile pour ses clients, et pour avoir des spécifications claires et précises de la politique.
1000 4.4.3 Base de données d'association de sécurité (SAD, Security Association Database)
Dans chaque implémentation d'IPsec, il y a une base de données nominale d'association de sécurité, dans laquelle chaque entrée définit les paramètres associés à une SA. Chaque SA a une entrée dans la SAD. Pour le traitement sortant, les entrées sont pointées par les entrées de la SPD. Notez que si une entrée de SPD ne pointe pas vers la SA appropriée pour le paquet, l'implémentation crée une SA (ou paquet de SA) appropriée et relie l'entrée de la SPD à l'entrée de la SAD (voir Section 5.1.1). Pour le traitement du trafic entrant, chaque entrée de la SAD est classée par une adresse IP destination, un protocole IPsec, et un SPI. Les paramètres suivants sont associés à chaque entrée de la SAD. Cette description ne prétend pas être une MIB, mais seulement quelques spécifications de données élémentaires minimales et nécessaires au support d'une SA dans une implémentation IPsec.
Pour le traitement entrant : Les champs suivants du paquet sont utilisés pour trouver la SA dans la SAD :
- Adresse IP destination dans l'entête externe : l'adresse de destination IPv4 ou IPv6. [REQUIS pour toutes les implémentations]
- Protocole IPsec : AH ou ESP, utilisé comme index lors de la consultation de la SA dans cette base de données. Indique le protocole IPsec à appliquer au trafic sur cette SA. [REQUIS pour toutes les implémentations]
- SPI : la valeur de 32 bits utilisée pour choisir parmi les différentes SA ayant la même destination et utilisant le même protocole IPsec. [REQUIS pour toutes les implémentations]
Pour chacun des Sélecteurs définis dans la Section 4.2.2, l'entrée de la SA dans la SAD DOIT contenir la ou les valeurs qui ont été négociées quand la SA a été créée. Pour l'émetteur, ces valeurs sont utilisées pour décider si une SA donnée est appropriée pour traiter un paquet sortant. Cela fait partie de la vérification permettant de voir s'il y a une SA existante qui peut être utilisée. Pour le récepteur, ces valeurs sont utilisées pour vérifier que les valeurs de sélecteurs dans un paquet entrant correspondent celles de la SA (et donc indirectement, celles de la police correspondante). Pour le récepteur, cela fait partie de la vérification permettant de s'assurer que la SA est appropriée pour ce paquet (voir Section 4.4.2 pour les messages ICMP). Ces champs peuvent être sous la forme de valeurs spécifiques, d'intervalles, de types différents(wildcards), ou "OPAQUE" comme décrit dans la section 4.4.2, "Les Sélecteurs". Notez que pour une SA de ESP, l'algorithme de chiffrement ou d'authentification peut être "NULL". Quoiqu'il en soit, ils ne peuvent pas tous les deux être "NULL".
Les champs suivants de la SAD sont utilisés pour le traitement IPsec :
- Compteur de numéro de séquence (SNC, Sequence Number Counter) : une valeur sur 32 bits utilisée pour générer le champ Numéro de Séquence (Sequence Number) dans les entêtes AH ou ESP. [REQUIS pour toutes les impl&eacu 1000 te;mentations, mais utilisé uniquement pour le trafic sortant]
- Débordement du compteur de séquence (Sequence Counter Overflow : un flag indiquant si le débordement du compteur de numéro de séquence devrait générer un événement notable et empêcher la transmission d'autres paquets sur cette SA. [REQUIS pour toutes les implémentations, mais utilisé uniquement pour le trafic sortant]
- Fenêtre anti-rejeu : un compteur sur 32 bits et une carte des bits (bit-map)(ou équivalent) utilisé pour déterminer si un paquet AH ou ESP entrant est un rejeu. [REQUIS pour toutes les implémentations, mais utilisé uniquement pour le trafic entrant. Remarque : Si l'anti-rejeu a été désactivé par le récepteur, comme par exemple, en cas d'une SA entrée manuellement, alors la fenêtre anti-rejeu n'est pas utilisée]
- Algorithme d'authentification d'AH, clefs, etc. [REQUIS pour l'implémentation d'AH]
- Algorithme de chiffrement d'ESP, clefs, mode IV, IV, etc. [REQUIS pour l'implémentation d'ESP]
- Algorithme d'authentification d'ESP, clefs, etc. Si le service d'authentification n'est pas sélectionné, ce champ sera nul. [REQUIS pour l'implémentation d'ESP]
- Durée de vie de cette Association de Sécurité : un intervalle de temps après lequel une SA doit être remplacée par une nouvelle SA (et un nouveau SPI) ou être supprimée, ainsi qu'une indication sur laquelle de ces actions devrait survenir. Cela pourrait être exprimé comme un temps ou un compteur d'octet, ou une utilisation simultanée des deux, la première durée de vie expirant prenant le dessus. Une implémentation conforme DOIT supporter ces deux types de durée de vie, et doit supporter une utilisation simultanée des deux. Si le temps est utilisé, et si IKE utilise les certificats X.509 pour l'établissement des SA, la durée de vie de la SA doit être restreinte à l'intervalle de validité du certificat et à la NextIssueDate (prochaine date importante) des CRLs utilisés dans l'échange IKE pour la SA. A la fois l'initiateur et le répondeur sont responsable de la restriction de la durée de vie de la SA de cette façon. [REQUIS pour toutes les implémentations].
Remarque : les détails de la façon dont les clefs sont rafraîchies quand les SA expirent est un problème local. Cependant, une approche raisonnable est :
(a) Si un compteur d'octets est utilisé, alors l'implémentation DEVRAIT compter le nombre d'octets auxquels IPsec est appliqué. Pour ESP, c'est l'algorithme de chiffrement (en incluant le chiffrement Null) et pour AH, c'est l'algorithme d'authentification. Ceci inclut les bits de bourrage, etc. Notez que les implémentations DEVRAIENT pouvoir utiliser le fait d'avoir des compteurs désynchronisés entre eux aux extrémités d'une SA, par exemple, à cause la perte d'un paquet ou parce que les implémentations à chaque extrémité de la SA ne font pas les choses de la même façon.
(b) Il DEVRAIT y avoir deux types de durée de vie -- une durée de vie logicielle, qui avertit l'implémentation qu'il faut initier une action comme le remplacement d'une SA et un durée de vie matérielle 1000 quand la SA actuelle se termine.
(c) Si le paquet complet n'est pas délivré pendant la durée de vie des SA, le paquet DEVRAIT être jeté.
- Le mode du protocole IPsec : tunnel, transport, ou différent (wildcard). Indique le mode AH ou ESP qui est appliqué au trafic de cette SA. Notez que si ce champ est "wildcard" à l'extrémité émettrice de la SA, alors l'application doit spécifier le mode à l'implémentation IPsec. Cette utilisation de wildcard autorise l'utilisation d'une même SA pour un trafic en mode tunnel ou transport, par unité de paquet, comme, par exemple, par différentes sockets. Le récepteur n'a pas besoin de connaître le mode pour traiter correctement l'entête des paquets Ipsec. [REQUIS comme suit, est sinon implicitement défini par le contexte :
- Les implémentations d'hôtes doivent supporter tous les modes.
- Les implémentations de passerelles doivent supporter le mode tunnel].
Remarque : L'utilisation de wildcard pour le mode du protocole d'une SA entrante peut rendre plus complexe la situation dans le récepteur (hôte seulement). Etant doné que les paquets sur une telle SA peuvent être délivrés en mode tunnel ou transport, la sécurité d'un paquet entrant peut dépendre en partie du mode utilisé pour le délivrer. Par conséquent, si une application s'occupe du mode de la SA pour un paquet donné, alors l'application nécessitera un mécanisme pour obtenir cette information de mode.
- Path MTU : toutes les variables path MTU observées et "vielles" (aging). Voir la section 6.1.2.4 [REQUIS pour toutes les implémentations mais utilisé uniquement pour le trafic sortant].
4.5 Combinaisons de base d'Associations de Sécurité
Cette section décrit quatre exemples de combinaisons d'Associations de Sécurité qui DOIVENT être supportées par les hôtes ou les passerelles de sécurité conforme à IPsec. Des combinaisons AH et/ou ESP en mode tunnel et/ou transport supplémentaires PEUVENT être supportés à la discrétion de celui qui fait l'implémentation. Les implémentations conformes DOIVENT être capable de produire ces quatre combinaisons et à la réception, de les traiter, mais DEVRAIENT pouvoir recevoir et traiter n'importe quelle combinaison. Les diagrammes et le texte ci-dessous décrivent les cas de base. La légende des diagrammes est :
==== = une ou plusieurs SA (AH ou ESP, tunnel ou transport)
---- = connectivité (ou, s'il est appelé ainsi, borne administrative)
Hx = hôte x
SGx = passerelle de sécurité x
X* = X supporte IPsec
Les SA suivantes peuvent être AH ou ESP. Le mode (tunnel ou transport) est déterminé par la nature des extrémités. Pour l 1000 es SA d'hôte-à-hôte, le mode peut être soit tunnel, soit transport.
Cas 1. Le cas où on apporte une sécurité de bout en bout entre deux hôtes à travers Internet (ou un intranet).
====================================
| |
H1* ------ (Inter/Intranet) ------ H2*
Notez que soit le mode tunnel, soit le mode transport peut être activé par les hôtes. Donc les entêtes d'un paquet entre H1 et H2 peut ressembler à n'importe lequel des suivants :
Transport Tunnel
----------------- ---------------------
1. [IP1][AH][supérieur] 4. [IP2][AH][IP1][supérieur]
2. [IP1][ESP][ supérieur] 5. [IP2][ESP][IP1][supérieur]
3. [IP1][AH][ESP][ supérieur]
Notez qu'il n'y a aucune condition sur le support de l'emboîtement, mais en mode transport, AH et ESP peuvent être appliqués au paquet. Dans ce cas, le procédé d'établissement de la SA DOIT s'assurer que d'abord ESP, puis AH sont appliqués au paquet.
Cas 2. Ce cas illustre le support d'un simple VPN (Virtual Private Network).
===========================
| |
---------------------|---- ---|-----------------------
| | | | | |
| H1 -- (Local --- SG1* |--- (Internet) ---| SG2* --- (Local --- H2 |
| Intranet) | | Intranet) |
-------------------------- ---------------------------
borne administrative borne administrative
Seul le mode tunnel est requis ici. Donc les entêtes d'un paquet entre SG1 et SG2 peuvent ressembler à n'importe laquelle des formes suivantes :
Tunnel
---------------------
4. [IP2][AH][IP1][supérieur]
5. [IP2][ESP][IP1][supérieur]
Cas 3. Ce cas combine les cas 1 et 2, en ajoutant une sécurité de bout en bout entre l'hôte émetteur et l'hôte récepteur. Il n'impose aucune nouvelles conditions sur les hôtes ou les passerelles de sécurité, autre que la nécessité pour la passerelle de sécurité d'être configurable pour laisser passer le trafic IPsec (dont le trafic ISAKMP) pour les hôtes qui sont derrière elle.
===============================================================
| |
| ========================= |
| | | |
---|-----------------|---- ---|-------------------|---
| | &n 1000 bsp; | | | | | |
| H1* -- (Local --- SG1* |-- (Internet) --| SG2* --- (Local --- H2* |
| Intranet) | | Intranet) |
-------------------------- ---------------------------
borne administrative borne administrative
Cas 4. Ce cas couvre la situation où l'hôte distant (H1) utilise Internet pour atteindre le firewall d'une organisation (SG2) pour accéder ensuite à un serveur quelconque ou à toute autre machine (H2). L'hôte distant pourrait être un hôte mobile (H1) se connectant à un serveur local PPP/ARA (non montré) sur l'Internet et traversant ensuite Internet jusqu'au firewall central de l'organisation (SG2), etc... Les détails du support de ce cas, (comment H1 localise SG2, l'authentifie, et vérifie son autorisation pour représenter H2) sont vus dans la section 4.6.3 "Localiser une passerelle de sécurité".
======================================================
| |
|============================== |
|| | |
|| ---|----------------------|---
|| | | | |
H1* ----- (Internet) ------| SG2* ---- (Local ----- H2* |
^ | Intranet) |
| ------------------------------
peut-être une connexion borne administrative
au serveur PPP/ARA (optionnelle)
Seul le mode tunnel est demandé entre H1 et SG2. Donc les choix de la SA entre H1 et SG2 serait une de celles du cas 2. Les choix pour la SA entre H1 et H2 serait une de celles du cas 1.
Notez que dans ce cas, l'émetteur DOIT appliquer l'entête de transport avant l'entête du tunnel. Par conséquent, l'interface de gestion de l'implémentation d'IPsec DOIT offrir la possibilité de configurer la SPD et la SAD pour assurer cet ordre dans l'application de l'entête IPsec.
Comme vu précédemment, le support de combinaisons AH et ESP supplémentaires est optionnel. L'utilisation d'autres combinaisons optionnelles peut compromettre l'interopérabilité.
4.6 SA et gestion des clefs
Les mandats IPsec supporte les SA manuelle et automatisée, ainsi que la gestion des clefs de cryptographie. Les protocoles IPsec, AH et ESP, sont en grande partie indépendants des techniques de gestion des SA associées, bien que les techniques impliquées affectent certains des services de sécurité offerts par ces protocoles. Par exemple, l'anti-rejeu disponible pour AH et ESP exige la gestion automatisée des SA. D'ailleurs, la granularité de la distribution de clefs utilisée avec IPsec détermine la granularité de l'authentification fournie (voir également la discussion de ce point dans la section 4.7.). En général, l'authentification de l'origine de données dans AH et ESP est limitée par la taille des secrets utilisés avec l'algorithme d'authentification (ou avec un protocole de gestion des clefs qui crée ces secrets) qui sont partagés entre plusieurs sources possibles.
Le texte suivant décrit les conditions minimum pour les deux types de gestion des SA.
4.6.1 Techniques manuelles
La forme la plus simple de gestion est la gestion manuelle, dans laquelle une personne configure manuellement chaque système avec des données de gestion des Associations de Sécurité et de matériel de base concernant la transmission sécurisée avec d'autres systèmes. Les techniques manuelles sont pratiques dans des environnements petits et statiques mais elles ne s'étendent pas bien entre elles. Par exemple, une société pourrait créer un réseau privé virtuel (VPN) utilisant IPsec dans des passerelles de sécurité sur plusieurs sites. Si le nombre de sites est petit 1000 , et puisque tous les sites relèvent de la portée d'un seul domaine d'administration, c'est un contexte où il est faisable d'utiliser des techniques de gestion manuelles. Dans ce cas, la passerelle de sécurité pourrait, de façon sélective, protéger le trafic en provenance ou à destination d'autres sites de l'organisation en utilisant une clé configurée manuellement, sans protéger le trafic vers d'autres destinations. Cela peut également s'avérer utile quand seule une partie sélectionnée des communications doivent être sécurisées. Un argument similaire peut s'appliquer pour l'utilisation complète d'IPsec au sein d'une organisation pour un nombre restreint d'hôtes et/ou de passerelles. Les techniques manuelles de gestion utilisent souvent des clefs symétriques configurées statiquement, bien qu'ils existent d'autres possibilités.
4.6.2 Les SA automatisées et la gestion des clefs
Le déploiement et l'utilisation massive d'IPsec exige un protocole de gestion des SA standard sur Internet, extensible et automatisé. Un tel support est exigé pour faciliter l'utilisation des dispositifs d'anti-rejeu de AH et d'ESP, et pour faciliter la création des SA sur demande, par exemple, pour l'introduction d'utilisateurs et de sessions (notez que la notion de "réintroduction" d'une SA implique réellement la création d'une nouvelle SA avec un nouveau SPI, processus qui implique généralement l'utilisation d'un protocole automatisé de gestion de SA et de clefs).
Le protocole de gestion automatisée des clefs choisi par défaut pour IPsec est IKE [MSST97, Orm97, HC98] dans son interprétation IPsec [Pip98]. D'autres protocoles de gestion automatique de SA PEUVENT être utilisés.
Quand un protocole de gestion automatisée de SA/clefs est utilisé, ce qui sort de ce protocole peut être utilisé pour générer plusieurs clefs, comme par exemple, pour une SA ESP simple. Cela peut arriver parce que :
- L'algorithme de chiffrement utilise plusieurs clefs (exemple, triple DES)
- L'algorithme d'authentification utilise plusieurs clefs
- Les algorithmes de chiffrement et d'authentification sont tous deux utilisés
Le système de gestion des clefs peut fournir une suite de bits séparée pour chaque clé ou il peut générer une suite de bits à partir desquels toutes sont extraites. Si une simple suite de bits est fournie, il faut prendre beaucoup de soin pour s'assurer que les parties du système qui donnent cette suite de bits aux clés nécessaires le font de la même façon aux deux extrémités de la SA. Pour s'assurer que les implémentations d'IPsec situées à chaque extrémité de la SA utilisent les mêmes bits pour les mêmes clés, et indépendamment de la partie du système qui divise la suite de bits en différentes clés, la ou les clefs de chiffrement DOIVENT être prises à partir des premiers bits (les bits de poids forts à gauche) et la ou les clefs d'authentification DOIVENT être prises à partir des bits restants. Le nombre de bits pour chaque clé est défini dans la RFC donnant les spécifications de l'algorithme. Dans le cas où il y a plusieurs clefs de chiffrement ou d'authentification, 1000 les spécifications de l'algorithme doivent indiquer l'ordre dans lequel elles doivent être choisies dans la simple suite de bits fournie à l'algorithme.
4.6.3 Localiser une passerelle de sécurité
Cette section étudie les solutions concernant la façon dont un hôte se renseigne sur l'existence des passerelles de sécurité appropriées et une fois qu'un hôte est entré en contact avec ces passerelles de sécurité, comment sait-il que ce sont des passerelles de sécurité correctes. Les détails sur l'endroit où sont stockées les informations nécessaires relèvent d'un problème local.
Considérons la situation où un hôte distant (H1) utilise Internet pour accéder à un serveur ou à une autre machine (H2), et où il y a une passerelle de sécurité (SG2), comme par exemple un firewall, par lequel le trafic de H1 doit passer. Un exemple pour cette situation serait un hôte mobile passant à travers Internet jusqu'au firewall central de l'organisation (SG2) (voir le cas 4 des combinaisons de base des SA, dans la section 4.5). Cette situation soulève plusieurs questions :
1. Comment H1 connaît ou apprend l'existence de la passerelle de sécurité SG2?
2. Comment authentifie-t-il SG2, et une fois qu'il l'a authentifié, comment est-il sûr que SG2 est autorisé à représenter H2?
3. Comment SG2 authentifie-t-il H1 et vérifie que H1 est autorisé à contacter H2?
4. Comment H1 sait ou apprend quelles sont les passerelles de sauvegarde donnant une alternative d'accès à H2?
Pour résoudre ces problèmes, un hôte ou passerelle de sécurité DOIT avoir une interface d'administration qui permet à l'utilisateur ou l'administrateur de configurer l'adresse d'une passerelle de sécurité pour toutes les adresses destination qui l'utilisent. Cela comprend la possibilité de configurer :
- l'information requise pour localiser et authentifier la passerelle de sécurité et vérifier son droit à représenter l'hôte destination.
- l'information requise pour localiser et authentifier toutes les passerelles de sauvegarde et vérifier leur droit à représenter l'hôte destination.
On suppose que la SPD est également configurée avec l'information de la politique qui couvre toutes les autres conditions d'IPsec pour avoir accès à la passerelle de sécurité et à l'hôte destination.
Ce document ne s'intéresse pas aux solutions d'automatisation de la découverte ou vérification des passerelles de sécurité.
4.7 Les Associations de sécurité et le multicast
L'orientation "récepteur" de l'Association de Sécurité implique, dans le cas d'un trafic unicast, que normalement, le système destination choisit la valeur du SPI. Si la destination choisit la valeur du SPI, il est impossible, pour que les associations de sécurité configurées manuellement (par exem 1000 ple, par un protocole de gestion de clés), d'être en conflit avec des associations de sécurité configurées automatiquement ou pour des associations de sécurité ayant plusieurs sources d'être en conflit entre elles. Pour le trafic multicast, il y a plusieurs systèmes destination par groupe multicast. Donc, un système ou une personne devra se charger de la coordination parmi tous les groupes multicast afin de choisir un SPI ou des SPIs au nom de chaque groupe multicast, puis pour communiquer l'information IPsec du groupe à tous les membres légitimes de ce groupe multicast, par l'intermédiaire de mécanismes non définis ici.
Les multiples émetteurs vers un groupe de multicast DEVRAIENT utiliser une association de sécurité simple (et par conséquent, incrémenter le SPI) pour l'ensemble du trafic à destination de ce groupe quand un algorithme de chiffrement à clé symétrique ou d'authentification est utilisé. Dans de telles circonstances, le récepteur sait seulement que le message est venu d'un système possédant la clé de ce groupe multicast. Dans de telles circonstances, un récepteur ne pourra généralement pas authentifier le système ayant envoyé le trafic multicast. Les spécifications sur d'autres cas plus généraux ayant trait au multicast sont reportées aux futurs documents IPsec.
Lorsque ces spécifications ont été éditées, les protocoles automatisés pour la distribution de clefs multicast n'ont pas été considérés suffisamment mûrs pour leur standardisation. Pour les groupes multicast ayant relativement peu de membres, une distribution manuelle des clefs ou l'utilisation multiple d'algorithmes existants de distribution de clefs unicast tels que Diffie-Hellman modifié semble possible. Pour les groupes importants, de nouvelles techniques "scalable" seront nécessaires. Un exemple de travail actuel dans ce domaine est le Group Key Management Protocol (GKMP) [HM97].
5. Traitement du trafic IP
Comme mentionné dans la Section 4.4.1 "La base de données de la politique de sécurité (SPD, Security Policy Database), la SPD doit être consultée pendant le traitement de tout trafic (ENTRANT et SORTANT), ce qui comprend le trafic non-IP. Si aucune politique correspondant à ce paquet (soit entrant, soit sortant) n'est trouvée dans la SPD, le paquet DOIT être jeté.
Remarque : Tous les algorithmes de cryptographie utilisés dans IPsec sont supposés avoir en entrée "in canonical network byte order" (voir Annexe de la RFC 791) et génèrent à la sortie "in canonical network byte order". Les paquets IP sont également transmis "in network byte order".
5.1 Traitement du trafic IP sortant
5.1.1 Choisir et utiliser une SA ou un paquet de SA
Dans une passerelle de sécurité ou une implémentation BITW (et dans beaucoup d'implémentations BITS), chaque paquet sortant est comparé avec la SPD pour déterminer le traitement exigé pour ce paquet. Si le paquet doit être jeté, c'est un événement auditable. Si on permet au le trafic de passer le traitement IPsec, le paquet suit ensuite le traitement "normal" de l'environnement dans lequel le traitement IPsec 1000 a lieu. Si le traitement IPsec est requis, le paquet est attaché à une SA (ou paquet de SA) existante, ou une nouvelle SA (ou paquet de SA) est créé pour ce paquet. Puisque les Sélecteurs d'un paquet pourraient correspondre à plusieurs politiques ou plusieurs SA existantes, et puisque la SPD est ordonnée, contrairement à la SAD, IPsec DOIT:
1. Faire correspondre le champ Sélecteur de paquet aux politiques sortantes dans la SPD pour localiser la première politique appropriée, qui pointera vers aucune ou plus SA dans la SAD.
2. Faire correspondre le champ Sélecteur de paquet à ceux du paquet de SA trouvé en (1) pour localiser le premier paquet de SA qui correspond. Si aucune SA n'a été trouvée ou qu'aucune ne correspond, il faut créer un paquet de SA appropriée et lier l'entrée de la SPD à l'entrée de la SAD. Si aucune entité de gestion de clefs n'est trouvée, on abandonne le paquet.
3. Utiliser le paquet de SA trouvé ou créé en (2) pour appliqué le traitement IPsec requis, comme par exemple, l'authentification et le chiffrement.
Dans une implémentation d'hôte IPsec basée sur les sockets, la SPD sera consultée à chaque fois qu'une nouvelle socket est créée, pour déterminer le traitement IPsec, s'il y en a un, à appliquer au trafic qui transitera par cette socket.
Remarque : Une implémentation conforme NE DOIT PAS autoriser l'instanciation d'une SA ESP qui utilise à la fois des algorithmes de chiffrement et d'authentification NULL. Le fait de négocier une telle SA est un évenèment auditable.
5.1.2 Construction de l'entête en mode tunnel
Cette section décrit comment manipuler les entêtes IP internes et externes, les entêtes d'extension, et les options des tunnels AH et ESP des tunnels. Ceci inclut la façon de construire l'entête (externe) IP encapsulé, la façon de manipuler les champs de l'entête IP interne, et d'autres manipulations à effectuer. L'idée générale est modelée d'après celle utilisée dans la RFC 2003, "IP Encapsulation with IP":
- Les adresses source et destination de l'entête IP externe identifient les "extrémités" du tunnel (l'encapsulateur et le décapsulateur). Les adresses source et destination de l'entête IP interne identifient l'émetteur et le récepteur originaux du datagramme (à l'origine du tunnel), respectivement (voir les remarques suivants le tableau en 5.1.2.1 pour plus de détails sur l'adresse IP source encapsulée.
- L'entête IP interne n'est pas modifiée, sauf pour décrémenter le TTL comme noté plus bas, et reste inchangée jusqu'à ce qu'elle soit délivrée à la sortie du tunnel.
- Aucun changement n'intervient dans les options IP ou dans les entêtes d'extension de l'entête interne pendant l'acheminement du datagramme encapsulé à travers le tunnel.
- Si besoin, d'autres entêtes de protocole comme l'entête d'authentification IP peuvent être insérés entre l'entête IP externe et l'entête IP interne.
Les tableaux des sous-sections suivantes montre la manipulation à effectuer sur les champs des différents entêtes ou options (construit = la valeur du champ externe est construit indépendamment de la valeur en interne).
5.1.2.1 IPv4 -- Construction de l'entête en le mode tunnel
<---- Lien en entête interne et externe ---->
Entête externe Entête interne
IPv4 de l'encapsulateur du décapsulateur
Champs d'entête: -------------------- -----------------
version 4 (1) pas de changement
longueur d'entête construit pas de changement
TOS copié de l'interne (5) pas de changement
longueur totale construit pas de changement
ID construit pas de changement
flags (DF,MF) construit, DF (4) pas de changement
fragment offset construit pas de changement
TTL construit (2) décrément (2)
protocole AH, ESP, entête de routage pas de changement
checksum construit 1000 construit (2)
adresse source construit (3) pas de changement
adresse dest construit (3) pas de changement
Options jamais copiées pas de changement
1 - La version IP dans l'entête d'encapsulation peut être différente de la valeur dans l'entête interne.
2 - Le TTL de l'entête interne est décrémenté par l'encapsulateur avant l'expédition et par le décapsulateur s'il fait suivre le paquet (le checksum change quand TTL change).
Remarque : Décrémenter le TTL est une des actions habituelles lors de l'expédition d'un paquet. Les paquets provenant du même noeud que l'encapsulateur n'ont pas leur TTL décrémenté, car le noeud émetteur est à l'origine du paquet plutôt qu'il ne le fait suivre.
3 - Les adresse source et destination dépendent de la SA, qui est utilisée pour déterminer l'adresse destination afin de déterminer quelle adresse source (interface réseau) est utilisée pour faire suivre le paquet.
Remarque : En principe, l'adresse IP source d'encapsulation peut être n'importe laquelle des adresses d'interface d'encapsulateur ou même une adresse différente de n'importe quelle adresse IP d'encapsulateur, (par exemple, si elle agit en tant qu'appareil faisant du NAT) à condition que l'adresse soit accessible par l'encapsulateur à partir de l'environnement dans lequel le paquet est envoyé. Ceci ne pose pas de problème parce qu'IPsec n'a actuellement aucune condition de traitement D'ARRIVÉE qui implique l'adresse source de l'entête IP d'encapsulation. Ainsi, tandis que l'extrémité réceptrice du tunnel regarde l'adresse destination dans l'entête IP d'encapsulation, il regarde seulement l'adresse source dans l'entête IP (encapsulé) interne.
4 - La configuration détermine s'il faut copier l'entête interne (uniquement pour IPv4), l'effacer ou mettre le DF.
5 - Si l'entête interne est IPv4 (Protocole = 4), on copie le TOS. Si l'entête interne est IPv6 (Protocole = 41), on associe le Class au TOS.
5.1.2.2 IPv6 -- Construction de l'entête en mode tunnel
Voir la section précédente 5.1.2 pour les notes 1 à 5 indiquées entre parenthèses.
<---- Lien en entête interne et externe ---->
Entête externe Entête intern 1000 e
IPv6 de l'encapsulateur du décapsulateur
Champs d'entête: -------------------- -----------------
version 6 (1) pas de changement
class copiée ou configurée (6) pas de changement
flow id copiée ou configurée pas de changement
longueur construit pas de changement
next header AH, ESP, entête de routage pas de changement
hop limit construit (2) décrément (2)
adresse source construit (3) pas de changement
adresse dest construit (3) pas de changement
Entêtes d'extension jamais copiés pas de changement
6 - Si l'entête interne est IPv6 (Next Header = 41), on copie le Class. Si l'entête interne est IPv4 (Next Header = 4), on associe le TOS au Class.
5.2 Traitement du trafic IP entrant
Avant d'exécuter le traitement AH ou ESP, tous les fragments IP sont rassemblés. Chaque datagramme IP entrant auquel le traitement IPsec sera appliqué est identifié par la valeur de AH ou ESP du champ Next Header du protocole IP (ou de AH ou ESP comme entête d'extension dans IPv6).
Remarque : L'annexe C contient l'exemple du code pour le contrôle du bitmask pour une fenêtre de 32 paquets qui peut être utilisé pour mettre en application le service d'anti-rejeu.
5.2.1 Choisir et utiliser une SA ou un paquet de SA
Faire correspondre un datagramme IP à la SA appropriée est simplifié grâce au SPI dans l'entête AH ou ESP. Notez que les vérifica 1000 tions du sélecteur (selector checks) sont fait sur les entêtes internes, et non sur les entêtes externes (tunnels). Les étapes à suivre sont :
1 - Utiliser l'adresse destination du paquet (entête IP externe), le protocole IPsec, et le SPI pour trouver la SA dans la SAD. Si la recherche de la SA échoue, jeter le paquet et rapporter (et loguer) l'erreur.
2 - Utilisez la SA trouvée en (1) pour effectuer le traitement IPsec, par exemple, authentifiez et déchiffrez. Cette étape inclut le fait de faire correspondre les sélecteurs du paquet (entête interne en cas de tunnel) aux sélecteurs de la SA. La politique locale détermine la spécificité des sélecteurs de la SA (valeur, liste, intervalle, wildcard simples). En général, l'adresse source d'un paquet DOIT correspondre à la valeur du sélecteur de la SA. Cependant, un paquet ICMP reçu sur une SA en mode tunnel peut avoir une adresse source autre que les valeurs limites de la SA et de tels paquets devraient être autorisés comme des exceptions à ce contrôle. Pour un paquet ICMP, les sélecteurs du paquet incluant le problème (les adresses source et destination et les ports devraient être permutés) devraient être comparés avec les sélecteurs de la SA. Notez que quelques ou tous les sélecteurs peuvent être inaccessibles en raison des limitations sur combien de bits du paquet posant problème le paquet ICMP est autorisé à porter ou en raison du chiffrement. Voir La Section 6.
Faire (1) et (2) pour chaque entête IPsec jusqu'à ce qu'un entête de protocole de transport ou un entête IP n'étant PAS pour ce système soit rencontré. Garder une trace des SA utilisées et de l'ordre dans lequel elles sont appliquées.
3 - Trouvez une politique entrante dans la SPD qui correspond au paquet. Cela peut être fait, par exemple, par l'utilisation de pointeurs inversés (backpointers) de la SA vers la SPD, ou en faisant correspondre les sélecteurs du paquet (entête interne en cas de tunnel) avec ceux des entrées de politique dans la SPD.
4 - Vérifiez si le traitement IPsec requis a été appliqué, c'est-à-dire vérifiez que la SA trouvée en (1) et (2) correspond au type et à l'ordre des SA requises par la politique trouvée en (3).
Remarque : La politique correcte "correspondante" ne sera pas forcement la première politique entrante trouvée. Si la vérification du (4) échoue, les étapes (3) et (4) sont répétées jusqu'à ce que toutes les entrées de politique aient été vérifiées ou jusqu'à ce que la vérification soit un succès.
À la fin de ces étapes, passez le paquet résultant à la couche transport ou expédiez le paquet. Notez que tous les entêtes IPsec traités dans ces étapes peuvent avoir été effacés, mais que cette information, c.-à-d., quelles SAs ont été utilisés et dans quel ordre elles sont appliquées, peut être nécessaire pour un traitement IPsec ultérieur ou pour un traitement par un firewall.
Notez que dans le cas d'une passerelle de sécurité, si l'expédition entraine la sortie d'un paquet par une interface IPsec, alors un traitement IPs 1000 ec supplémentaire peut être appliqué.
5.2.2 Manipulation des tunnels AH et ESP
La manipulation des entêtes IP interne et externe, des entêtes d'extension et, des options pour les tunnels AH et ESP devraient être réalisée comme décrit dans les tableaux de la Section 5.1.
6. La traitement d'ICMP (en relation avec IPsec)
Le but de cette section est la manipulation des messages d'erreur ICMP. Le reste du trafic ICMP, comme l'Echo/Reply, devrait être traité comme tous les autres flux et peut être protégé sur la base du end-to-end utilisant des SA de façon classique.
Un message d'erreur ICMP protégé par AH ou ESP et produit par un routeur DEVRAIT être traité et expédié par une SA en mode tunnel. La politique locale détermine si elle est soumise aux contrôles de l'adresse source par le routeur à l'extrémité sortante du tunnel. Notez que si le routeur à l'extrémité entrante du tunnel fait suivre le message d'erreur ICMP d'un autre routeur, le contrôle de l'adresse source échouerait. Un message ICMP protégé par AOH ou ESP et produit par un routeur NE DOIT PAS être expédié par une SA en mode transport (à moins que la SA n'ait été établie jusqu'au routeur en tant qu'hôte, comme par exemple, une connexion Telnet employée pour contrôler un routeur). Un message ICMP produit par un hôte DEVRAIT être comparé avec les sélecteurs de l'adresse IP source liés à la SA à laquelle le message arrive. Notez que même si la source du message d'erreur ICMP est authentifiée, l'entête IP retourné pourrait être incorrect. En conséquence, les valeurs de sélecteur dans l'entête IP DEVRAIENT également être vérifiées pour être sûres qu'elles sont conformes aux sélecteurs de la SA par laquelle le message ICMP a été reçu.
Le tableau de l'annexe D caractérisent les messages ICMP comme étant soit produit par l'hôte, soit par le routeur, soit par les deux, ou inconnu/non-assigné. Les messages ICMP entrant dans les deux dernières catégories devraient être manipulés comme déterminés par la politique du récepteur.
Un message ICMP non protégé par AH ou ESP est non-authentifié et son traitement et/ou son expédition peuvent avoir comme conséquence le déni de service. Ceci suggère que, en général, il soit souhaitable d'ignorer de tels messages. Cependant, on s'attend à ce que beaucoup de routeurs (contrairement aux passerelles de sécurité) n'implémentent pas IPsec pour le trafic transitant et une adhérence stricte à cette règle causeraient le rejet de nombreux messages ICMP. Le résultat serait que quelques fonctions critiques d'IP seraient détruites, comme par exemple, la redirection et le traitement des PMTU. Ainsi, il DOIT être possible de configurer une implémentation IPsec pour recevoir ou rejeter (routeur) le trafic ICMP selon la politique locale de sécurité.
Le reste de cette section s'intéresse à comment le traitement des PMTU DOIT être exécuté par les hôtes et les passerelles de sécuri 1000 té. Il s'occupe du traitement des messages PMTU ICMP authentifiés et non-authentifiés. Cependant, comme noté ci-dessus, les messages ICMP non-authentifiés PEUVENT être jeté sur la base de la politique locale.
6.1 Traitement des PMTU/DF
6.1.1 Bit DF
Dans les cas où un système (hôte ou passerelle) ajoute un entête d' encapsulation (tunnel ESP ou AH), il DOIT supporter l'option de copie du bit de DF du paquet initial à l'entête d'encapsulation (et le traitement des messages PMTU ICMP). Ceci signifie qu'il DOIT être possible de configurer le traitement système du bit DF (positionnement, effacement, copie à partir de l'entête encapsulé) pour chaque interface. (voir l'annexe B pour le raisonnement.)
6.1.2 Path MTU Discovery (PMTU)
Cette section discute de la manipulation IPsec pour les messages Path MTU Discovery. le PMTU ICMP est utilisé ici pour référencer un message ICMP pour :
IPv4 (RFC 792):
- Type = 3 (Destination injoignable)
- Code = 4 (Besoin de fragmentation et de positionnement du DF)
- Next-Hop MTU dans les 16 bits faibles du deuxième mot de l'entête ICMP (appelé "unused" dans la RFC 792), avec les 16 bits de poids forts à zéro.
IPv6 (RFC 1885):
- Type = 2 (Paquet trop large)
- Code = 0 (Besoin de fragmentation)
- Next-Hop MTU dans le champ de 32 bits du MTU du message ICMP6
6.1.2.1 Propagation du PMTU
La quantité d'information retournée avec le message PMTU ICMP (IPv4 ou IPv6) est limitée et ceci affecte quels sélecteurs sont disponibles pour l'utilisation de la propagation avancée de l'information du PMTU. (voir l'annexe B pour une discussion plus détaillée de ce sujet.)
- Le message PMTU avec 64 bits d'entête IPsec -- Si le message PMTU ICMP contient seulment 64 bits d'entête IPsec (minimum pour IPv4), alors une passerelle de sécurité DOIT supporter les options suivantes pour la base SPI/SA:
a. Si l'hôte d'origine peut être déterminé (ou si les sources possibles en nombre gérable), envoyer l'information PM à tous les hôtes d'origine possibles.
b. Si l'hôte d'origine ne peut être déterminé, stocker le PMTU avec la SA et attendre que le ou les paquets suivants arrivent de l'hôte d'origine pour la SA concernée. Si le ou les paquets sont plus importants que le PMTU, jeter le ou les paquets, et faire un ou des messages PMTU ICMP avec le ou les nouveaux paquets et le PMTU mis-à-jour, et envoyer le ou les messages ICMP concernant le problème à l'hôte d'origine. Garder l'information du PMTU pour tout message pouvant arriver par la suite (voir Section 6.1.2.4, "PMTU Aging").
- Message PMTU avec plus de 64 bits d'entête IPsec -- Si le message ICMP contient plus d'information du paquet initial, alors il peut y avoir assez d'informa 1000 tion non-opaque pour déterminer immédiatement à quel hôte propager le message PMTU ICMP et pour fournir à ce système les 5 champs (adresse source, adresse destination, port source, port destination, protocole de transport) requis pour déterminer où stocker ou mettre à jour le PMTU. Dans ce cas, une passerelle de sécurité DOIT produire un message PMTU ICMP dès la réception d'un PMTU ICMP .. .. ..(from further down the path).
- Distribuer le PMTU à la couche Transport -- Le mécanisme de l'hôte pour obtenir et mettre à jour le PMTU à la couche Transport est inchangée, comme spécifié dans la RFC 1191 (Path MTU Discovery).
6.1.2.2 Calcul du PMTU
Le calcul du PMTU à partir d'un PMTU ICMP DOIT prendre en compte l'addition d'un entête IPsec quel qu'il soit -- AH transport, ESP transport, AH/ESP transport, tunnel ESP, tunnel AH (voir Annexe B pour les solutions d'implémentation).
Remarque : Dans certaines situations, l'ajout des entêtes IPsec pourrait avoir comme conséquence un PMTU efficace (vu par l'hôte ou l'application) qui est trop petit. Pour éviter ce problème, l'implémentation peut établir un seuil au-dessous duquel elle n'enregistrerait pas un PMTU réduit. Dans ces cas-là, l'implémentation appliquerait IPsec et réduirait ensuite fragmenterait le paquet résultant selon le PMTU. Ceci aurait comme conséquence une utilisation plus efficace de la largeur de bande disponible.
6.1.2.3 Granularité du traitement du PMTU
Dans les hôtes, la granularité avec laquelle le traitement PMTU ICMP peut être fait diffère selon la situation de l'implémentation. En regardant un hôte, il y a 3 situations intéressantes en ce qui concerne les possibilités du PMTU (voir l'annexe B pour les détails supplémentaires à ce sujet) :
a. Intégration d'IPsec dans les implémentations natives
b. Implémentations Bump-in-the-stack, où IPsec est implémenté "en dessous" d'une implémentation existante de la pile TCP/IP, en le driver natif d'IP et les drivers du réseau local.
c. Pas d'implémentation d'IPsec -- Ce cas est inclus parce qu'il y a un rapport dans le cas où une passerelle de sécurité renvoie l'information de PMTU à un hôte.
C'est seulement dans le cas (a) que les données PMTU pourraient être mises à jour avec la même granularité que des associations de transmission. En (b) et (c), la couche IP pourra seulement mettre à jour des données du PMTU avec la granularité des adresses IP source et destination (et éventuellement TOS), comme décrit dans la RFC 1191. C'est une différence importante, parce que plus d'une association de transmission peut correspondre aux mêmes adresses IP source et destination, et chaque association de transmission peut avoir une quantité différente d'entête IPsec supplémentaire (par exemple, en raison de l'utilisation de différentes transformations ou différents algorithmes).
L'implémentation du calcul du PMTU et du support des PMTU avec la granularité de différentes associations de transmission est un probl&eg 1000 rave;me local. Cependant, une implémentation d'IPsec basée sur les sockets sur un hôte DEVRAIT mettre à jour l'information sur la base des sockets. La mémoire annexe (bump) des systèmes par pile DOIT passer le PMTU ICMP à l'implémentation de l'hôte IP, après son ajustement à n'importe quel surdébit d'entête d'IPsec ajouté par ces systèmes. Le calcul du surdébit DEVRAIT être déterminé par l'analyse du SPI et de n'importe quelle autre information de sélecteur présents dans un message PMTU ICMP retourné.
6.1.2.4 Vieillissement du PMTU
Dans tous les systèmes (hôte ou passerelle) mettant en application IPsec et mettant à jour l'information de PMTU, le PMTU associé à une association de sécurité (transport ou tunnel) DOIT "être vieilli" et un mécanisme doit être mis en place pour mettre à jour le PMTU d'une façon opportune, particulièrement pour découvrir si le PMTU est plus petit qu'il ne doit l'être. Un PMTU donné doit rester en place assez longtemps pour qu'un paquet aille de l'extrémité source de l'Association de Sécurité au système à l'autre extrémité de l'Association de Sécurité et pour qu'il propage en retour un message d'erreur ICMP si le PMTU actuel est trop grand. Notez que s'il y a les tunnels emboîtés, plusieurs paquets et des temps de voyage ronds pourraient être exigés pour recevoir un message ICMP en retour à un encapsulateur ou à un hôte d'origine.
Les systèmes DEVRAIENT utiliser l'approche décrite dans le document du Path MTU Discovery (RFC 1191, Section 6.3), qui suggère un reset périodique du PMTU au MTU de la liaison de données du premier saut et laisser ensuite le processus normal du PMTU Discovery agir et mettre à jour le PMTU si nécessaire. La période DEVRAIT être configurable.
7. Faire de l'audit
Tous les systèmes implémentant IPsec n'implémenteront pas l'audit. Pour la plupart, la granularité de l'audit est un problème locale. Cependant, plusieurs événements auditables sont identifiés dans les spécifications d'AH et d'ESP et pour chacun de ces événements, un ensemble minimum d'information DEVANT être inclus dans les logs d'audit est définie. De l'information supplémentaire PEUT également être incluse dans les logs d'audit pour chacun de ces événements, et des événements supplémentaires, pas explicitement exigés dans ces spécifications, POURRAIENT aussi entraîner des entrées dans les logs d'audit. Il n'y a aucune obligation pour le récepteur de transmettre n'importe quel message à un prétendu émetteur lors de la détection d'un événement auditable, à cause de la possibilité d'induire un déni de service par l'intermédiaire d'une telle action.
8. Utilisation dans les système supportant la sécurité du flux d'information
De l'information de niveaux de sensibilité variés peut être transportée par un réseau simple. Les étiquettes (labels) de l'information (par exemple, inclassable, Propriété de la société, secret) [DoD85, DoD87] sont souven 1000 t utilisés pour distinguer ces informations. L'utilisation des étiquettes facilite la ségrégation de l'information, comme par les modèles de sécurité du flux de l'information, par exemple, le modèle Bell-LaPadula [BL73]. De tels modèles, et leur technologie correspondante, sont conçus pour protéger le flux non autorisé d'information, même face aux attaques par chevaux de Troyes. Les mécanismes conventionnels et discrétionnaires du contrôle d'accès (DAC, Discretionary Access Control), comme par exemple, basés sur des listes de contrôle d'accès, ne sont généralement pas suffisants pour supporter de telles politiques, ainsi, les équipements tels que la SPD ne suffisent pas dans de tels environnements.
Dans le contexte militaire, la technologie qui supporte de tels modèles est souvent désigné sous le nom de sécurité à plusieurs niveaux (MLS, Multi-Level Security). Les ordinateurs et les réseaux sont souvent indiqués comme étant "sécurisés à plusieurs niveaux" s'ils supportent la séparation des données étiquetées en même temps que des politiques de sécurité du flux de l'information. Bien qu'une telle technologie soit plus largement utilisable qu'uniquement pour des applications militaires, ce document utilise l'acronyme "MLS" pour parler de cette technologie, ce qui est conforme à la littérature existante.
Les mécanismes IPsec peuvent facilement supporter les réseaux MLS. Les réseaux MLS exigent l'utilisation de contrôles d'accès obligatoires forts (MAC), où les utilisateurs non privilégiés ou les processus non privilégiés sont incapables de faire du contrôle ou de la violation. Cette section concerne seulement l'utilisation des mécanismes de sécurité IP dans des environnements MLS (politique de sécurité du flux de l'information). Rien dans cette section ne s'applique aux systèmes ne prétendant pas fournir de MLS.
Tel qu'il est utilisé dans cette section, le terme "information de sensibilité" peut inclure des niveaux hiérarchiques définis lors de l'implémentation, des catégories, ou/et version d'information (releasability information).
AH peut être utilisé pour fournir de l'authentification forte pour supporter les décisions obligatoires de contrôle d'accès dans des environnements MLS. Si de l'information IP explicite de sensibilité (par exemple, IPSO [Ken91]) est utilisée et que la confidentialité n'est pas considérée nécessaire dans un environnement opérationnel particulier, AH peut être utilisé pour authentifier les liens entre les étiquettes de sensibilité de l'entête IP et la charge utile IP (y compris données d'utilisateur). C'est une amélioration significative par rapport aux réseaux IPv4 étiquetés où on fait confiance à l'information sensible quoiqu'il n'y ait aucune authentification ou lien cryptographique entre l'information et les données IP de l'entête et de l'utilisateur. Les réseaux IPv4 pourraient ou ne pourraient pas utiliser un étiquetage explicite. IPv6 utilisera normalement l'information implicite de sensibilité qui fait partie de l'association de sécurité d'IPsec mais non transmise par chaque paquet au lieu d'utiliser l'information explicite de sensibilité. Toute l'information IP explicite de sensibilité DOIT être authent 1000 ifiée en utilisant par AH, ESP, ou les deux.
Le chiffrement est utile et peut être souhaitable même lorsque tous les hôtes sont dans un environnement protégé, comme par exemple derrière un firewall ou dépourvu de toute connectivité externe. ESP peut être utilisé, en même temps que des algorithmes appropriés de gestion de clefs et de chiffrement, comme DAC et MAC (le choix des algorithmes de chiffrement et d'authentification, et le niveau d'assurance d'une implémentation IPsec détermineront les environnements dans lesquels une implémentation peut être considérée comme suffisante pour répondre à des exigences de la MLS). La gestion de clefs peut se servir de l'information de sensibilité pour fournir du MAC. Les implémentations d'IPsec sur des systèmes prétendant fournir de la MLS DEVRAIENT être capables d'employer IPsec pour fournir du MAC pour les transmissions IP.
8.1 Relations entre les Associations de Sécurité et la sensibilité des données
AH et ESP peuvent tous deux être combinés avec des politiques appropriées d'association de sécurité pour arriver à des réseaux sécurisés à plusieurs niveaux (MLS). Normalement, dans ce cas, chaque SA (ou paquet de SA) est utilisé pour seulement une instance simple d'information de sensibilité. Par exemple, "PROPRIÉTAIRES - ingénierie Internet" doit être associé à une SA (ou paquet de SA) différente de "PROPRIÉTAIRES - finances".
8.2 Vérification de la cohérence de la sensibilité
Une implémentation MLS (hôte et routeur) PEUT associer l'information de sensibilité, ou un intervalle d'information de sensibilité, avec une interface, ou de adresse IP configuré avec son préfixe associé (ce dernier désigné parfois sous le nom d'interface logique, ou d'interface alias). Si de telles propriétés existent, une implémentation DEVRAIT comparer l'information de sensibilité associée au paquet avec l'information de sensibilité associée à l'interface ou à l'adresse/préfixe à partir duquel le paquet est arrivé, ou celui par lequel le paquet partira. Ce contrôle vérifiera soit que les sensibilités correspondent, soit que la sensibilité du paquet fait partie de l'intervalle de l'interface ou de l'adresse/préfixe.
Cette vérification DEVRAIT être faite sur le traitement entrant et sortant.
8.3 Attributs MLS supplémentaires pour la SAD
La section 4.4 s'est occupé de deux bases de données d'association de sécurité (la base de données de politique de sécurité (SPD) et la base de données d'association de sécurité (SAD)) et des sélecteurs de politique associés et des attributs de SA. Les réseaux MLS présente un selecteur/attribut supplémentaire:
- Information de sensibilité.
L'information de sensibilité aide à choisir les algorithmes appropriés et la longueur des clefs, de sorte que le trafic obtienne un niveau de la protection en relation avec son importance ou sa sensibilité comme décr 1000 it dans la section 8.1. La syntaxe exacte de l'information de sensibilité est définie lors de l'implémentation.
8.4 Etapes supplémentaires du traitement entrant pour les réseaux MLS
Après qu'un paquet entrant ait traversé le traitement IPsec, une implémentation de MLS DEAVRAIT d'abord vérifier la sensibilité du paquet (comme défini par la SA (ou paquet de SA) utilisée pour ce paquet) avec l'interface ou l'adresse/préfixe comme décrit dans la section 8.2 avant de faire suivre le datagramme ou de le livrer au protocole de la couche supérieure.
Le système MLS DOIT maintenir la liaison entre les données reçues dans un paquet protégé par IPsec et l'information de sensibilité de la SA ou les SA utilisées pour le traitement, ainsi, des décisions appropriées de politique peuvent être prises en livrant le datagramme à une application ou en le faisant suivre. Les moyens de mettre à jour cette liaison sont spécifique à l'implémentation.
8.5 Etapes supplémentaires du traitement sortant pour les réseaux MLS
Une implémentation IPsec MLS DOIT exécuter deux contrôles supplémentaires en plus des étapes normales détaillées dans la section 5.1.1. En consultant la SPD ou la SAD pour trouver une association sortante de sécurité, l'implémentation MLS DOIT utiliser la sensibilité des données pour choisir une SA (ou paquet de SA) sortante appropriée. Le deuxième contrôle vient avant l'expédition du paquet vers sa destination, et est le contrôle de cohérence de la sensibilité décrit dans la section 8.2.
8.6 Traitement MLS supplémentaire pour les passerelles de sécurité
Une passerelle de sécurité MLS DOIT suivre les règle de traitement d'entrée et de sortie précédemment mentionné, mais aussi exécuter un traitement supplémentaire spécifique à la protection intermédiaire des paquets dans un environnement MLS.
Une passerelle de sécurité PEUT agir en tant que proxy de sortie, créant des SA pour les systèmes MLS qui font suivre des paquets expédiés par la passerelle. Ces systèmes MLS peuvent explicitement étiqueter les paquets à expédier, ou l'ensemble du réseau d'origine peut avoir des caractéristiques de sensibilité associées à cela. La passerelle de sécurité DOIT créer et employer les SA appropriées pour AH, ESP, ou les deux, pour protéger ce trafic qu'il expédie.
De même, une telle passerelle DEVRAIT accepter et traiter les paquets entrant AH ou/et ESP et les expédier de façon appropriée, en utilisant un étiquetage explicite, ou en passant le relais aux caractéristiques de sensibilité du réseau destination.
9. En terme de performance
L'utilisation d'IPsec impose des coûts en terme de performance d'exécution sur les hôtes ou les passerelles de sécurité qui implémentent ces protocoles. Ces coûts sont associés à la mé 1000 ;moire nécessaire pour le code et les structures données d'IPsec, et au calcul des valeurs de contrôle d'intégrité, du chiffrage et du déchiffrage, et des manipulations supplémentaires pour chaque paquet. Les coûts de calcul par paquet se manifesteront par une latence plus importante et probablement une réduction de tout. L'utilisation d'un protocole de gestion de clefs/SA, particulièrement ceux qui utilisent la cryptographie à clef public, ajoute également des coûts de performance d'exécution à l'utilisation d'IPsec. Ces coûts se manifesteront par l'augmentation de la latence dans l'établissement d'association. Pour beaucoup d'hôtes, on prévoit que la cryptographie logicielle ne réduira pas sensiblement le débit, mais du matériel peut être nécessaire pour des passerelles de sécurité (puisqu'ils représentent des points d'agrégation), et pour quelques hôtes.
L'utilisation d'IPsec impose également des coûts d'utilisation de bande passante pour les composants de transmission, de commutation, et de routage de l'infrastructure Internet, composants n'implémentant pas IPsec. C'est dû à l'augmentation de la taille des paquets résultant de l'ajout des entêtes AH et/ou ESP, du tunneling AH et ESP (qui ajoute un deuxième entête IP), et l'augmentation du trafic de paquet associé aux protocoles de gestion de clefs. On prévoit que, dans la plupart des cas, ce besoin plus important de bande passante n'affectera pas vraiment l'infrastructure Internet. Cependant, parfois, les effets peuvent être significatifs, comme par exemple la transmission de trafic ESP chiffré par une liaison dialup qui sans ça, aurait compressé le trafic.
Remarque : Le surdébit d'établissement initiale de la SA sera ressenti dans le premier paquet. Ce retard peut avoir un impact sur la couche transport et application. Par exemple, il pourrait faire retransmettre le bit SYN par TCP avant que l'échange ISAKMP ne soit fait. L'effet de ce retard serait différent sur UDP parce que TCP ne devrait rien transmettre d'autre que le bit SYN jusqu'à ce que la connexion soit établie tandis qu'UDP avancera et transmettra des données au delà du premier paquet.
Remarque : Comme vu plus tôt, la compression peut encore être utilisé sur les couches au-dessus d'IP. Il y a un groupe de travail de l'IETF (IP Payload Compression Protocol (ippcp)) qui travaille sur les "spécifications de protocole qui permettent la compression sans perte sur différentes charges utiles avant que la charge utile ne soit traitée par un protocole qui la chiffre. Ces spécifications laisseront des opérations de compression s'exécutées avant le chiffrement d'une charge utile par des protocoles IPsec. "
10. Conditions de conformité
Tous les systèmes IPv4 prétendant implémenter IPsec DOIVENT être conformes à toutes les conditions de ce document d'architecture de sécurité. Tous les systèmes IPv6 DOIVENT être conformes à toutes les conditions de ce document d'architecture de sécurité.
11. Considération sur la sécurité
Le centre d'intérêt de ce document est la sécurité; par conséquent, les considérations sur la sécurité sont impré 1000 gnées dans ces spécifications.
12. Différences avec la RFC 1825
Ce document d'architecture diffère sensiblement de la RFC 1825 dans les détails et dans son organisation, mais les notions fondamentales sont inchangées. Ce document fournit des détails supplémentaires considérables en termes de spécifications de conformité. Il présente la SPD et la SAD, et la notion de Ssélecteurs de SA. Il est en correspondance avec les nouvelles versions de AH et ESP, qui diffèrent également de leurs prédécesseurs. Des conditions spécifiques pour les combinaisons de AH et ESP supportées sont nouvellement ajoutées, de même que les détails sur la gestion du PMTU.
Remerciements
Plusieurs des concepts incorporés dans ces spécifications sont dérivés ou influencés par le protocole de sécurité SP3 du gouvernement des USA, les NLSP ISO/IEC, le protocole de sécurité proposé par swIPe [SDNS, OIN, IB93, IBK93], et le travail effectué pour la sécurité de SNMP et SNMPv2.
Pendant plus de 3 années (même si ça semble parfois *beaucoup* plus long), ce document est passé par plusieurs versions et itérations. Pendant tout ce temps, beaucoup de gens ont contribué au processus et aux documents eux-mêmes en apportant des idées significatives et de l'énergie. Les auteurs voudraient remercier Karen Seo pour avoir apporté une aide importante dans la relecture, l'édition, la recherche de fond, et la coordination de cette version des spécifications. Les auteurs voudraient également remercier les membres des groupes de travail IPsec et IPng, avec une mention spéciale pour les efforts de (dans l'ordre alphabétique): Steve Bellovin, Steve Deering, James Hughes, Phil Karn, Kastenholz franc, Perry Metzger, David Mihelcic, Hilarie Orman, Shulman normand, William Simpson, Harry Varnis, et Nina Yuan.
Annexe A -- Glossaire
Cette section donne des définitions pour plusieurs mots-clefs utilisés dans ce document. D'autres documents donne des définitions supplémentaires et des informations de base en rapport avec cette technologie, comme [VK83, HA94]. Des termes relatifs aux mécanismes de sécurité ou à la sécurité en général sont inclus dans ce glossaire, ainsi que des termes spécifiques à IPsec.
Contrôle d'accès (Access Control) : Le contrôle d'accès est un service de sécurité qui prévient l'utilisation non-autorisée d'une ressource, où l'utilisation d'une ressource d'une façon non-autorisée. Dans le contexte IPsec, la ressource dont l'accès est contrôlé est souvent :
- Pour un hôte, les cycles de calcul et les données
- Pour une passerelle de sécurité, le réseau qui se trouve derrière la passerelle ou la bande passante de ce réseau.
Anti-rejeu (Anti-replay) : Voir "Intégrité" plus bas.
Authentification : Ce terme est utilisé de façon informelle pour désigner la combinaison de deux 1000 services de sécurité de base distincts, l'authentification de l'origine des données et l'intégrité en mode non connecté. Voir les définitions plus bas pour chacun de ces services.
Disponibilité (Availability) : La disponibilité, en tant que service de sécurité, s'intéresse aux attaques contre les réseaux qui bloque ou dégrade un service. Par exemple, dans le cas d'IPsec, l'utilisation de mécanismes anti-rejeu dans AH et ESP supporte la disponibilité.
Confidentialité (Confidentiality) : La confidentialité est le service de sécurité qui protège les données d'une fuite non-autorisé. La confidentialité de base concerne dans la plupart des cas la fuite non-autorisé aux données de la couche application, mais les fuites des caractéristiques externes de la communication peuvent être concernées dans certaines circonstances. La confidentialité du flux du trafic est le service qui s'occupe de ce dernier cas en cachant les adresses source et destination, la taille des messages, ainsi que la fréquence des échanges. Dans le cas d'IPsec, utilisant ESP en mode tunnel, surtout sur une passerelle de sécurité, peut apporter un certain niveau de confidentialité du flux du trafic (voir aussi "Analyse du trafic" plus bas).
Chiffrement (Encryption) : Le chiffrement est un mécanisme de sécurité utilisé pour transformer les données d'une forme intelligible (texte) en une forme inintelligible (texte chiffré), pour apporter la confidentialité. La transformation inverse est appelé "déchiffrage". Souvent, le terme "chiffrement" désigne les deux procédés.
Authentification de l'origine des données (Data Origin Authentication) : L'authentification de l'origine des données est un service de sécurité qui vérifie l'identité de celui qui se réclame comme la source des données. Ce service généralement combiné avec le service d'intégrité en mode non connecté.
Intégrité (Integrity) : L'intégrité est un service qui s'assure que les modifications des données sont détectables. L'intégrité vient de plusieurs façon correspondre avec les bsoins de l'application. IPsec supporte deux formes d'intégrité : en mode non connecté et une forme d'intégrité partielle des séquences. L'intégrité en mode non connecté est un service qui détecte les modifications sur un paquet IP particulier, sans s'occuper de la place du datagramme dans le flux de trafic. La forme d'intégrité partielle des séquences offerte par IPsec désigne l'intégrité anti-rejeu, et détecte l'arrivée d'un datagramme IP recopié (au sein d'une fenêtre limitée). Ceci est en opposition avec l'intégrité en mode orienté-connexion, qui impose des conditions plus sévère (stringent) sur le séquencement, comme par exemple d'être capable de détecter les messages perdus ou réordonnés. Même si l'authentification et l'intégrité sont souvent citées séparément, en pratique, elles sont intimement liées et sont toujours offertes en même temps.
Association de Sécurité (Security Association, SA) : Une connexion logique simplex (unidirectionnelle), créée pour des b 1000 esoins de sécurité. Tout le trafic passant par une SA reçoit le même traitement de sécurité. Dans IPsec, une SA est une chose abstraite de la couche Internet implémenté par l'utilisation d'AH ou d'ESP.
Passerelle de sécurité (Security Gateway) : Une passerelle de sécurité est un système intermédiaire qui agit comme interface de communication entre deux réseaux. L'ensemble des hôtes (et des réseaux) du côté extérieur de la passerelle de sécurité est en ensemble d'entités en lesquelles on ne peut pas avoir confiance (ou moins confiance), tandis que les réseaux et les hôtes côté intérieur sont considérés comme sûrs (ou plus sûrs). Les sous-réseaux internes et les hôtes servis par une passerelles de sécurité sont présumés sûrs grâce à l'administration de sécurité commune, locale et partagée (voir "Sous-réseaux de confiance" plus bas). Dans le cas d'IPsec, la passerelle de sécurité est un point où AH et/ou ESP sont implémentés pour servir un ensemble d'hôtes internes, en apportant des services de sécurité à ces hôtes lorsqu'ils communiquent avec des hôtes externes qui utilisent également IPsec (soit directement, soit par une autre passerelle de sécurité).
SPI : Acronyme pour "Security Parameters Index" ou Index des Paramètres de Sécurité. La combinaison d'une adresse destination, d'un protocole de sécurité et d'un SPI unique identifie une Association de Sécurité (voir plus haut). Le SPI est transporté dans les protocoles AH et ESP pour permettre au système récepteur de choisir la SA sous laquelle le paquet reçu sera traité. Un SPI a uniquement une signification locale, tel qu'il est défini par le créateur de la SA (généralement le récepteur du paquet transportant le SPI). Ainsi, un SPI est généralement vu comme une suite opaque de bits. Quoiqu'il en soit, le créateur de la SA peut choisir d'interpréter les bits du SPI pour faciliter le traitmeent local.
Analyse du trafic (Traffic Analysis) : L'analyse d'un flux de trafic réseau pour en déduire des informations est utile pour un adversaire. Les exemples d'information sont la fréquence des transmissions, les identités des deux parties en jeu, la taille des paquets, les identificateurs de flux, etc. [Sch94]
Sous-réseau de confiance (Trusted Subnetwork) : Un sous-réseau contenant des hôtes et des routeurs ont confiance les uns en les autres pour ne pas engager d'attaques actives ou passives. Ici aussi, il y a une supposition, qui est que le canal de transmission (par exemple, un LAN ou un CAN) n'est pas attaqué par d'autres.
Annexe B -- Analyse et discussion sur PMTU/DF/Fragmentation
B.1 Le bit DF
Au cas où un système (hôte ou passerelle) ajoute un entête encapsulé (comme un tunnel ESP), est-ce que le bit DF du paquet original doit être copié dans l'entête encapsulé?
Le fait de fragmenter est approprié dans certaines situations, par exemple, il peut être bon de fragmenter des paquets sur un réseau ayant un petit MTU, comme par exemple un réseau de paquets radio, ou po 1000 ur un saut depuis téléphone cellulaire à un nœud mobile, plutôt que propager avant un très petit PMTU tout au long du reste du chemin. Dans d'autres situations, il peut être bon de mettre le bit DF pour obtenir un feedback des derniers routeurs sur les contraintes du PMTU demandant de la fragmentation. L'existence de ces deux situations donne une bonne raison de laisser le système décider s'il doit ou non fragmenter sur une liaison particulière, c'est-à-dire de demander à une implémentation d'être capable de copier le bit DF (et de traiter les messages PMTU ICMP), mais en en faisant une option à choisir à partir d'une interface de base. En d'autres termes, un administrateur devrait pouvoir configurer le traitement des routeurs sur les bit DF (donner une valeur, effacer, copier de l'entête encapsulé) pour chaque interface.
Remarque : Si une implémentation BITS d'IPsec essaie d'appliquer des algorithmes IPsec différents basés sur les ports source et destination, il sera difficile d'appliquer des ajustements du Path MTU.
B.2 Fragmentation
S'il y a lieu, la fragmentation IP se produit après le traitement IPsec dans une implémentation d'IPsec. Ainsi, le mode transport d'AH et d'ESP est appliqué seulement aux datagrammes IP entiers (pas aux fragments IP). Un paquet IP auquel AH ou ESP a été appliqué peut lui-même être réduit en fragments par des routeurs au cours de l'acheminement, et de tels fragments DOIVENT être rassemblés avant le traitement IPsec du récepteur. En mode tunnel, AH ou ESP est appliqué à un paquet IP, dont la charge utile peut être un paquet réduit de fragments IP. Par exemple, une passerelle de sécurité, une implémentation BITS ou BITW d'IPsec, peut appliquer le mode tunnel d'AH à de tels fragments. Notez que les implémentations BITS ou BITW sont des exemples à partir desquels une implémentation d'hôte IPsec pourrait recevoir des fragments auxquels le mode tunnel doit être appliqué. Cependant, si le mode transport doit être appliqué, alors ces implémentations DOIVENT rassembler les fragments avant d'appliquer IPsec.
NOTE: IPsec doit toujours savoir quels sont les champs de l'entête IP encapsulé. C'est indépendant de l'endroit où IPsec est inséré et c'est intrinsèque à la définition d'IPsec. Toute implémentation IPsec non intégrée à IP doit inclure le code pour construire les entêtes nécessaires à IP (par exemple, IP2):
o AH-tunnel --> IP2-AH-IP1-Transport-Data
o ESP-tunnel --> IP2-ESP_hdr-IP1-Transport-Data-ESP_trailer
De façon générale, l'approche par fragmentation/réassembage décrite ci-dessus fonctionne pour tous les cas a étudiés.
AH Xport AH Tunnel ESP Xport ESP Tunnel
Approche d'implémentation IPv4 IPv6 IPv4 IPv6 IPv4 IPv6 IPv4 IPv6
------------------------- ---- ---- ---- ---- ---- ---- ---- ----
Hôtes (integr dans pile IP) Y Y Y Y Y Y Y Y
Hôtes (entre IP et drivers) Y Y Y Y Y Y Y Y
Pass.S. (integr dans pile IP) Y Y Y Y
Processeur crypto externe *
* Si le système par processeur de crypto a sa propre adresse IP, alors il est couvert par le cas de la passerelle de sécurité. Cette boîte reçoit le paquet de l'hôte et exécute le traitement IPsec. Il doit pouvoir manipuler de la même façon AH, ESP, et le traitement d'un tunnel IPv4/IPv6 associé qu'une passerelle de sécurité devrait manipuler. S'il n'a pas sa propre adresse, alors il est semblable au implémentation BITS entre IP et les drivers réseau.
L'analyse suivante suppose que :
1. Il y a un seul module IPsec dans la pile d'un système donné. Il n'y a pas de module A (ajoutant ESP/chiffrement et donc) cachant le protocole de transport, port SRC et DEST d'un module IPsec B.
2. Il y a plusieurs endroits où IPsec peut être implémenté (comme montré par le tableau plus bas).
a. Hôtes avec intégration d'IPsec dans l'implémentation native d'IP. Celui qui implémente a accès au source de la pile.
b. Hôtes avec une implémentation "bump-in-the-stack" (BITS) où IPsec est implémenté entre IP et les drivers du réseau local. L'accès au source de la pile ne sont pas disponible; mais il y a des interfaces bien définies qui permettent au code IPsec d'être incorporé au système.
c. Les passerelles de sécurité et les processeurs externes de crypto qui intègre IPsec dans leur pile.
3. Toutes les approches vues plus bas ne sont pas faisables sur tous les hôtes. Mais on suppose que pour chaque approche, il y a certains hôtes pour qui l'approche est faisable.
Pour chacune des trois catégories ci-dessus, il y a IPv4 et IPv6, les modes transport et tunnel de ESP et de AH -- pour un total de 24 cas (3 x 2 x 4).
Quelques champs d'entête et d'interface sont énumérés ici pour la facilité de la référence -- ils ne sont pas dans l'ordre de l'entête, mais plutôt énumérés pour permettre la comparaison entre les deux colonne. (* = non couvert par l'authentification AH. L'authentification ESP ne couvrent aucun entête qui le précède).
Interface IP/Transport
IPv4 IPv6 (RFC 1122 -- Sec 3.4)
---- ---- ----------------------
Version = 4 Version = 6
Header Len
*TOS Class,Flow Lbl TOS
Packet Len Payload Len Len
ID ID (optional)
*Flags DF
*Offset
*TTL *Hop Limit TTL
Protocol Next Header
*Checksum
Src Address Src Address Src Address
Dst Address Dst Address Dst Address
Options? Options? Opt
? = AH couvre Option-Type et Option-Length, mais peut ne pas couvrir Option-Data.
Les résultats des 20 cas est donné ci-dessous ("works" = fonctionnera si le système fragmente après le traitement IPsec sortant, réassemble avant le traitement IPsec entrant). Les notes donne des indications pour l'implémentation.
a. Hôtes (intégré dans la pile IP)
o AH-transport --> (IP1-AH-Transport-Data)
- IPv4 -- works
- IPv6 -- works
o AH-tunnel --> (IP2-AH-IP1-Transport-Data)
&nb 1000 sp; - IPv4 -- works
- IPv6 -- works
o ESP-transport --> (IP1-ESP_hdr-Transport-Data-ESP_trailer)
- IPv4 -- works
- IPv6 -- works
o ESP-tunnel --> (IP2-ESP_hdr-IP1-Transport-Data-ESP_trailer)
- IPv4 -- works
- IPv6 -- works
b. Hôte (BITS) -- met IPsec entre la couche IP et les drivers réseau. Dans ce cas, le module IPsec devrait suivre une des propositions suivantes pour la segmentation et le réassemblage :
- faire le travail de fragmentation/réassemblage lui-même et émettre/recevoir le paquet directement à/de la couche réseau. En mode transport de AH ou de ESP, il n'y a pas de problème. En mode tunnel de AH ou de ESP où l'extrémité du tunnel est la destination finale, pas de problème. Mais en mode tunnel de AH ou de ESP où l'extrémité du tunnel est différente de la destination finale et où l'hôte source est multihomed, cette approche pourraient avoir comme conséquence un routage suboptimal parce que le module IPsec peut ne pouvoir pas obtenir l'information nécessaire (interface LAN et passerelle next-hop) pour diriger le paquet vers l'interface appropriée du réseau. Ce n'est pas un problème si l'interface et la passerelle next-hop sont les mêmes pour la destination finale et pour l'extrémité du tunnel. Mais s'ils sont différents, alors IPsec devrait connaître l'interface du réseau local et la passerelle next-hop pour l'extrémité du tunnel. (note: L'extrémité du tunnel (passerelle de sécurité) est généralement la voie d'accès habituelle pour atteindre la destination finale. Mais il pourrait également y avoir plus d'une voie d'accès pour atteindre la destination, par exemple, l'hôte pourrait être dans une organisation ayant 2 firewalls. Et l'accès utilisée peut comporter le firewall le moins connu). OU
- passer le paquet traité par IPsec de nouveau à la couche IP où un dernier entête IP supplémentaire serait ajouté au début et le module IPsec devrait le vérifier et laisser les fragments IPsec y passer.
OU
- Passer le contenu du paquet à la couche IP de telle façon que la couche IP recrée un entête IP approprié.
Au niveau de la couche réseau, le module IPsec aura accès aux sélecteurs suivants du paquet -- adresse SRC, adresse DST, Next Protocol, et s'il y a un entête de la couche transport --> ports SRC et DST. On ne peut pas supposer qu'IPsec a accès au Nom. On suppose que les informations disponibles du Sélecteur sont suffisantes pour retrouver l'e 1000 ntrée de la Politique de Sécurité et de(s) SA.
o AH-transport --> (IP1-AH-Transport-Data)
- IPv4 -- works
- IPv6 -- works
o AH-tunnel --> (IP2-AH-IP1-Transport-Data)
- IPv4 -- works
- IPv6 -- works
o ESP-transport --> (IP1-ESP_hdr-Transport-Data-ESP_trailer)
- IPv4 -- works
- IPv6 -- works
o ESP-tunnel --> (IP2-ESP_hdr-IP1-Transport-Data-ESP_trailer)
- IPv4 -- works
- IPv6 -- works
c. Passerelles de sécurité -- intégrer IPsec dans la pile IP
Remarque : Le module IPsec aura accès accès aux Sélecteurs suivants du paquet -- adresse SRC, adresse DST, Next Protocol, et s'il y a un entête transport --> port SRC et port DST. Il n'aura pas accès au User ID (seuls les hôtes ont accès au User ID). Contrairement à quelques implémentations BITS, les passerelles de sécurité peuvent être capable de retrouver l'adresse source dans le DNS pour avoir un nom de système, comme par exemple dans le cas où on utilise des adresses IP assignées dynamiquement avec des entrées DNS dynamiques et mises à jour. Il n'aura également pas accès aux informations de la couche transport s'il y a un entête ESP, ou si ce n'est pas le premier fragment du message fragmenté. On suppose que les informations disponibles du Sélecteur sont suffisantes pour retrouver l'entrée de la Politique de Sécurité et de(s) SA.
o AH-tunnel --> (IP2-AH-IP1-Transport-Data)
- IPv4 -- works
- IPv6 -- works
o ESP-tunnel --> (IP2-ESP_hdr-IP1-Transport-Data-ESP_trailer)
- IPv4 -- works
- IPv6 -- works
**********************************************************************
B.3 Path MTU Discovery
Comme vu plus haut, "PMTU ICMP" désigne un message ICMP utilisé pour le Path MTU Discovery.
La légende du diagramme plus bas en B.3.1 et B.3.3 (mais pas B.3.2) est :
==== = SA (AH ou ESP, transport et tunnel)
---- = connectivité (ou, si c'est indiqué, borne administrative)
.... = message ICMP (désigne le PMTU ICMP) pour
IPv4:
- Type = 3 (Destination Inatteignable)
- Code = 4 (Fragmentation nécessaire et positionner DF)
- Next-Hop MTU dans les 16 bits de poids faibles du second mot de
l'entête ICMP (appelé "inutilisé" dans la RFC 792), avec les 16
bits de poids forts à zéro
IPv6 (RFC 1885):
- Type = 2 (Paquet trop gros)
- Code = 0 (Fragmentation nécessaire et positionner DF)
- Next-Hop MTU dans le champ MTU de 32 bits de ICMP6
Hx = hôte x
Rx = routeur x
SGx = passerelle de sécurité x
X* = X supporte IPsec
B.3.1 Identifier le ou les hôtes d'origine
L'ensemble des informations renvoyées par le message ICMP est limité et affecte quels Sélecteurs sont disponibles pour identifier les SA, les hôtes d'origine, etc. dans l'utilisation pour la propagation des informations du PMTU.
En bref... Un message ICMP doit contenir les informations suivantes dans le paquet du problème :
- IPv4 (RFC 792) -- Entête IP plus un minimum de 64 bits
Par convention, dans le contexte IPv4, un PMTU ICMP peut seulement identifier la première SA (externe). Ceci est du au fait que le PMTU ICMP ne peut que contenir 64 bits du paquet du problème dans l'entête IP, et ne capturerait que le premier SPI de AH ou de ESP. Dans le contexte IPv6, un PMTU ICMP donnera probablement tous les SPI et les Sélecteurs dans l'entête IP, mais peut-être pas les ports SRC/DST (dans l'entête transport) ou les protocoles encapsulés (TCP, UDP, etc.). De plus, si ESP est utilisé, les ports transport et les Sélecteurs de protocoles peuvent être chiffrés.
Regardons le diagramme suivant d'un tunnel de passerelle de sécurité (comme dit autre part, les passerelles de sécurité n'utilise pas le mode transport)...
H1 =================== H3
\ | | /
H0 -- SG1* ---- R1 ---- SG2* ---- R2 -- H5
/ ^ | \
H2 |........| H4
Supposez que la politique de sécurité pour SG2 est utilisée pour une seule SA vers SG2 pour tout le trafic entre les hôtes H0, H1 et H2 et les hôtes H3, H4 et H5. Et supposez que H0 envoie un paquet de données à H5, ce qui entraîne le fait que R1 envoie un message de PMTU ICMP à SG1. Si le message PMTU a uniquement le SPI, SG1 sera capable de trouver la SA et de retrouver la liste des hôtes possibles (H0, H1, H2, wildcard); mais SG1 n'aura aucun moyen de trouver que H0 a envoyé le flux contenant le message PMTU ICMP.
paquet original après traitement IPsec paquet ICMP
---------------- ---------------------- -----------
entête IP-3 (S = R1, D = SG1)
entête ICMP (incluant PMTU)
entête IP-2 entête IP-2 (S = SG1, D = SG2)
entête ESP minimum 64 bits pour entête ESP (*)
entête IP-1 entête IP-1
entête TCP entête TCP
données TCP données TCP
1000 trailer ESP
(*) Les 64 bits incluront une partie suffisante de l'entête ESP (ou AH) pour inclure le SPI.
- ESP -- SPI (32 bits), Numéro de séquence (32 bits)
- AH -- Next header (8 bits), Longueur entête (8 bits), Réservé (16 bits), SPI (32 bits)
Cette limitation des informations renvoyées avec un message ICMP pose un problème pour identifier les hôtes d'origine du paquet (donc pour savoir à qui propager l'information PMTU ICMP). Si le message ICMP contient seulement 64 bits d'entête IPsec (minimum pour IPv4), alors les Sélecteurs IPsec (par exemple adresses source et destination, Next Protocol, ports source et destination, etc.) seront perdus. Mais le message d'erreur ICMP donnera toujours SG1 avec le SPI, les informations PMTU et les passerelles source et destination pour la SA associée.
La passerelle de sécurité destination et le SPI définissent de façon unique une association de sécurité pour définir un ensemble d'hôtes d'origine possibles. Dans ce cas, SG1 pourrait :
a. Envoyer l'information PMTU à tous les hôtes possibles d'origine. Cela ne fonctionnera pas très bien si la liste des hôtes est une wildcard où si plusieurs ou une majorité des hôtes n'envoyaient rien à SG1 ; mais cela peut marcher si les SPI/destination/etc correspondent à un ou peu d'hôtes.
b. Stocker le PMTU avec le SPI/etc et attendre le ou les paquets suivants de l'hôte d'origine pour la SA associée. Si il ou ils sont plus gros que le PMTU, on jette le ou les paquets, on compose le ou les messages PMTU ICMP avec le ou les nouveaux paquets et la mise à jour du PMTU, et on envoie le ou les messages ICMP concernant le problème à l'hôte ou aux hôtes d'origine. Ceci entraîne un délai dans la notification de l'hôte ou des hôtes d'origine, mais évite le problème de (a).
Etant donné que seule la deuxième approche est faisable dans tous les cas, une passerelle de sécurité DOIT donner une telle possibilité en option. Quoiqu'il en soit, si le message ICMP contient plus d'informations du paquet original, alors on aura peut-être suffisamment d'informations pour déterminer immédiatement l'hôte à qui on doit envoyer le message PMTU ICMP et pour trouver ce système avec les 5 champs (adresse source, adresse destination, port source, port destination, et protocole de transport) nécessaires pour déterminer l'endroit où stocker ou mettre à jour le PMTU. Dans ce cas, une passerelle de sécurité DOIT générer un message PMTU ICMP immédiatement après la réception d'un PMTU ICMP d'un accès. Remarque : Le champ Next Protocol peut ne pas être présent dans le message ICMP et l'utilisation du chiffrement ESP peut cacher les champs du Sélecteur qui ont été chiffrés.
B.3.2 Calcul du PMTU
Le calcul du PMTU à partir d'un PMTU ICMP doit prendre en compte l'addition d'un éventuel entête IPsec par H1 -- mode transport ou tunnel AH et/ou ESP. A partir d'un hôte unique, plusieurs applications peuvent partager un SPI et un problème de SA peut subvenir (Voir Section 4.5 "Combinaisons de base pour les SA" 1000 pour une description des combinaisons qui doivent être supportées). Le diagramme suivant illustre un exemple de SA entre deux hôtes (telle qu'elle est vu par l'un des hôtes). (ESPx ou AHx = mode transport)
Socket 1 -------------------------|
|
Socket 2 (ESPx/SPI-A) ---------- AHx (SPI-B) -- Internet
Pour retrouver le PMTU de chaque socket qui correspond à SPI-B, il sera nécessaire d'avoir des pointeurs de retour de SPI-B vers chacun des deux accès pour y parvenir -- Socket 1 et Socket 2/SPI-A.
B.3.3 Granularité du maintien des données PMTU
Dans les hôtes, la granularité avec laquelle le le traitement ICMP PMTU peut être exécuté diffère en fonction de la situation d'implémentation. En regardant l'hôte, il y a trois situations d'intérêt en respect des règles du PMTU :
a. Intégration d'IPsec dans l'implémentation native d'IP
b. Implémentations BITS, où IPsec est implémenté en dessus une implémentation existante de la pile du protocole TCP/IP, l'IP natif et les drivers du réseau local.
c. Pas d'implémentation IPsec -- Ce cas en fait partie parce qu'il nous intéresse dans le cas où une passerelle de sécurité renvoie les informations de PMTU à un hôte.
C'est seulement dans le cas (a) où les données du PMTU pourraient être mises à jour avec la même granularité que les associations de communication. Dans les autres cas, la couche IP mettra à jour les données du PMTU avec la granularité des adresses IP source et destination (et sur option les TOS/Class), comme décrit dans la RFC 1191. C'est une différence importante, parce que plus d'une association de communication peuvent correspondre aux mêmes adresses IP source et destination, et chaque association de communication peut avoir une quantité différente d'entête IPsec supplémentaire (par exemple, en raison de l'utilisation de différentes transformations ou différents algorithmes). Les exemples ci-dessous illustrent ceci.
Dans les cas (a) et (b)... Supposez que vous avez la situation suivante. H1 envoie à H2 et le paquet à envoyer de R1 à R2 excède le PMTU du réseau entre les deux.
==================================
| |
H1* --- R1 ----- R2 ---- R3 ---- H2*
1000 ^ |
|.......|
Si R1 est configuré pour ne pas fragmenter le trafic des abonnés, alors R1 envoie un message PMTU ICMP avec le PMTU approprié à H1. Le traitement de H1 change selon le type d'implémentation. Dans le cas (a) (IP natif), les services de sécurité seraient liés aux sockets ou équivalent. Ici, l'implémentation d'IP/IPsec dans H1 peut stocker ou mettre à jour le PMTU pour la socket associée. Dans le cas (b), la couche IP de H1 peut stocker ou mettre à jour le PMTU mais seulement avec la granularité des adresses source et destination et probablement du TOS/Class, comme vu ci-dessus. Ainsi le résultat peut être sub-optimal, puisque le PMTU pour un SRC/DST/TOS/Class donné sera la soustraction de la plus grande taille d'entête IPsec utilisée pour n'importe quelle association de communication entre une source et une destination données.
Dans le cas (c), il doit y avoir une passerelle de sécurité pour avoir un traitement IPsec. Supposez ainsi que vous avez la situation suivante. H1 envoie à H2 et le paquet à envoyer de SG1 à R excède le PMTU du réseau qui les sépare.
================
| |
H1 ---- SG1* --- R --- SG2* ---- H2
^ |
|.......|
Comme décrit ci-dessus pour le cas (b), la couche IP de H1 peut stocker ou mettre à jour le PMTU mais seulement avec la granularité des adresses source et destination, et probablement le TOS/Class. Ainsi le résultat peut être sub-optimal, puisque le PMTU pour un SRC/DST/TOS/Class donné sera la soustraction de la plus grande quantité d'entête d'IPsec utilisée pour n'importe quelle association de communication entre une source et une destination données.
B.3.4 Maintenance par socket des données PMTU
L'implémentation du calcul du PMTU (Section B.3.2) et le support des PMTU à la granularité d'"associations de communication" individuelles (Section B.3.3) est un problème local. Cependant, une implémentation IPsec sur un hôte basée sur les sockets DEVRAIT garder l'information pour chaque socket. Les systèmes BITS DOIVENT passer un PMTU ICMP à l'implémentation IP hôte, après l'avoir ajusté pour un tout entête IPsec ajouté par ces systèmes. La détermination de ce surplus DEVRAIT être déterminée par l'analyse du SPI et de toute information de Sélecteur présente dans le message PMTU ICMP renvoyé.
B.3.5 Livraison des données PMTU à la c 1000 ouche transport
Le mécanisme hôte pour mettre à jour le PMTU dans la couche transport est inchangé, comme spécifié dans la RFC 1191 (Path MTU Discovery).
B.3.6 Durée de vie des données PMTU
Ce sujet est vu dans la Section 6.1.2.4.
Annexe C -- Exemple de code pour la fenêtre d'espace des séquences
Cette annexe contient une routine qui implémente une vérification du bitmask pour une fenêtre de 32 paquets. Elle est apportée par James Hughes (jim_hughes@stortek.com) et Harry Varnis (hgv@anubis.network.com) et est un exemple d'implémentation. Notez que ce code teste à la fois le rejeu et les mises à jour de la fenêtre. Aussi, l'algorithme, tel qu'il est, devrait être appelé uniquement APRES que le paquet a été authentifié. Ceux qui implémentent pourraient vouloir étudier la possibilité de découper le code pour effectuer la vérification de rejeu avant de calculer l'ICV. Si le paquet n'est pas un rejeu, le code calculerait alors l'ICV, (jetant tous les mauvais paquets), et si le paquet est OK, on met à jour la fenêtre.
#include
#include
typedef unsigned long u_long;
enum {
ReplayWindowSize = 32
};
u_long bitmap = 0; /* session state - must be 32 bits */
u_long lastSeq = 0; /* session state */
/* Returns 0 if packet disallowed, 1 if packet permitted */
int ChkReplayWindow(u_long seq);
int ChkReplayWindow(u_long seq) {
u_long diff;
if (seq == 0) return 0; /* first == 0 or wrapped */
if (seq > lastSeq) { /* new larger sequence number */
diff = seq - lastSeq;
if (diff < ReplayWindowSize) { /* In window */
bitmap <<= diff;
bitmap |= 1; /* set bit for this packet */
} else bitmap = 1; &nbs 1000 p; /* This packet has a "way larger" */
lastSeq = seq;
return 1; /* larger is good */
}
diff = lastSeq - seq;
if (diff >= ReplayWindowSize) return 0; /* too old or wrapped */
if (bitmap & ((u_long)1 << diff)) return 0; /* already seen */
bitmap |= ((u_long)1 << diff); /* mark as seen */
return 1; /* out of order but good */
}
char string_buffer[512];
#define STRING_BUFFER_SIZE sizeof(string_buffer)
int main() {
int result;
u_long last, current, bits;
printf("Input initial state (bits in hex, last msgnum):\n");
if (!fgets(string_buffer, STRING_BUFFER_SIZE, stdin)) exit(0);
sscanf(string_buffer, "%lx %lu", &bits, &last);
if (last != 0)
bits |= 1;
bitmap = bits;
lastSeq = last;
printf("bits:%08lx last:%lu\n", bitmap, lastSeq);
printf("Input value to test (current):\n");
while (1) {
if (!fgets(string_buffer, STRING_BUFFER_SIZE, stdin)) break;
sscanf(string_buffer, "%lu", ¤t);
result = ChkReplayWindow(current);
printf("%-3s", result ? "OK" : "BAD");
printf(" bits:%08lx last:%lu\n", bitmap, lastSeq);
}
return 0;
}
Annexe D -- Catégories des messages ICMP
Le tableau suivant caractérise les messages ICMP comme étant soit générés par l'hôte, soit par le routeur, les deux, ou non-assigné/inconnu. Le premier ensemble concerne IPv4. Le deuxième concerne IPv6.
IPv4
Type Nom/Codes Référence
========================================================================
GENERES PAR L'HOTE :
3 Destination inatteignable
2 Protocole inatteignable [RFC792]
3 Port inatteignable [RFC792]
8 Hôte source isolé [RFC792]
14 Violation de la précédence de l'hôte [RFC1812]
10 Sélection de routeur [RFC1256]
Type Nom/Codes Référence
========================================================================
GENERES PAR LE ROUTEUR :
3 Destination inatteignable
0 Réseau inatteignable [RFC792]
4 Besoin de fragmentation, le bit DF est à 1 [RFC792] < 1000 br> 5 Route désigné par la source a échoué [RFC792]
6 Réseau destination inconnu [RFC792]
7 Hôte destination inconnu [RFC792]
9 Communication avec réseau dest. est interdite [RFC792]
11 Réseau destination inatteignable pour ce TOS [RFC792]
5 Redirigé
0 Datagramme redirigé pour le réseau (ou sous-réseau)[RFC792]
2 Datatgrame redirigé pour le TOS et le réseau [RFC792]
9 Avertissement du routeur [RFC1256]
18 Réponse du masque de l'adresse [RFC950]
Type Nom/Codes Référence
========================================================================
GENERES A LA FOIS PAR L'HOTE ET LE ROUTEUR :
0 Réponse à l'écho [RFC792]
3 Destination inatteignable
1 Hôte inatteignable [RFC792]
10 Communication avec l'hôte destination interdite [RFC792]
&nbs 1000 p; 12 Hôte destination inatteignable pour Type of Service[RFC792]
13 Communication administrativement interdite [RFC1812]
15 Coupure de priorité en effet [RFC1812]
4 Source éteinte [RFC792]
5 Redirection
1 Datragramme redirigé pour l'hôte [RFC792]
3 Datagramme redirigé pour Type of Service et Hôte [RFC792]
6 Changement de l'adresse hôte [JBP]
8 Echo [RFC792]
11 Temps excédé [RFC792]
12 Problème de paramètre [RFC792,RFC1108]
13 Estampillage [RFC792]
14 Réponse estampillage [RFC792]
15 Demande d'information [RFC792]
16 Réponse d'information 1000 [RFC792]
17 Demande du masque de l'adresse [RFC950]
30 Traceroute [RFC1393]
31 Erreur de conversion de datagramme [RFC1475]
32 Redirection de l'hôte mobile [Johnson]
39 SKIP [Markson]
40 Photuris [Simpson]
Type Nom/Codes Référence
========================================================================
TYPE NON-ASSIGNE OU INCONNU GENERES :
1 Non-assigné [JBP]
2 Non-assigné [JBP]
7 Non-assigné [JBP]
19 Réservé (pour la sécurité) &n 1000 bsp; [Solo]
20-29 Réservé (pour les tests de robustesse) [ZSu]
33 IPv6 Où-es-tu (Where-are-you) [Simpson]
34 IPv6 Je-suis-là (I-am-here) [Simpson]
35 Demande d'enregistrement de mobile [Simpson]
36 Réponse d'enregistrement de mobile [Simpson]
37 Demande du nom de domaine [Simpson]
38 Réponse du nom de domaine [Simpson]
41-255 Réservé [JBP]
IPv6
Type Nom/Codes Référence
========================================================================
GENERES PAR L'HOTE :
1 Destination inatteignable [RFC 1885]
4 Port inatteignable
Type Nom/Codes Référence
================== 1000 ======================================================
GENERES PAR LE ROUTEUR :
1 Destination inatteignable [RFC1885]
0 Pas de route pour la destination
1 Communication avec destination administrativement interdite
2 Pas un voisin
3 Adresse inatteignable
2 Paquet trop gros [RFC1885]
0
3 Temps excédé [RFC1885]
0 Limite des sauts excédé pendant le transit
1 Temps de réassemblage des fragments excédé
Type Nom/Codes Référence
========================================================================
GENERES A LA FOIS PAR LE ROUTEUR ET L'HOTE :
4 Problème de paramètre [RFC1885]
0 Champ erroné rencontré dans l'entête
1 Type Next Header non-reconnu rencontré
2 Option IPv6 non-reconnue rencontré
Références
[BL73] Bell, D.E. & LaPadula, L.J., "Secure Computer Systems : Mathematical Foundations and Model", Technical Report M74-244, The MITRE Corporation, Bedford, MA, May 1973.
[Bra97] Bradner, S., "Key words for use in RFCs to Indicate Requirement Level", 1000 BCP 14, RFC 2119, March 1997.
[DoD85] US National Computer Security Center, "Department of Defense Trusted Computer System Evaluation Criteria", DoD 5200.28-STD, US Department of Defense, Ft. Meade, MD., December 1985.
[DoD87] US National Computer Security Center, "Trusted Network Interpretation of the Trusted Computer System Evaluation Criteria", NCSC-TG-005, Version 1, US Department of Defense, Ft. Meade, MD., 31 July 1987.
[HA94] Haller, N., and R. Atkinson, "On Internet Authentication", RFC 1704, October 1994.
[HC98] Harkins, D., and D. Carrel, "The Internet Key Exchange (IKE)", RFC 2409, November 1998.
[HM97] Harney, H., and C. Muckenhirn, "Group Key Management Protocol (GKMP) Architecture", RFC 2094, July 1997.
[ISO] ISO/IEC JTC1/SC6, Network Layer Security Protocol, ISO-IEC DIS 11577, International Standards Organisation, Geneva, Switzerland, 29 November 1992.
[IB93] John Ioannidis and Matt Blaze, "Architecture and Implementation of Network-layer Security Under Unix", Proceedings of USENIX Security Symposium, Santa Clara, CA, October 1993.
[IBK93] John Ioannidis, Matt Blaze, & Phil Karn, "swIPe: Network-Layer Security for IP", presentation at the Spring 1993 IETF Meeting, Columbus, Ohio
[KA98a] Kent, S., and R. Atkinson, "IP Authentication Header", RFC 2402, November 1998.
[KA98b] Kent, S., and R. Atkinson, "IP Encapsulating Security Payload (ESP)", RFC 2406, November 1998.
[Ken91] Kent, S., "US DoD Security Options for the Internet Protocol", RFC 1108, November 1991.
[MSST97] Maughan, D., Schertler, M., Schneider, M., and J. Turner, "Internet Security Association and Key Management Protocol (ISAKMP)", RFC 2408, November 1998.
[Orm97] Orman, H., "The OAKLEY Key Determination Protocol", RFC 2412, November 1998.
[Pip98] Piper, D., "The Internet IP Security Domain of Interpretation for ISAKMP", RFC 2407, November 1998.
[Sch94] Bruce Schneier, Applied Cryptography, Section 8.6, John Wiley & Sons, New York, NY, 1994.
[SDNS] SDNS Secure Data Network System, Security Protocol 3, SP3, Document SDN.301, Revision 1.5, 15 May 1989, published in NIST Publication NIST-IR-90-4250, February 1990.
[SMPT98] Shacham, A., Monsour, R., Pereira, R., and M. Thomas, "IP Payload Compression Protocol (IPComp)", RFC 2393, August 1998.
[TDG97] Thayer, R., Doraswamy, N., and R. Glenn, "IP Security Document Roadmap", RFC 2411, November 1998.
[VK83] V.L. Voydock & S.T. Kent, "Security Mechanisms in High-level Networks", ACM Computing Surveys, Vol. 15, No. 2, June 1983.
Démenti
Les points de vue et les spécifications exprimés dans ce document sont ceux des auteurs et ne sont pas nécessairement ceux de leurs employeurs. Les auteurs et leurs employeurs démentent spécifiquement la responsabilité de tous les problèmes résultant de l'implémentation ou de l'utilisation correcte ou incorrecte de ce concept.
Information concernant ac5 les auteurs
Stephen Kent
BBN Corporation
70 Fawcett Street
Cambridge, MA 02140 (USA)
Phone: +1 (617) 873-3988
EMail: kent@bbn.com Randall Atkinson
@Home Network
425 Broadway
Redwood City, CA 94063 (USA)
Phone: +1 (415) 569-5000
EMail: rja@corp.home.net
Note originale de Copyright
Copyright (C) The Internet Society (1998). Tous droits réservés.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.