Aller au contenu

« ASN.1 » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Yv91 (discuter | contributions)
Fonctionnalité de suggestions de liens : 3 liens ajoutés.
SyntaxTerrorBot (discuter | contributions)
 
Ligne 1 : Ligne 1 :
{{Voir homonymes|ASN}}
{{Voir homonymes|ASN}}


'''ASN.1''' ({{lang|en|''Abstract Syntax Notation One''}}) est un standard international spécifiant une notation destinée à décrire des structures de données dans le secteur des [[télécommunications]] et des [[Réseau informatique|réseaux informatiques]]. La description en ASN.1 d'une structure de données a pour but d'obtenir une spécification de la structure qui est indépendante d'un encodage lié à un matériel particulier et sans ambiguïté.
'''ASN.1''' ({{|en|''Abstract Syntax Notation One''}}) est un standard international spécifiant une notation destinée à décrire des structures de données dans le secteur des [[télécommunications]] et des [[Réseau informatique|réseaux informatiques]]. La description en ASN.1 d'une structure de données a pour but d'obtenir une spécification de la structure qui est indépendante d'un encodage lié à un matériel particulier et sans ambiguïté.


L'ASN.1 est un standard défini conjointement par l'[[organisation internationale de normalisation]], la [[commission électrotechnique internationale]] et l'[[union internationale des télécommunications]]. La notation est décrite dans la série X.680<ref>[https://www.itu.int/rec/T-REC-X.680-201508-I/en ITU-T X.680 - Specification of basic notation ]</ref> et les encodages dans la série X.690<ref>[https://www.itu.int/rec/T-REC-X.690/en ITU-T X.690 - ASN.1 encoding rules]</ref>.
L'ASN.1 est un standard défini conjointement par l'[[organisation internationale de normalisation]], la [[commission électrotechnique internationale]] et l'[[union internationale des télécommunications]]. La notation est décrite dans la série X.680<ref>[https://www.itu.int/rec/T-REC-X.680-201508-I/en ITU-T X.680 - Specification of basic notation ]</ref> et les encodages dans la série X.690<ref>[https://www.itu.int/rec/T-REC-X.690/en ITU-T X.690 - ASN.1 encoding rules]</ref>.
Ligne 7 : Ligne 7 :
== Support des langages ==
== Support des langages ==


ASN.1 est une notation pour déclarer des [[Type (informatique)|types de données]]. Cette notation ne décrit pas comment manipuler une variable basée sur un type ASN.1. Certains langages supportent nativement ASN.1 comme le langage de modélisation exécutable [[Specification and Description Language|SDL]] (Specification and Description Language) ou comme la notation de test de conformité [[TTCN-3]] (Testing and Test Control Notation). Dans ces deux langages il suffit d'importer un module ASN.1 et on peut alors déclarer une variable basée sur un des types déclarés dans le module ASN.1. Si le langage que l'on souhaite utiliser ne supporte pas nativement l'ASN.1, on peut utiliser des outils qui transforment la déclaration ASN.1 dans une déclaration d'un langage de programmation comme un [[header]] C.
ASN.1 est une notation pour déclarer des [[Type (informatique)|types de données]]. Cette notation ne décrit pas comment manipuler une variable basée sur un type ASN.1. Certains langages supportent nativement ASN.1 comme le langage de modélisation exécutable [[Specification and Description Language|SDL]] (Specification and Description Language) ou comme la notation de test de conformité [[TTCN-3]] (Testing and Test Control Notation). Dans ces deux langages il suffit d'importer un module ASN.1 et on peut alors déclarer une variable basée sur un des types déclarés dans le module ASN.1. Si le langage que l'on souhaite utiliser ne supporte pas nativement l'ASN.1, on peut utiliser des outils qui transforment la déclaration ASN.1 dans une déclaration d'un langage de programmation comme un [[header]] C.


== Encodages ==
== Encodages ==
Il existe plusieurs règles d'encodage standards pour les données décrites par l'ASN.1. Le standard propose les règles suivantes :
Il existe plusieurs règles d'encodage standards pour les données décrites par l'ASN.1. Le standard propose les règles suivantes :


