IEEE802.1Xを構成するとき、どの機器にどんな証明書や鍵が必要になるのかを整理する。

(1)認証局(CA)
・CAの秘密鍵
・CAの電子証明書

(2)RADIUSサーバ
・CAの証明書
・RADIUSサーバの秘密鍵
・RADIUSサーバの電子証明書

(3)EAP-TLSのクライアント
・CAの証明書
・クライアントの秘密鍵
・クライアントの電子証明書

(4)PEAPのクライアント
・CAの証明書

(5)無線LANのAP・WLC
・必要なし

秘密鍵や電子証明書のファイルは、こんな感じの文字列で、そのままでは内容を理解できない。
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQItrKFOSptKcECAggA
・・・・
rcqR+HNnZPxGbP7+WSmQz5YTPlamUdaGOlS7d70sgFcvKmFT+vTqoO6ROULziIp0XUs=
-----END ENCRYPTED PRIVATE KEY-----
そこでopensslコマンドを使うと、秘密鍵や電子証明書の内容を確認することができる。

使い方は次のとおり。

(1)秘密鍵の確認方法
$ openssl rsa -text < 秘密鍵ファイル
Enter pass phrase: ・・・秘密鍵のパスフレーズ入力
Private-Key: (2048 bit)   ・・鍵長
modulus: ・・・モジュラスn(公開鍵の一部だと思ってください)
    00:e3:ee:2f:e9:bb:b6:59:60:e9:c9:e6:6e:22:e3:
  ・・・
    27:2f
publicExponent: 65537 (0x10001) ・・・公開指数e、ここまでが公開鍵
privateExponent: ・・・非公開指数 d、ここからが秘密鍵
    00:9b:ee:60:62:f3:e3:5d:24:1a:ec:e0:32:ea:b5:
  ・・・
    7a:81
prime1: ・・・ n の素因数 p
    00:f4:82:5c:27:4c:22:1d:ed:60:03:b9:87:ad:58:
  ・・・
    7c:fe:ba:98:b8:d1:10:d7:6f
prime2: ・・・ n の素因数 q
    00:ee:a4:5e:fd:ae:f0:8c:5c:06:32:37:7f:41:98:
  ・・・
    26:b8:3f:8c:5e:1c:7d:cc:41
exponent1: ・・・ d mod (p-1)
    00:8a:e1:94:c8:79:75:13:7c:a6:41:d7:5b:1a:7a:
  ・・・
    ec:78:9f:b2:69:9f:ce:aa:1f
exponent2: ・・・ d mod (q-1)
    3d:69:3d:2c:a9:35:2b:d9:8e:9a:a3:9f:72:e0:cd:
  ・・・
    05:b7:0c:c7:37:2b:c4:41
coefficient: ・・・中国剰余定理の係数 q-1 mod p
    00:d4:19:6c:5b:66:4c:47:d6:7e:de:b7:4e:fc:f4:
  ・・・
    da:20:85:fc:51:9d:9a:2e:b5
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA4+4v6bu2WWDpyeZuIuMUnJh6qgWMAF7Sct28mO2nky1Es32h
・・・
RuODjvaZHJ/EQnEKMEc3jeOM6Y8zT0gm9Wmk2JhOvgHaIIX8UZ2aLrU=
-----END RSA PRIVATE KEY-----
なんだかわけがわからないが、見るべきところは鍵長とモジュラス(modulus)である。鍵長は最近では2048bit以上が推奨になっている。モジュラス・公開指数は公開鍵だと思えばよい。証明書のモジュラス・公開指数と一致することで、秘密鍵と電子証明書がペアであることを確認できる。



(2)電子証明書の確認方法
$ openssl x509 -text < 電子証明書ファイル
Certificate:
    Data:
        Version: 3 (0x2)  ・・・X509のバージョン
        Serial Number: ・・・シリアル番号
            bb:09:************82:16
        Signature Algorithm: sha256WithRSAEncryption ・・・署名アルゴリズム
        Issuer: C=jp, ST=Japan, O=viva-musen, CN=viva-musen-CA ・・・発行者(≒CA)
        Validity ・・・有効期間
            Not Before: Dec  8 02:31:43 2012 GMT
            Not After : Dec  6 02:31:43 2022 GMT
        Subject: C=jp, ST=Japan, O=viva-musen, CN=viva-musen-CA  ・・・サブジェクト
        Subject Public Key Info:  ・・・公開鍵の情報
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit) ・・・鍵長
                Modulus: ・・・モジュラス
                    00:e3:ee:2f:e9:bb:b6:59:60:e9:c9:e6:6e:22:e3:
         ・・・ 
                    27:2f
                Exponent: 65537 (0x10001)  ・・・公開指数
         X509v3 extensions:・・・拡張情報
           ・・・
    Signature Algorithm: sha256WithRSAEncryption・・・署名アルゴリズムとCAによる署名
        c3:56:7f:4d:66:aa:15:df:f6:1c:9e:25:c9:09:a5:fa:e6:32:
    ・・・
-----BEGIN CERTIFICATE-----
MIIDZzCCAk+gAwIBAgIJALsJuo58X4IWMA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNV
・・・
U8RtZlIpGKGCEdg=
-----END CERTIFICATE-----
X.509とは電子証明書のファイルフォーマットのことである。標準化されている。
先ほどの秘密鍵と比較したとき、モジュラスと公開指数が一致していることが確認できる。
この二つが一致していれば、電子証明書と秘密鍵がペアであることを確認できる。

その他に見るべき箇所は、発行者・有効期間・サブジェクトなどである。