Basic Encoding Rules
Le codage Basic Encoding Rules (règles d'encodage basique), dont l'acronyme est BER, est un des formats d'encodage définis par le standard ASN.1.
Description
Le BER fait partie des premières règles édictées par le standard ASN.1 pour l'encodage d'informations abstraites dans un flux de données. Les règles, connues dans le jargon ASN.1 comme la syntaxe de transfert, donnent les séquences exactes d'octets qui sont utilisées pour encoder une donnée. Cette syntaxe définit les éléments suivants : la représentation des types de données de base, la façon de construire des éléments complexes ou composés à partir d'éléments plus basiques. La syntaxe du codage BER, ainsi que ses sous-ensembles Canonical Encoding Rules (CER) et Distinguished Encoding Rules (DER) sont définis dans les standards X.690 de l'ITU-T, qui sont eux-mêmes une partie de la série de documents de l'ASN.1.
Le format BER donne un format pour encoder les structures de données ASN.1, qui se décrit et se délimite lui-même. Chaque élément est encodé avec un type, une longueur, les valeurs et si nécessaire un marqueur de fin. Ce type d'encodage est couramment surnommé type-length-value (type-longueur-valeur) ou simplement encodage TLV. Ce format permet au récepteur du message de décoder des données au format ASN.1 même si le flux est incomplet et sans avoir de connaissances a priori de la taille, du contenu et de la sémantique des données[1].
Comparaison par rapport à des formats alternatifs
La différence clé du format BER (et également CER et DER) est la flexibilité apportée par sa syntaxe. Comme le dit le standard X.690 : « des encodages alternatifs sont permis par le BER comme une option de l'émetteur. Les récepteurs qui se disent conformes au BER devraient accepter toutes les alternatives »[1]. Par exemple, lorsqu'il encode une valeur composée (c'est-à-dire une valeur composée de plusieurs valeurs plus petites et déjà encodées), l'émetteur peut utiliser une des trois formes pour indiquer la longueur des données[1]. Le récepteur doit être capable d'accepter tous les encodages conformes pour se dire conforme au codage BER. D'un autre côté, les encodages CER et DER font de la longueur une spécification optionnelle.
Une idée commune sur BER est qu'il serait « inefficace » comparé à d'autres règles d'encodage. Les défenseurs de BER ont argumenté que cette impression était surtout due aux implémentations ratées plutôt qu'à des faiblesses dans les règles d'encodage[2]. Ces implémentations reposent sur la flexibilité de BER pour utiliser une logique d'encodage plus facile à coder, mais qui produit des données plus grosses que nécessaires. Que ces insuffisances soit réelles ou pas, cela a conduit à de nombreuses alternatives d'encodage dont le Packed Encoding Rules , qui a pour objectif d'améliorer les performances et la taille de BER.
Des alternatives fournissant la flexibilité de BER mais utilisant d'autres encodages sont toujours développées. Les plus populaires sont basées sur XML, comme le XML Encoding Rules et l'ASN.1 SOAP[3]. De plus, il existe un standard pour convertir les schémas XML en schémas ASN.1 qui peut lui-même être encodé en utilisant BER[4].
Utilisation
BER reste malgré tout un format populaire pour transmettre des données entre des systèmes dont l'encodage natif diffère :
- le protocole SNMP demande l'encodage ASN.1 avec BER ;
- le standard de signature numérique PKCS#7 utilise également ASN.1 avec BER pour encoder les messages chiffrés ;
- de nombreux systèmes de télécommunications utilisent ASN.1 avec BER pour transmettre des messages à travers leur réseau[5], comme l'ISDN et les services de téléphonie mobile ;
- les messages LDAP sont encodés en BER.
Notes et références
- ITU-T X.690, ISO 8825-1
- Lin, Huai-An. "Estimation of the Optimal Performance of ASN.1/BER Transfer Syntax". ACM Computer Communication Review. July 93, 45 - 58.
- ITU-T Rec. X.892, ISO/IEC 24824-2
- ITU-T X.694, ISO/IEC ISO/IEC 8825-5
- Site ASN.1 - Utilisations
(en) Cet article contient des extraits de la Free On-line Dictionary of Computing qui autorise l'utilisation de son contenu sous licence GFDL.
Voir aussi
Liens internes
- Canonical Encoding Rules
- Distinguished Encoding Rules
- Packed Encoding Rules
- Simple Network Management Protocol
Liens externes
- (en) ITU-T X.690, ISO/IEC 8825-1
- (en) ITU-T X.892, ISO/IEC 24824-2
- (en) ITU-T X.694, ISO/IEC ISO/IEC 8825-5
- (en) jASN1 Java ASN.1 BER/DER library sur beanit.com