研究の最初の週
asn.1学習
asn.1はじめに
ASN.1は、アプリケーションが複雑であるか非常に単純であるかに関係なく、これらのデータの言語実装および物理表現に関係なく、電気通信プロトコルを通じて送信されるデータを記述するために使用される正式な記号です。
asn.1は、抽象データ型仕様の形式を定義するために使用される標準です。
たとえば、次のような事前定義された基本タイプがいくつか提供されています。
- 整数(INTEGER)
- ブール
- 文字列(IA5String、UniversalString ...)
- ビット列
- 待って
そして、あなたは建設のタイプを定義することができます、例えば:
- 構造(SEQUENCE)
- リスト(SEQUENCE OF)
- タイプから選択(CHOICE)
- 待って
証明書へのASN.1の適用
X.509標準は、証明書に何を含めるかを定義します。ASN.l標準を使用して、X.509標準を記述できます。言い換えると、ASN.1は疑似コードに似ており、X.509標準をよりよく理解して整理できるようになります。
証明書の構造は次のとおりです
Certificate ::= SEQUENCE
{
tbsCertificate TBSCertificate,
signatureAlgorithm Algorithmidentifier,
signature BIT STRING
}
- tbsCertificate:証明書のコア。サーバーエンティティとCA組織の情報が含まれています。
- signatureAlgorithm:tbsCertificateのコンテンツに署名するために使用される署名アルゴリズムを記述します。
- signature:署名の値。
次にTBSCertifcateの構造を見てください。
TBSCertificate ::= SEQUENCE {
version [0] Version DEFAULT vl,
serialNumber CertificateSerialNumber,
signature Algorithmidentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyinfo SubjectPublicKeyinfo,
issuerUniqueID [1] IMPLICIT Uniqueidentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT Uniqueidentifier OPTIONAL,
-- If present, vers工on MUST be v2 or v3
extensions [3] Extensions OPTIONAL
-- If present, version MUST be v3 --
}
- version:バージョンタイプはVersionで、列挙型と同等です。値は証明書のバージョン番号を示します。現在、v1、v2、v3の3つのバージョンがあります。証明書の検証者は、対応するバージョンを使用して検証する必要があります。
- serialNumber:各証明書には一意の番号があります。異なるCA組織では、番号は予測できません。CertificateSerialNumberは整数型です。
- signature:使用される署名アルゴリズムについて説明します。
- 発行者:CA組織の名前を表し、値は国、組織、および下位組織の名前で構成されます。
- validation:証明書の有効期間について説明します。
- subject:サーバーエンティティの名前を表します。組織はCA組織からの証明書を申請します。対応する名前の種類は、発行者の名前の種類と同じです。
- subjectPublicKeylnfo:サーバーの公開パスワードアルゴリズムと公開鍵の値が含まれます。
- issuerUniquelDとsubjectUniquelD:これら2つは、CA組織とサーバーエンティティの一意の番号を表し、対応する証明書拡張に置き換えられました。
- 拡張機能:X.509 V3バージョンで導入された拡張機能で、主に証明書の意味を拡張します。X.509バージョンを変更せずに、新しい証明書属性を追加することは比較的簡単です。新しく追加された拡張機能が有効かどうかは、証明書によって異なります処方。
フォローアップ情報を収集する
「サーバーとWebアプリケーションにSSLおよびTLSとPKIを展開するための568262 HTTPS信頼できるガイド」PDF
「原則から実際の戦闘までのHTTPSの詳細な紹介」PDF + Weidong
ITU Telecommunication Standardization Department公式Webサイト
ITU標準ドキュメントX.680のドキュメント
ASN1エンコーディング学習
ASN学習