Abstract Syntax Notation One: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''topic''' - Beschreibung
== Beschreibung ==
== Beschreibung ==
Die '''Abstract Syntax Notation One''' ('''ASN.1'''; {{deS|''Abstrakte Syntaxnotation Eins''}}) ist eine [[Computersprache#Beschreibungssprachen|Beschreibungssprache]] zur Definition von [[Datenstruktur]]en sowie Festlegungen zur Umsetzung von Datenstrukturen und Elementen in ein netzeinheitliches Format.  
Die '''Abstract Syntax Notation One''' ('''ASN.1'''; {{deS|''Abstrakte Syntaxnotation Eins''}}) ist eine [[Computersprache#Beschreibungssprachen|Beschreibungssprache]] zur Definition von [[Datenstruktur]]en sowie Festlegungen zur Umsetzung von Datenstrukturen und Elementen in ein netzeinheitliches Format.  
Zeile 17: Zeile 17:
* Mit Hilfe von ASN.1 und einer gemeinsamen Kodierungsregel können Systeme mit unterschiedlichen internen Datendarstellungen Nachrichten austauschen.
* Mit Hilfe von ASN.1 und einer gemeinsamen Kodierungsregel können Systeme mit unterschiedlichen internen Datendarstellungen Nachrichten austauschen.


ASN.1 ist eine verbreitete Möglichkeit, die Nachrichtenelemente von Protokollen des [[OSI-Modell]]s eindeutig zu beschreiben, und wird von OSI-konformen Techniken wie [[X.500]] und [[X.509]], aber auch von [[Internetprotokollfamilie|Internetprotokollen]] wie [[Simple Network Management Protocol|SNMP]] oder [[LDAP]] verwendet.  
ASN.1 ist eine verbreitete Möglichkeit, die Nachrichtenelemente von Protokollen des [[OSI-Modell]]s eindeutig zu beschreiben, und wird von OSI-konformen Techniken wie [[X.500]] und [[X.509]], aber auch von [[Internetprotokolle|Internetprotokollen]] wie [[Simple Network Management Protocol|SNMP]] oder [[LDAP]] verwendet.  
* Breite Anwendung findet ASN.1 auch im Telekommunikationsbereich, z. B. bei den Standards [[Global System for Mobile Communications|GSM]] für die Abrechnung von [[Roaming]]gesprächen in [[TAP3]]-Dateien und [[Universal Mobile Telecommunications System|UMTS]].
* Breite Anwendung findet ASN.1 auch im Telekommunikationsbereich, z. B. bei den Standards [[Global System for Mobile Communications|GSM]] für die Abrechnung von [[Roaming]]gesprächen in [[TAP3]]-Dateien und [[Universal Mobile Telecommunications System|UMTS]].


Meist werden in ASN.1 spezifizierte Daten mit den einfach zu handhabenden ''Basic Encoding Rules (BER)'' kodiert.  
Meist werden in ASN.1 spezifizierte Daten mit den einfach zu handhabenden ''Basic Encoding Rules (BER)'' kodiert.  
Zeile 51: Zeile 51:


Vor dem Begriff <span style="font-family:monospace;">DEFINITIONS</span> wird mittels der geschweiften Klammern eine Objektreferenz, also eine ID angelegt.  
Vor dem Begriff <span style="font-family:monospace;">DEFINITIONS</span> wird mittels der geschweiften Klammern eine Objektreferenz, also eine ID angelegt.  
* Die Objektreferenz verweist auf die Stelle in einem Baum von Referenzen bzw.  
* Die Objektreferenz verweist auf die Stelle in einem Baum von Referenzen bzw.&nbsp;
* Vereinbarungen, an der das richtige Objekt zu finden ist.  
* Vereinbarungen, an der das richtige Objekt zu finden ist.  
* Die ID aus diesem Beispiel verweist auf die erste Wurzel in der ersten Ebene der Verweisstruktur.  
* Die ID aus diesem Beispiel verweist auf die erste Wurzel in der ersten Ebene der Verweisstruktur.  
Zeile 75: Zeile 75:
ASN.1 hat eine lange Historie mit unterschiedlichen Vorläufern und Veröffentlichungen in unterschiedlichen Organisationen.  
ASN.1 hat eine lange Historie mit unterschiedlichen Vorläufern und Veröffentlichungen in unterschiedlichen Organisationen.  


=== 1. Generation ===
=== Erste Generation ===
* X.208: ersetzt durch X.680
* X.208: ersetzt durch X.680
* X.209: ersetzt durch X.690
* X.209: ersetzt durch X.690


=== 2. Generation ===
=== Zweite Generation ===
Reihe X.680:
; Reihe X.680
* X.680: Specification of Basic Notation
* X.680: Specification of Basic Notation
* X.681: Information Object Specification
* X.681: Information Object Specification
* X.682: Constraint Specification
* X.682: Constraint Specification
* X.683: Parameterization of ASN.1 Specifications
* X.683: Parameterization of ASN.1 Specifications
Reihe X.690:
 
; Reihe X.690
* X.690: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
* X.690: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
* X.691: Specification of Packed Encoding Rules (PER)
* X.691: Specification of Packed Encoding Rules (PER)
Zeile 93: Zeile 94:
* X.696: Specification of Octet Encoding Rules (OER) and Canonical Octet Encoding Rules (COER)
* X.696: Specification of Octet Encoding Rules (OER) and Canonical Octet Encoding Rules (COER)


=== 3. Generation ===
=== Dritte Generation ===
Reihe ISO 8824:
; Reihe ISO 8824
* ISO/IEC 8824-1: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Basisnotationen.
* ISO/IEC 8824-1: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Basisnotationen.
* ISO/IEC 8824-2: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Informationsobjekten.
* ISO/IEC 8824-2: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Informationsobjekten.
Zeile 100: Zeile 101:
* ISO/IEC 8824-4: Abstrakte Syntax Notation Eins (ASN.1): Parametrierung von ASN.1 Spezifikationen.
* ISO/IEC 8824-4: Abstrakte Syntax Notation Eins (ASN.1): Parametrierung von ASN.1 Spezifikationen.


Reihe ISO 8825:
; Reihe ISO 8825


''Hinweis: Die offiziellen deutschen Titel dieser Spezifikationen enthalten zwar das Wort ''verschlüsseln'', das ist aber nicht im Sinne der [[Kryptographie]] gemeint, sondern wie im [[Internationale statistische Klassifikation der Krankheiten und verwandter Gesundheitsprobleme|Sprachgebrauch der Mediziner]] üblich.  
''Hinweis: Die offiziellen deutschen Titel dieser Spezifikationen enthalten zwar das Wort ''verschlüsseln'', das ist aber nicht im Sinne der [[Kryptographie]] gemeint, sondern wie im [[Internationale statistische Klassifikation der Krankheiten und verwandter Gesundheitsprobleme|Sprachgebrauch der Mediziner]] üblich. Technisch exakt wäre hier, von [[Code|Kodierung]] zu sprechen.''
* Technisch exakt wäre hier, von [[Code|Kodierung]] zu sprechen.''


* ISO/IEC 8825-1: ASN.1 Verschlüsselungsregeln: Spezifikation von Basisverschlüsselungsregeln (BER), vorschriftsmäßigen Verschlüsselungsregeln (CER) und hervorragenden Verschlüsselungsregeln.
* ISO/IEC 8825-1: ASN.1 Kryptografieregeln: Spezifikation von Basisverschlüsselungsregeln (BER), vorschriftsmäßigen Kryptografieregeln (CER) und hervorragenden Kryptografieregeln.
* ISO/IEC 8825-2: ASN.1 Verschlüsselungsregeln: Spezifikation von komprimierten Verschlüsselungsregeln (PER).
* ISO/IEC 8825-2: ASN.1 Kryptografieregeln: Spezifikation von komprimierten Kryptografieregeln (PER).
* ISO/IEC 8825-3: Kodierungsregeln für ASN.1: Spezifikation der Verschlüsselungkontrollnotation (ECN).
* ISO/IEC 8825-3: Kodierungsregeln für ASN.1: Spezifikation der Kryptografiekontrollnotation (ECN).
* ISO/IEC 8825-4: Kodierungsregeln für ASN.1: XML Kodierungsregeln (XER).
* ISO/IEC 8825-4: Kodierungsregeln für ASN.1: XML Kodierungsregeln (XER).
* ISO/IEC 8825-5: ASN.1 Kodierungsregeln: Abbildung der W3C XML Schema-Definitionen auf ASN.1.
* ISO/IEC 8825-5: ASN.1 Kodierungsregeln: Abbildung der W3C XML Schema-Definitionen auf ASN.1.
Zeile 114: Zeile 114:




;Sonstige:
; Sonstige
* RFC 3641 — Generic String Encoding Rules (GSER) for ASN.1 Types, 2003 (veraltet).
* RFC 3641 — Generic String Encoding Rules (GSER) for ASN.1 Types, 2003 (veraltet).
* RFC 4792 — Encoding Instructions for the Generic String Encoding Rules (GSER), 2007.
* RFC 4792 — Encoding Instructions for the Generic String Encoding Rules (GSER), 2007.
Zeile 120: Zeile 120:
== Installation ==
== Installation ==
== Anwendungen ==
== Anwendungen ==
=== Fehlerbehebung ===
=== Problembehebung ===
== Syntax ==
== Aufruf ==
=== Optionen ===
=== Optionen ===
=== Parameter ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Umgebung ===
=== Exit-Status ===
=== Rückgabewert ===
== Konfiguration ==
== Konfiguration ==
=== Dateien ===
=== Dateien ===
Zeile 131: Zeile 131:
== Dokumentation ==
== Dokumentation ==
=== RFC ===
=== RFC ===
=== Man-Pages ===
=== Man-Page ===
=== Info-Pages ===
=== Info-Pages ===
=== Literatur ===
=== Literatur ===
Zeile 138: Zeile 138:
== Siehe auch ==
== Siehe auch ==
== Links ==
== Links ==
=== Projekt-Homepage ===
=== Projekt ===
=== Weblinks ===
=== Weblinks ===
# [http://www.itu.int/ITU-T/studygroups/com17/languages/ ASN.1 Standard]
# [http://www.itu.int/ITU-T/studygroups/com17/languages/ ASN.1 Standard]
Zeile 148: Zeile 148:
# [http://lionet.info/asn1c/ Free, open source ASN.1 compiler]
# [http://lionet.info/asn1c/ Free, open source ASN.1 compiler]


=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


[[Kategorie:Entwurf]]
 
[[Kategorie:OSI 6 Presentation]]
 
[[Kategorie:OSI/6 Presentation]]

Aktuelle Version vom 12. November 2024, 18:42 Uhr

topic - Beschreibung

Beschreibung

Die Abstract Syntax Notation One (ASN.1; Vorlage:DeS) ist eine Beschreibungssprache zur Definition von Datenstrukturen sowie Festlegungen zur Umsetzung von Datenstrukturen und Elementen in ein netzeinheitliches Format.

  • Sie ist gemeinsamer Standard der ITU-T (International Telecommunication Union – Telecommunication Standardization Sector) und der ISO (Internationale Organisation für Normung).

Das Wort Abstract im Namen bedeutet, dass zwar die (abstrakte) Struktur der Daten festgelegt wird, nicht aber die (konkrete) Schreibweise, also wie die einzelnen Bits über die Leitung geschickt oder in Dateien gespeichert werden.

  • Durch diese Trennung zwischen Inhalt und Form ist es möglich, je nach Verwendungszweck eine dafür geeignete Schreibweise (Kodierung) zu verwenden.

Das Wort Syntax im Namen bedeutet, dass diese Notation nur festlegt, welche Form die Daten haben.

  • Sie legt jedoch nicht fest, wie diese Daten interpretiert werden.
  • So kann mit ASN.1 zum Beispiel eine „Folge zweier Zahlen, nämlich 7 und 13“ beschrieben werden.
  • Was diese Zahlen inhaltlich bedeuten, wird jedoch nicht von ASN.1 festgelegt, sondern von der Anwendung, die ASN.1 verwendet.

ASN.1 dient der plattformunabhängigen Beschreibung von Datentypen, ohne auf rechnerinterne Zeichenkodierungen wie beispielsweise UTF-8 oder EBCDIC einzugehen.

  • Die Notation ist in den ITU-T-Standards X.680ff definiert.
  • Die zugehörigen Standards X.690ff definieren verschiedene Encoding Rules (Kodierungsregeln), wie die ASN.1-Datenwerte auf Bit-Ebene kodiert werden.
  • Mit Hilfe von ASN.1 und einer gemeinsamen Kodierungsregel können Systeme mit unterschiedlichen internen Datendarstellungen Nachrichten austauschen.

ASN.1 ist eine verbreitete Möglichkeit, die Nachrichtenelemente von Protokollen des OSI-Modells eindeutig zu beschreiben, und wird von OSI-konformen Techniken wie X.500 und X.509, aber auch von Internetprotokollen wie SNMP oder LDAP verwendet.

  • Breite Anwendung findet ASN.1 auch im Telekommunikationsbereich, z. B. bei den Standards GSM für die Abrechnung von Roaminggesprächen in TAP3-Dateien und UMTS.

Meist werden in ASN.1 spezifizierte Daten mit den einfach zu handhabenden Basic Encoding Rules (BER) kodiert.

  • In Bereichen, bei denen eine platzsparende Kodierung erwünscht ist (zum Beispiel Mobilfunk), werden die Packed Encoding Rules (PER) bevorzugt.
  • Weiterhin existieren die injektiven Canonical Encoding Rules (CER) und Distinguished Encoding Rules (DER), wobei letztere weiter verbreitet sind.
  • Die Distinguished Encoding Rules sind eine Untermenge der BER und sind eine Codierung von ASN.1-Datenbeschreibungen, die auf Bitebene völlig eindeutig ist.
  • Es gibt in den DER also im Unterschied zu den BER für jeden ASN.1-Wert nur eine mögliche Codierung.
  • Damit eignen sie sich für Fälle, in denen ASN.1-Daten digital signiert werden müssen oder plattformübergreifend ausgetauscht werden sollen, beispielsweise in digitalen Zertifikaten (siehe X.509).

Syntax und Semantik

ASN.1 wird in einer BNF-ähnlichen Darstellung beschrieben, z. B.:

Record ::= SEQUENCE {
  kopf  Header,
  daten Data OPTIONAL
}

Header ::= IA5String

Data ::= SET OF INTEGER

Im nächsten Beispiel wird ein Modul vereinbart.

  • Es ist möglich, dieses Modul auch mittels eines Object Identifiers zu finden.
  • Dies geschieht, indem man dem Modulnamen eine Objektreferenz (Object Reference) anfügt, z. B.:
Modul-name {joint-iso-itu-t(2) example(999)} DEFINITIONS ::= 
BEGIN 
  Daten-struktur ::= SEQUENCE {
    teil  INTEGER,
    fragment IA5String
  }   
END

Vor dem Begriff DEFINITIONS wird mittels der geschweiften Klammern eine Objektreferenz, also eine ID angelegt.

  • Die Objektreferenz verweist auf die Stelle in einem Baum von Referenzen bzw. 
  • Vereinbarungen, an der das richtige Objekt zu finden ist.
  • Die ID aus diesem Beispiel verweist auf die erste Wurzel in der ersten Ebene der Verweisstruktur.
  • Module in der oben dargestellten Form sind nötig, um eine Vereinbarung zu treffen, wie Daten übertragen werden sollen.
  • Daten, die wie im obigen Beispiel definiert sind, werden wie folgt übertragen: { 2, "Teil2" }.

ASN.1 kennt dazu u. a.

  • Elementare Typen, z. B.
    • BIT STRING (binäre Zeichenfolge)
    • BOOLEAN
    • IA5String (nach IA5-Tabelle kodierte Zeichenfolge, siehe ISO 646)
    • INTEGER
  • Zusammengesetzte Typen, z. B.
    • CHOICE (Summentyp)
    • SEQUENCE (geordnete Abfolge verschiedener Typen)
    • SEQUENCE OF <Typ> (geordnete Abfolge gleichen Typs)
    • SET (ungeordnete Abfolge verschiedener Typen)
    • SET OF <Typ> (ungeordnete Abfolge gleichen Typs)
  • Spezielle Datentypen, z. B.

Normen und Standards

ASN.1 hat eine lange Historie mit unterschiedlichen Vorläufern und Veröffentlichungen in unterschiedlichen Organisationen.

Erste Generation

  • X.208: ersetzt durch X.680
  • X.209: ersetzt durch X.690

Zweite Generation

Reihe X.680
  • X.680: Specification of Basic Notation
  • X.681: Information Object Specification
  • X.682: Constraint Specification
  • X.683: Parameterization of ASN.1 Specifications
Reihe X.690
  • X.690: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
  • X.691: Specification of Packed Encoding Rules (PER)
  • X.692: Specification of Encoding Control Notation (ECN)
  • X.693: XML Encoding Rules
  • X.694: Mapping W3C XML Schema Definitions into ASN.1
  • X.696: Specification of Octet Encoding Rules (OER) and Canonical Octet Encoding Rules (COER)

Dritte Generation

Reihe ISO 8824
  • ISO/IEC 8824-1: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Basisnotationen.
  • ISO/IEC 8824-2: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Informationsobjekten.
  • ISO/IEC 8824-3: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Beschränkungen.
  • ISO/IEC 8824-4: Abstrakte Syntax Notation Eins (ASN.1): Parametrierung von ASN.1 Spezifikationen.
Reihe ISO 8825

Hinweis: Die offiziellen deutschen Titel dieser Spezifikationen enthalten zwar das Wort verschlüsseln, das ist aber nicht im Sinne der Kryptographie gemeint, sondern wie im Sprachgebrauch der Mediziner üblich. Technisch exakt wäre hier, von Kodierung zu sprechen.

  • ISO/IEC 8825-1: ASN.1 Kryptografieregeln: Spezifikation von Basisverschlüsselungsregeln (BER), vorschriftsmäßigen Kryptografieregeln (CER) und hervorragenden Kryptografieregeln.
  • ISO/IEC 8825-2: ASN.1 Kryptografieregeln: Spezifikation von komprimierten Kryptografieregeln (PER).
  • ISO/IEC 8825-3: Kodierungsregeln für ASN.1: Spezifikation der Kryptografiekontrollnotation (ECN).
  • ISO/IEC 8825-4: Kodierungsregeln für ASN.1: XML Kodierungsregeln (XER).
  • ISO/IEC 8825-5: ASN.1 Kodierungsregeln: Abbildung der W3C XML Schema-Definitionen auf ASN.1.
  • ISO/IEC 8825-6: ASN.1 encoding rules: Registration and application of PER encoding instructions.
  • ISO/IEC 8825-7: ASN.1 encoding rules - Part 7: Specification of Octet Encoding Rules (OER).


Sonstige
  • RFC 3641 — Generic String Encoding Rules (GSER) for ASN.1 Types, 2003 (veraltet).
  • RFC 4792 — Encoding Instructions for the Generic String Encoding Rules (GSER), 2007.

Installation

Anwendungen

Problembehebung

Aufruf

Optionen

Parameter

Umgebung

Rückgabewert

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Page

Info-Pages

Literatur

  • Walter Gora: ASN.1 – Abstract Syntax Notation One. Nachdruck der 3. Auflage. Fossil-Verlag, Köln 1998, ISBN 3-931959-18-X (Edition Netze)

Siehe auch

Links

Projekt

Weblinks

  1. ASN.1 Standard
  2. ASN.1 Free Reference Book
  3. ASN.1 Consortium
  4. ASN 1 Tutorial
  5. jASN1 – Open Source ASN.1 BER/DER Java Bibliothek von beanit
  6. openASN.1 – Ein Open Source ASN.1-Toolkit für Java
  7. Free, open source ASN.1 compiler