Abstract Syntax Notation One (ASN.1) é uma linguagem de descrição de interface padrão para definir estruturas de dados que podem ser serializadas e desserializadas em uma plataforma cruzada. É amplamente utilizado em telecomunicações, redes de computadores e, especialmente, em criptografia.

Os desenvolvedores de protocolo definem estruturas de dados em módulos ASN.1, que geralmente são uma seção de um documento de padrões mais amplo escrito na linguagem ASN.1. A vantagem é que a descrição ASN.1 da codificação de dados é independente de um determinado computador ou linguagem de programação (diferente de ASN.1). Como o ASN.1 é legível por humanos e por máquina, um compilador ASN.1 pode compilar módulos em bibliotecas de código, codecs, que decodificam ou codificam as estruturas de dados. Alguns compiladores ASN.1 podem produzir código para codificar ou decodificar várias codificações, por exemplo, embalado, BER ou XML.

ASN.1 é um padrão conjunto do setor de padronização de telecomunicações (ITU-T) no ITU-T Study Group 17 da União Internacional de Telecomunicações e da ISO/IEC, originalmente definida em 1984 como parte do CCITT X.409:1984. Em 1988, o ASN.1 mudou para seu próprio padrão, X.208, devido à ampla aplicabilidade. A versão substancialmente revisada de 1995 é coberta pela série X.680.ITU-T X.680 - Especificação de notação básica A última revisão da série de recomendações X.680 é a 6.0 Edition, publicada em 2021.

Suporte à linguagens

ASN.1 é uma notação de declaração de tipo de dados. Não define como manipular uma variável desse tipo.A manipulação de variáveis é definida em outras linguagens como SDL (linguagem de especificação e descrição) para modelagem executável ou TTCN-3 (notação de teste e controle de teste) para teste de conformidade. Ambas as linguagens oferecem suporte nativo à declarações ASN.1. É possível importar um módulo ASN.1 e declarar a variável de qualquer um dos tipos ASN.1 declarados no módulo.

Aplicações

ASN.1 é usado para definir um grande número de protocolos. Seus usos mais extensos continuam sendo telecomunicações, criptografia e biometria.

+ Protocolos que usam ASN.1 Protocolo Especificação Regras de codificação especificadas ou habituais Usos Protocolo Interledger https://interledger.org/rfcs/asn1/index.html Regras de codificação de octeto   NTCIP 1103 - Protocolos de gerenciamento de transporte NTCIP 1103 Regras de codificação de octeto Gerenciamento de tráfego, transporte e infraestrutura. Serviços de diretório X.500 A série de recomendações ITU X.500 Regras básicas de codificação, regras distintas de codificação LDAP, certificados TLS (X.509), autenticação. Protocolo de acesso a diretório leve (LDAP) IETF RFC 4511 Regras básicas de codificação   Padrões de criptografia PKCS Padrões de criptografia PKCS Regras básicas de codificação e regras distintas de codificação Chaves assimétricas, pacotes de certificados. Tratamento de mensagens X.400 A série de recomendações ITU X.400   Um dos primeiros concorrentes para enviar . EMV (método de pagamento) Publicações EMVCo   Cartões de pagamento. Conferência multimídia T.120 A série de recomendações ITU T.120 Regras básicas de codificação, regras de codificação compactadas Protocolo de área de trabalho remota (RDP) da Microsoft. Protocolo de gerenciamento de rede simples (SNMP) IETF RFC 1157 Regras básicas de codificação Gerenciando e monitorando redes e computadores, particularmente características relativas ao desempenho e confiabilidade. Protocolo de informação de gestão comum (CMIP) Recomendação ITU X.711 ||   || Um concorrente do SNMP, mas mais capaz e não tão popular. Sinalização por canal comum número 7 (SS7) A série de recomendações ITU Q.700   Gerenciando conexões telefônicas pela rede telefônica pública comutada (PSTN). Protocolos multimídia ITU série H As séries de recomendação ITU H.200, H.300 e H.400   Voz sobre protocolo de (VoIP). BioAPI Protocolo de interconexão (BIP) ISO/IEC 24708:2008     Estrutura de formatos biométricos comuns de troca (CBEFF) NIST IR 6529-A Regras básicas de codificação   Contextos de autenticação para biometria (ACBio) ISO/IEC 24761:2019     Aplicativos de telecomunicações suportados por computador (CSTA) https://www.ecma-international.org/activities/Communications/TG11/cstaIII.htm Regras básicas de codificação Comunicações dedicadas de curto alcance (DSRC) SAE J2735 Regras de codificação empacotadas   Sistema global para comunicações móveis (GSM) http://www.ttfn.net/techno/smartcards/gsm11-11.pdf   Comunicações de telefonia móvel. Serviço de rádio de pacote geral (GPRS) / Taxas de dados aprimoradas para evolução global (EDGE) http://www.3gpp.org/technologies/keywords-acronyms/102-gprs-edge   Comunicações de telefonia móvel. Sistema universal de telecomunicações móveis (UMTS) http://www.3gpp.org/DynaReport/25-series.htm   Comunicações de telefonia móvel. Evolução de longo prazo (LTE) http://www.3gpp.org/technologies/keywords-acronyms/98-lte   Comunicações de telefonia móvel. 5G https://www.3gpp.org/news-events/3gpp-news/1987-imt2020_workshop   Comunicações de telefonia móvel. Protocolo de alerta comum (CAP) http://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html Regras de codificação XML Troca de informações de alerta, como alertas âmbar. Comunicações de ligação de dados do controlador-piloto (CPDLC)     Comunicações aeronáuticas. Serviços de extensão do enlace espacial (SLE)     Comunicações de sistemas espaciais. Especificação de mensagem de fabricação (MMS) ISO 9506-1:2003   Manufatura. Transferência, acesso e gerenciamento de arquivos (FTAM)     Um concorrente mais antigo e capaz do protocolo de transferência de arquivos, mas raramente é usado. Protocolo de elemento de serviço de operações remotas (ROSE) Recomendações ITU X.880, X.881 e X.882   Uma forma inicial de chamada de procedimento remoto. Elemento de serviço de controle de associação (ACSE) || Recomendação ITU X.227 ||   || Protocolo de redes de automação e controle de edifícios (BACNet) ASHRAE 135-2016 Regras de codificação BACNet Automação e controle de edifícios, como alarmes de incêndio, elevadores, sistemas HVAC, etc. Kerberos IETF RFC 4210 Regras básicas de codificação Autenticação segura. WiMAX     Redes de longa distância. Rede inteligente A série de recomendações ITU Q.1200   Telecomunicações e redes de computadores. X2APRegras básicas de codificação em pacotes alinhados

Codificações

ASN.1 está intimamente associado a um conjunto de regras de codificação que especificam como representar uma estrutura de dados como uma série de bytes. As regras de codificação ASN.1 padrão incluem: