140 likes | 467 Vues
ASN.1. Abstract Syntax Notation One. ASN.1 is a standard way to describe a message(a unit application data) that can be sent or received in a network. ASN.1 is divided into two parts:
E N D
ASN.1 Abstract Syntax Notation One ASN.1 is a standard way to describe a message(a unit application data) that can be sent or received in a network. ASN.1 is divided into two parts: 1. The rules of syntax for describing the contents of a message in terms of data type and content sequence or structure. 2. How you actually encode each data item in a message. PKI2001 (TIFR, Mumbai)
Why Care about Technical Architecture & Standards? If you wantYou must standardize Application APIs Portability Implementation Interoperability Protocols Implementation Replaceability All PKI2001 (TIFR, Mumbai)
ASN.1 Encoding • Given any ASN.1 description of a message, a representation can be derived mechanically by applying a set of encoding rules. • Initially only a single set, the Basic Encoding Rules(BER), were standardized. • Later Canonical and Distinguished Encoding Rules were standardized PKI2001 (TIFR, Mumbai)
Encoding Abstract Values • When any (correct) set of encoding rules are applied to the abstract values in any given ASN.1 type, they will produce bit-patterns (actually octet strings) for each value such that any given octet string corresponds to precisely one abstract value. • The reverse is not necessarily true. PKI2001 (TIFR, Mumbai)
ASN.1 data types • ASN.1 notation is recognizable as a high level definition language. • It is constructed in modules with unique identifiers. • There are over 20 built-in identifiers e.g. BOOLEAN, INTEGER, ENUMERATED, REAL, BIT STRING, UTCTime, EXTERNAL, OCTET STRING, NULL etc. PKI2001 (TIFR, Mumbai)
Arbitrarily complex structures can be built up from these data types using constructors such as : • SET{ } - order not significant • SEQUENCE { } -fixed order one example, WeatherReport ::=SEQUENCE { stationNumber INTEGER(1..99999) timeOfReport UTCTime pressure INTEGER(850..1100) temperature INTEGER(-100..60) humidity INTEGER(0..100) windVelocity INTEGER(0..500) windDirection INTEGER(0..48) } PKI2001 (TIFR, Mumbai)
TLV(type-length-value), ILC(identifier - length - contents) • BER generate encodings which are of a class known as type - length - value. • Now in ASN.1 they are called as identifier - length - contents. • The structure is therefore recursive such that the contents can be a series of ILCs • This bottoms out with genuine contents such as a text string or an integer. PKI2001 (TIFR, Mumbai)
Basic Encoding Rules A Schematic Representation PKI2001 (TIFR, Mumbai)
The use of ASN.1 Compilers PKI2001 (TIFR, Mumbai)