La couche présentation : ASN.1 et BER Abstract Syntax Notation #1

Slides:



Advertisements
Présentations similaires
Abstract Syntax Notation 1 CIN ST MANDRIER Syntaxe de transfert ASN 1 DonnéesCompteurType Identificateur de données Nombre d'octets de données 1 octets.
Advertisements

Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
L'image: Le codage des images BacPro SEN Lycée Condorcet.
IFT359 – Programmation fonctionnelle Thème 02 B partie A introduction au langage fonctionnel choisi 1.
1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
SQL partie 5 1 LMD create – update – primary key secondary key.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Les Bases de données Définition Architecture d’un SGBD
Cross-Plateform Cours JavaScript
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Leçon de Programmation Intermédiaire
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Bases de données multimédia
03/02/2018.
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Pas de variable globale
SNET: Administration et sécurisation des réseaux EPFC Alain Smets
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Techniques de décomposition
Semaine #1 INF130 par Frédérick Henri.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Chapitre 01: Structure d'un module VHDL
OWL-S.
SNMP - Comment calculer l'utilisation de la Bande passante
AO (Architecture des ordinateurs)
Chiffrement de bout en bout
Work: ISA8895 Implementation Section: Interoperability Chapter: B2O
Format des fichiers TIFF
Semaine #6 INF130 par Frédérick Henri.
Commande show dialer ccnp_cch ccnp_cch.
Programmation système
Week 1 Lecture 1 Introduction à R L3PRO 2017.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Partie 3 : Interface utilisateur
Août 2009.
Les gammes de valeurs des paramètres
Programmation en C++ C++ de base
Structure D’une Base De Données Relationnelle
Programmation Android Communication entre composants
Programmation Orientée Objet
Introduction à Internet
Calcul Scientifique Initiation à SCILB
Message Oriented Middleware MOM - Beghdad abdelkrim -abass youcef.
Chapitre I: Les structures des données 4 éme technique 3 // Mlle : Mehrez Majda.
Normalisation & Certification M2PQSE Nedra Raouefi 2018/
Cours 10 : Les Web Services et WSDL Février Version 1.0 -
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
Révision de l’alphabet
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3.
I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3.
IDL interface définition langage. Plan Introduction Principaux éléments IDL Types de données IDL Déclaration de module Déclaration d'interface Déclaration.
Applications Client Serveur Illustration avec XDR/RPC et ASN.1
PROGRAMMATION ET ENSEIGNEMENT
Les liaisons des données Sommaire Principe Les couches de liaison –LLC (Contrôle de Liaison Logique) –MAC (Contrôle d’Acces au Support) Mode de Communication.
PROGRAMMATION ET ENSEIGNEMENT
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
Principes de programmation (suite)
Les arbres généraux.
C021TV-I1-S4.
Lecture/Écriture de fichiers (I/O)
CONFIGURATION D’UN ROUTEUR Introduction et planification du cours  Configuration d’un routeur  Administration d’un routeur  Protocoles RIP et IGRP 
Protocoles d'administration réseau CDP, LLDP
Design Patterns en programmation par objets
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Qu’est ce qu’une page web? Comment fonctionne un site web?
Dridi Lobna 1 Couche Réseau II Réseau : Gestion de l’accès.
Transcription de la présentation:

La couche présentation : ASN.1 et BER Abstract Syntax Notation #1 Et Basic Encoding Rules Mickaël Hoerdt HEPIA These slides are licensed under the creative commons attribution share-alike license 3.0. You can obtain detailed information about this license at http://creativecommons.org/licenses/by-sa/3.0/ The slides are part of an effort to develop an open-source networking textbook. See http://inl.info.ucl.ac.be/CNP3 for the current version of the textbook and more information on how to contribute.

Contenu Introduction sur la couche présentation Le langage de description de syntaxe ASN.1 Encodage de la syntaxe de représentation des données avec Basic Encoding Rule (BER)

Introduction à la couche de présentation (1) Sans la couche de présentation La représentation interne des données est différente Ce qui fait que la présentation finale des données est différente aussi Syntaxe réelle Syntaxe réelle "5" "20480" 0 0 0 5 0 0 0 5 Couche Application Sens de lecture en mémoire Sens de lecture en mémoire