* [[Basic Encoding Rules]] (BER) <ref>[https://www.itu.int/rec/T-REC-X.690-201508-I/en ITU-T X.690 - Basic Encoding Rules (BER)]</ref>
* [[Basic Encoding Rules]] (BER) <ref>[https://www.itu.int/rec/T-REC-X.690-201508-I/en ITU-T X.690 - Basic Encoding Rules (BER)]</ref>
Ligne 57 : Ligne 57 :
=== Liens externes ===
=== Liens externes ===
* {{en}} [http://www.oss.com/asn1/booksintro.html Quelques livres de référence téléchargeables]
* {{en}} [http://www.oss.com/asn1/booksintro.html Quelques livres de référence téléchargeables]
* {{en}} [http://www.marben-products.com/asn.1/services/decoder-asn1.html {{lang|en|''Decodeur web pour l'ASN.1, proposé par Marben.''}}]
* {{en}} [http://www.marben-products.com/asn.1/services/decoder-asn1.html {{|en|''Decodeur web pour l'ASN.1, proposé par Marben.''}}]
* {{en}} [http://lionet.info/asn1c/download.html {{lang|en|''Online ASN.1 compiler''}}]
* {{en}} [http://lionet.info/asn1c/download.html {{|en|''Online ASN.1 compiler''}}]
* {{en}} [https://www.beanit.com/asn1/ jASN1] Java ASN.1 BER library sur beanit.com
* {{en}} [https://www.beanit.com/asn1/ jASN1] Java ASN.1 BER library sur beanit.com
* {{fr+en}} [http://josefsson.org/libtasn1/ {{lang|en|''Tiny ASN.1 library''}}]
* {{fren}} [http://josefsson.org/libtasn1/ {{|en|''Tiny ASN.1 library''}}]
* {{en}} [http://www.itu.int/rec/T-REC-X/en série X des standards ITU-T] sur le site de l'ITU
* {{en}} [http://www.itu.int/rec/T-REC-X/en série X des standards ITU-T] sur le site de l'ITU



Dernière version du 20 novembre 2023 à 19:29

ASN.1 (Abstract Syntax Notation One) est un standard international spécifiant une notation destinée à décrire des structures de données dans le secteur des télécommunications et des réseaux informatiques. La description en ASN.1 d'une structure de données a pour but d'obtenir une spécification de la structure qui est indépendante d'un encodage lié à un matériel particulier et sans ambiguïté.

L'ASN.1 est un standard défini conjointement par l'organisation internationale de normalisation, la commission électrotechnique internationale et l'union internationale des télécommunications. La notation est décrite dans la série X.680[1] et les encodages dans la série X.690[2].

Support des langages

[modifier | modifier le code]

ASN.1 est une notation pour déclarer des types de données. Cette notation ne décrit pas comment manipuler une variable basée sur un type ASN.1. Certains langages supportent nativement ASN.1 comme le langage de modélisation exécutable SDL (Specification and Description Language) ou comme la notation de test de conformité TTCN-3 (Testing and Test Control Notation). Dans ces deux langages il suffit d'importer un module ASN.1 et on peut alors déclarer une variable basée sur un des types déclarés dans le module ASN.1. Si le langage que l'on souhaite utiliser ne supporte pas nativement l'ASN.1, on peut utiliser des outils qui transforment la déclaration ASN.1 dans une déclaration d'un langage de programmation comme un header C.

Il existe plusieurs règles d'encodage standards pour les données décrites par l'ASN.1. Le standard propose les règles suivantes :

L'Encoding Control Notation permet à l'utilisateur de définir son propre encodage de manière standard.

Client ::= SEQUENCE {
  nom            PrintableString (SIZE (1..40)),
  rue            PrintableString (SIZE (1..50)) OPTIONAL,
  codepostal     NumericString   (SIZE (10)   ),
  ville          PrintableString (SIZE (1..30)),
  pays           PrintableString (SIZE (1..20)) DEFAULT pays-pardefaut 
  }
pays-pardefaut PrintableString ::= "France"

Domaines d'application

[modifier | modifier le code]

Ce standard est mis en œuvre dans un grand nombre d'applications (gestion de réseaux, messagerie, sécurité, téléphonie, Internet, etc.).

L'ASN.1 est par ailleurs l'un des formats utilisés par le NCBI.

Implémentations

[modifier | modifier le code]

GNU Libtasn1

[modifier | modifier le code]

GNU Libtasn1[14] est une bibliothèque C permettant la manipulation d'objets ASN.1, y compris pour les encodages BER/DER. C'est un logiciel libre écrit à l'origine par Fabio Fiorina et aujourd'hui maintenu pour le projet GNU par Simon Josefsson et Nikos Mavrogiannopoulos. Cette brique logicielle est utilisée par GnuTLS pour traiter la structure de certificats X.509 et par GNU Shishi pour le traitement de structures Kerberos version 5.

À l'origine, ce standard est spécifié en 1984 dans une partie de la recommandation X.409 du CCITT. Toutefois, en 1988, faisant suite à son large usage, la spécification de l'ASN.1 devient l'objet du document CCITT X.208. Finalement, ce document sera retiré en 2002 et le standard ASN.1 est maintenant décrit par les documents X.680 à X.683 mis à jour en 2009 (les documents ISO/CEI ont pour références 8824-1 à 8824-4). Plusieurs encodages de l'ASN.1 font l'objet des recommandations X.690 à X.695 ; notamment, les encodages BER, CER et DER sont spécifiés par le X.690.

Notes et références

[modifier | modifier le code]

Article connexe

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Liste des éditeurs de solutions ASN.1

[modifier | modifier le code]