ASN.1 and its Encoding Rules

Download Report

Transcript ASN.1 and its Encoding Rules

International Telecommunication Union
ASN.1 Today and
Tomorrow
© 2002 OSS Nokalva
What is ASN.1?
What are Encoding Rules?
 ASN.1 (Abstract Syntax Notation One)
defines the syntax of messages to be
exchanged between peer applications
independently of local representation.
 Encoding Rules define how application
messages should be encoded while in
transit between peers.
Sample ASN.1 Definition
Age ::= INTEGER (0..7)
User ::= SEQUENCE {
name
IA5String (SIZE(1..128)),
age
Age,
address IA5String OPTIONAL,
...
}





Power to express both simple and complex types.
Types may be constrained in size and/or value.
More powerful constraints are available.
Fields may be marked as OPTIONAL.
Type extensibility allows for smooth enhancements.
Rich Set of Types
BOOLEAN
INTEGER
BIT STRING
OCTET STRING
NULL
REAL
ENUMERATED
SEQUENCE
SEQUENCE OF
GeneralizedTime
IA5String
BMPString
UTF8String
What are the Basic Encoding Rules
Age ::= INTEGER (0..7)
firstGrade Age ::= 6
Application 1
02 01 06
Application 2
Value
Length
Tag


}
Total of
24 bits
BER specifies how data should be encoded for transmission,
independently of machine type, programming language, or representation
within an application program.
BER is highly structured, prefixing all values with a tag and a length.
What are the Packed Encoding Rules?
Age ::= INTEGER (0..7)
firstGrade Age ::= 6
Application 1
110
Application 2
total length of 3 bits



Like BER, PER specifies how data should be encoded for transmission,
independently of machine type, programming language, or representation
within an application program.
Unlike BER, tags are never transmitted, while lengths and values are not
transmitted if known by both peers.
PER’s reason for existence is to conserve bandwidth. It is valuable in
audio and video over the Internet, air-ground communication, radiopaging, or wherever bandwidth is at a premium.
What are the XML Encoding Rules?
Age ::= INTEGER (0..7)
firstGrade Age ::= 6
Application 1
<Age>6</Age>
Application 2
total length of 12 octets




Just like BER and PER, XER also specifies how data should be encoded
for transmission, independently of machine type, programming language,
or representation within an application program.
Unlike the more compact encoding rules, XER is immediately legible.
XER’s reason for existence is ease of legibility (no tools are needed), but
XER uses significantly more bandwidth.
ECN
Encoding Control Notation
 Customize the encoding
 Modify (improve) the standard ASN.1
encoding rules
 Retrofit ASN.1 syntax to non-ASN.1
protocols
Some Benefits of ASN.1
 Application protocol designers can focus on the information that






needs to be exchanged
Provides implementors with a more precise description of the
messages to be exchanged
Application programmers can focus on the substance of their
application
Allows you to choose the most suitable programming language
Development time significantly reduced with use of quality ASN.1
tools
Proven technology
Widely adopted International Standard
Using ASN.1
ASN.1 can be used with most modern programming languages,
including Java and C++, as well as older ones such as C and COBOL.
ASN.1
PersonalInfo ::= SEQUENCE {
married BOOLEAN,
age
INTEGER (123456..124000),
name
PrintableString
}
Generated C header file: typedef struct PersonalInfo {
ossBoolean married;
int
age;
char
*name;
} PersonalInfo;
Encoding/decoding:
ossEncode(world, PersonalInfo_PDU,
&inBuf, &outBuf);
ossDecode(world, &pdunum, &inBuf,
&outBuf);
Development Work Flow
ASN.1
Syntax
ASN.1
Compiler
C Header
File
Encoder/
Decoder
Libraries
include
Application
Source Code
C/C++
Compiler
Linker
Executable Application
Current Uses of ASN.1
 Audio & Video over the Internet
AT&T, Intel, IBM, Microsoft, 3COM
 Electronic Commerce
American Express, GTE, MasterCard, VISA
 Telephony
AT&T, MCI, Motorola, Nokia, Sprint
 Aviation
FAA, ICAO
 Manufacturing
Ford, Mercedes Benz, Mitsubishi
 Network Management
Bull, Compaq, Hewlett-Packard, Sun
 Routers
Bay Networks, Cisco, Racal, Xyplex
ASN.1 and Encoding Rules Standards Documents
 ITU-T Rec. X.680 | ISO/IEC 8824-1 - Basic ASN.1





Notation
ITU-T Rec. X.681 | ISO/IEC 8824-2 - Information Object
Classes
ITU-T Rec. X.682 | ISO/IEC 8824-3 - Constraints
ITU-T Rec. X.683 | ISO/IEC 8824-4 - Parameterization
ITU-T Rec. X.690 | ISO/IEC 8825-1
Basic Encoding Rules (BER)
Canonical Encoding Rules (CER)
Distinguished Encoding Rules (DER)
ITU-T Rec. X.691 | ISO/IEC 8825-2
Packed Encoding Rules (PER)
Newest ASN.1 and Encoding Rules
Standards Documents
 ITU-T Rec. X.692 | ISO/IEC 8825-3
Encoding Control Notation (ECN)
 ITU-T Rec. X.693 | ISO/IEC 8825-4
XML Encoding Rules (XER)
 ITU-T Rec. X.694 | ISO/IEC 8825-5
Encoding XML-Defined Data Using ASN.1
ASN.1 Into the Future
 Security standards: XML Cryptographic




Message Syntax (XCMS)
Biometrics Information Management and
Security (X9.84)
Intelligent Transportation System (ITS)
Electric Power Utilities
Cellular telephones (UMTS)
The future: Why ASN.1?
 XML
ASN.1 as an XML schema notation is simpler
than and about as powerful as XSD. Users can
benefit from the browser display capabilities of
XML and still have compact ASN.1 encodings.
 PER
The compact encodings of PER are ideal for lowbandwidth applications of which there are many.
PER can go where XML encodings can not. It
makes XML usable in applications that it
otherwise cannot touch.
The future: Why ASN.1? (cont.)

ECN
Apply ASN.1 to legacy protocols. Replace error-prone hand
encodings and bitmaps with machine-processable cutomized
encodings.

DER
Used in every secure web purchase, secure email, digital
signatures, etc.

Extensibility
The extensibility built into ASN.1 allows version 1 systems to
seamlessly interwork with version 2 systems.
ASN.1 Consortium
 Share technical information and solutions
 Develop implementor’s agreement on limits to




impose on ASN.1
Coordinate with the ASN.1 Project to promote
the use of ASN.1
Keep interested parties abreast of upcoming
applications of ASN.1 in industry
Create test suite database
http://www.asn1.org