XGEN : Introduction générale à ASN.1 et BER

Traductions disponibles Traductions disponibles
Numéro d'article: 252648 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit Abstract Syntax Notation 1 (ASN.1) et les règles BER et explique leurs différences.

De nombreux informaticiens, y compris des professionnels occasionnels, ont souvent une vague idée de ce que sont ASN.1 et BER, de leurs différences ou même pourquoi il est important de les distinguer. Leur confusion est compréhensible car même les personnes qui connaissent ASN.1 et BER utilisent souvent les termes de façon incorrecte.

Comme ASN.1 est le langage des normes, il est très commun de trouver des recommandations de normes écrites en ASN.1. Les techniciens de support, les consultants et des spécialistes des technologies de l'information bénéficient tous de la connaissance d'ASN.1 car il leur permet d'approfondir les normes et de décoder et comprendre le contenu des données qu'elles résolvent. Les normes les plus communes écrites en ASN.1 sont celles qui sont créées par le CCITT (International Telegraph and Telephone Consultative Committee) et l'ITU (International Telecommunications Union). Cependant, les membres de l'IETF (Internet Engineering Task Force) utilisent de plus en plus ASN.1 pour spécifier leurs recommandations de façon succincte. ASN.1 décrit en une page ce qui prendrait cinq ou six pages de rédaction dans un autre format.

La liste suivante répertorie les normes qui sont couramment utilisées dans ASN.1 :
  • X.400 (Messagerie électronique)
  • X.500 (Services d'annuaire)
  • X.200 (Communications réseau)
  • RFC (Request for Comments) 2251-2256 (Protocole allégé d'accès aux répertoires ou LDAP)
  • De nombreux autres RFC à mentionner
Les spécialistes informatiques ou de communications qui souhaitent vraiment les différencier doivent avoir au moins une connaissance de base d'ASN.1 et des règles BER. Comme Microsoft Windows 2000 et Microsoft Exchange 2000 Server implémentent les normes mentionnées ci-dessus sous une forme ou une autre, l'aisance de lecture et de compréhension d'ASN.1 et de BER permet de résoudre plus facilement les problèmes liés à ces deux produits.

Plus d'informations

ASN.1

Abstract Syntax Notation One (plus connu sous le nom d'ASN.1) est un langage de définition des normes sans tenir compte de l'implémentation. C'est le langage des rédacteurs de normes. Lorsque John Smith chez CalTech souhaite écrire une recommandation pour standardiser les procédures qu'un composant suit pour s'adresser à un autre composant, il écrit la recommandation dans la notation ASN.1 et la soumet à un organisme de normalisation tel que l'ITU. ASN.1 facilite la communication entre les professionnels et les membres du comité en proposant un langage commun pour décrire une norme. ASN.1 est défini dans les recommandations ITU X.209 et X.690.


Par exemple, ASN.1 définit :
  • Ce qu'est un "type".
  • Ce qu'est un "module" et à quoi il devrait ressembler.
  • Ce qu'est un ENTIER.
  • Ce qu'est un BOOLÉEN.
  • Ce qu'est un "type structuré".
  • La signification de certains mots clés (par exemple, BEGIN, END, IMPORT, EXPORT, EXTERNAL, et ainsi de suite).
  • Comment faire pour "baliser" un type afin qu'il puisse être codé correctement.
ASN.1 ne prend pas en compte les normes spécifiques, la méthode de codage, le langage de programmation ou les plates-formes matérielles. C'est simplement un langage de définition des normes. Ou en d'autres termes, les normes sont écrites en ASN.1.

BER

BER est le nom commun des règles BER d'ASN.1. BER est défini dans les recommandations ITU-T X.209 et X.690. BER est un ensemble de règles permettant de coder des données ASN.1 en un flux d'octets qui peut être transmis par une liaison de communication. D'autres méthodes de codage des données ASN.1 comprennent les règles DER (Distinguished Encoding Rules), CER (Canonical Encoding Rules) et PER (Packing Encoding Rules). Chaque méthode de codage a son application, mais BER tend à être celle qui est couramment utilisée et dont on parle le plus.

BER définit :
  • Les méthodes de codage des valeurs ASN.1.
  • Les règles pour décider du moment où utiliser une méthode donnée.
  • Le format d'octets spécifiques dans les données.

Différences entre ASN.1 et BER

ASN.1 est semblable à un langage de programmation (tel que C) alors que BER est semblable à un compilateur de ce langage. Les compilateurs sont spécifiques aux plates-formes alors que de nombreux langages de programmation de niveau supérieur ne le sont pas. C définit les règles et le langage pour écrire un programme. Un programme n'est pas C; il est écrit en C. Le programme est utile une fois compilé pour une plate-forme spécifique (telle qu'Intel x86). Il en est de même avec ASN.1 et BER. ASN.1 est le langage pour écrire une norme. Une norme n'est pas ASN.1; elle est écrite en ASN.1. Les données qui sont générées à partir d'un programme conforme à la norme peuvent être couramment appelées "données ASN.1". Les données ASN.1 ne sont pas utiles (c'est-à-dire, elles ne peuvent pas être transmises sur un RÉSEAU LOCAL) si elles ne sont pas codées en un flux d'octets qui peut être facilement décodé à destination. L'exemple suivant illustre ces concepts dérivés des recommandations ITU-T X.209, Annexe I. C'est une description non officielle d'un enregistrement personnel de données :
   Nom               :    John P Smith
   Date de naissance :    17 juillet 1959
   (autres données)
					
La description ASN.1 d'un enregistrement personnel (la norme, Personnel record) peut être :
   PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
       Name,
       title [0]       VisibleString,
       dateOfBirth [1]          Date,
       (other types defined)          }

   Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
       givenName       VisibleString,
       initial         VisibleString, 
       familyName      VisibleString  }
					
Cette description d'ASN.1 montre ce à quoi ressemble un PersonnelRecord. Mais, plus important, elle explique la façon dont les données de l'application devraient être mises en forme pour devenir des données ASN.1 avant que le codage ne se produise.

L'application mappe ensuite les données personnelles dans la structure d'enregistrement personnel (format des données ASN.1), puis applique les règles BER (Basic Encoding Rules) aux données ASN.1. Voici ce à quoi elle devrait ressembler (sauf que les noms seraient convertis en ASCII) :
  Personnel
  Record     Length   Contents
  60         8185
                      Name     Length  Contents
                      61       10
                                       VisibleString  Length  Contents
                                       1A             04      "John"
                                       VisibleString  Length  Contents
                                       1A             01      "P"
                                       VisibleString  Length  Contents
                                       1A             05      "Smith"

                       DateofBirth     Length  Contents
                       A0              0A
                                               Date    Length  Contents
                                               43      08      "19590717"
					
Une fois que tout est terminé, les éléments effectivement transmis (ou plus spécifiquement, ce qui devient la partie données du paquet à la couche inférieure suivante) sont :
60 81 85 61 10 1A 04 ....
....  0A 43 08 19 59 07 17
					

Références

Pour plus d'informations sur ASN.1, consultez la recommandation ITU-T X.680 à 683.
Pour plus d'informations sur BER, consultez la recommandation elle-même (recommandation ITU-R X.690 ou X.691).

Pour plus d'informations, consultez la page Web "Changing from ASN.1:1988 to ASN.1:2002" (en anglais) du groupe d'étude de l'UIT-T 17 :
http://www.itu.int/ITU-T/studygroups/com17/changing-ASN/

Propriétés

Numéro d'article: 252648 - Dernière mise à jour: vendredi 7 mai 2004 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professionel
Mots-clés : 
kbinfo KB252648
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com