Introduction à la couche de présentation (2) Avec la couche de présentation La représentation des données de la source est convertie dans la représentation des données de la destination Les deux syntaxes de représentation doivent être connues de la source et de la destination : le nombre de syntaxes possible est immense (autant que d'applications différentes) Syntaxe réelle Syntaxe réelle "5" "5" 0 0 0 5 0 0 0 5 5 0 0 0 Couche Application Sens de lecture en mémoire Sens de lecture en mémoire 0 0 0 5 5 0 0 0 5 0 0 0

Introduction à la couche de présentation (3) Avec la couche de présentation et sérialisation La représentation des données est convertie dans la représentation des données de transfert (ex : htonl, htons) La représentation de transfert est décodée dans la syntaxe de destination (ex : ntohl, ntohs pour représenter les entiers en big-endian) Syntaxe réelle Syntaxe réelle "5" "5" 0 0 0 5 0 0 0 5 5 0 0 0 Couche Application Sens de lecture en mémoire Sens de lecture en mémoire 0 0 0 5 0 0 0 5 02 01 05 02 01 05

Introduction à la couche de présentation(4) Intérêt d'une syntaxe de représentation de transfert Pas besoin de connaître toutes les syntaxes réelles utilisées par les applications qui communiquent Joue le rôle d'un langage de représentation commun entre les différentes applications pouvant être exécutées sur : Différentes architectures Différents systèmes d'exploitations Différents langages de programmation Permet de décrire les messages d'un protocole de manière unifiée.

Introduction à la couche de présentation(5) Fonction de la couche présentation : Fournir à la couche supérieure (la couche application) des données où : La sémantique est conservée La syntaxe de cette sémantique est connue Moyens utilisés : Description des type de données indépendante de l'implémentation (Par exemple ASN.1) Sérialisation des différents type des données utilisés (Par exemple BER) (Faire le lien entre la couche session et la couche application)

Contenu Introduction sur la couche présentation Le langage de description de syntaxe ASN.1 Encodage de la syntaxe de représentation des données avec Basic Encoding Rule (BER)

Abstract Syntax Notation (ASN.1) Langage utilisé pour décrire de manière abstraite, des données qui sont destinées à être communiquées sur un réseau. Est défini par une norme de l'ITU* (X.680, X.681, X.682, X.683) Par définition, ce langage est indépendant du Processeur Système d'exploitation Langage de programmation Utilisé pour définir les normes de protocoles. Par ex : SMTP, MAP (Mobile Application Part : GSM, UMTS), H323 (VOIP), LDAP, ... * http://fr.wikipedia.org/wiki/Union_internationale_des_t%C3%A9l%C3%A9communications

Abstract Syntax Notation (ASN.1) Le langage permet de décrire : Les types fondamentaux/universaux INTEGER (entiers) BOOLEAN (booléens) Chaînes de caractères Etc Des types composés et construire des nouveaux types (comme typedef en C): SEQUENCE SET CHOICE

Abstract Syntax Notation (ASN.1) Syntaxe de définition de nouveau types : Badge ::= INTEGER Name ::= Printable String Wage ::= REAL Deceased ::= BOOLEAN First-name ::= [APPLICATION 1] Printable String

Abstract Syntax Notation (ASN.1) Un exemple un peu plus compliqué Person ::= SEQUENCE { familyname Printable String, firstname SEQUENCE OF Printable String, birthday GENERALIZED TIME, gender ENUMERATED {male(0), female(1), unknown(2)}, children [0] SEQUENCE OF Person OPTIONAL, spouse [1] Person OPTIONAL, ... } Pour éviter l'ambiguité lors de l'encodage des données

Contenu Introduction sur la couche présentation Le langage de description de syntaxe ASN.1 Encodage de la syntaxe de représentation des données avec Basic Encoding Rule (BER)

Basic Encoding Rule (BER) Est une norme d'encodage de syntaxe de transfert recommandée par l'ITU (X.690) Utilisée par beaucoup de protocoles réseaux (SNMP, SET, LDAP, ...) Est décrit par un langage standard de description de la syntaxe : ASN.1 et peut donc être encodé/décodé facilement avec un « compilateur/décompilateur » ASN.1 <-> BER

Basic Encoding Rule (BER) Principe : Tout les types (fondamentaux ou composés) sont encodés sous forme de message Type, Length, Value (TLV) de longueur variable : Un type composé encapsule d'autres types de la manière suivante : Type Length Value 1 to n bytes 1 to 127 bytes 1 to 21008 bytes Value Type Length Type Length Value Type Length Value Type Length Value

Basic Encoding Rule : champs type Le champs type contient : Un identifiant de classe (2 bits) Universal (00) Application (01) Private (10) Context-specific (11) Un identifiant de forme (1 bit) Atomic (0) Structured (1) Un tag identifiant le type (n bits)

BER : les tags de classe « universal » 0 reserved for BER 1 BOOLEAN 2 INTEGER 3 BIT STRING 4 OCTET STRING 5 NULL 6 OBJECT IDENTIFIER 7 ObjectDescriptor 8 INSTANCE OF, EXTERNAL 9 REAL 10 ENUMERATED 11 EMBEDDED PDV 12 UTF8String 13 RELATIVE-OID 16 SEQUENCE, SEQUENCE OF 17 SET, SET OF 18 NumericString 19 PrintableString 20 TeletexString, T61String 21 VideotexString 22 IA5String 23 UTCTime 24 GeneralizedTime 25 GraphicString 26 VisibleString, ISO646String 27 GeneralString 28 UniversalString 29 CHARACTER STRING 30 BMPString IA5String = Chaîne de caractère au format ascii Pour les autres formats de chaînes de caractères voir http://www.obj-sys.com/asn1tutorial/node128.html

Basic Encoding Rule : champs length Si longueur < 127 Champs codé sur 1 octet Si longueur > 127 Champs codé sur n octets N < 127 La longueur réelle est codée sur 126 octets au plus i.e longueur max = 2^1008

BER : Exemple Person ::= SET { name IA5String, age INTEGER, female BOOLEAN } Supposons qu'on veuille encoder une instance du type Person avec les valeurs Maggie,4 et True Encodage de Maggie en IA5String, de type Universal, Atomic, Tag 22 1 0 1 1 0 0x6 Maggie  en ascii : 0x77 0x65 0x71 0x71 0x73 0x69 = 0x16 0x6 077 0x65 0x71 0x71 0x73 0x69 Encodage de 4 en Integer, de type Universal, Atomic, Tag 2 0 0 0 1 0 0x1 0x04 = 0x02 0x01 0x04 Encodage de True en Boolean, de type Universal, Atomic, Tag 1 0 0 0 0 1 0x1 0xFF = 0x01 0x01 0xFF 1 1 0 0 0 1 0xE Encodage de SET avec les valeurs précédentes, de type Universal, Structured, Tag 17 0x16 0x6 077 0x65 0x71 0x71 0x73 0x69 0x02 0x01 0x04 0x01 0x01 0xFF