本稿ではOpenPGPのネットワーク基盤における応用の動向を報告する.
調査した対象は,RFC・Internet Draftにおける標準化への提案,および該当するIETFのWG(ワーキンググループ)における討議の議事録,そして現在配布されている実装である.
OpenPGPが暗号ツールとしてひろく普及しているのに対して,その応用はまだ進んでいないことが問題として示される.
なお,OpenPGPのPKIや電子メールでの応用については,別稿で説明するので本稿では扱わない.
ネットワーク通信基盤におけるOpenPGPの応用については
に関するRFC, Internet Draftが提案されている. ([参考文献]を参照)上記3分野におけるOpenPGPの応用形態は, おおむね認証においてPGP鍵を用いるというものである.
IPsecにおけるOpenPGPの応用について調査を行った. IPsecでは, ホストの認証を行うためのプロトコルにおいて, PGP鍵を利用することが想定されている.
RFC2408「Internet Security Association and Key Management Protocol(ISAKMP)」において, IPsec認証ペイロードの認証手段識別タイプの一つとしてPGP鍵の識別コードが定義されている. 以下に上記のISAKMP証明ペイロードのフォーマットである. Certificate Encodingのタイプとして, 「PGPによる認証」の識別番号が定義されている.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Next Payload ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Cert Encoding ! !
+-+-+-+-+-+-+-+-+ !
~ Certificate Data ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Certificate Encoding (1 octet) - This field indicates the type of
certificate or certificate-related information contained in the
Certificate Data field.
Certificate Type Value
NONE 0
PKCS #7 wrapped X.509 certificate 1
PGP Certificate 2
DNS Signed Key 3
X.509 Certificate - Signature 4
X.509 Certificate - Key Exchange 5
Kerberos Tokens 6
Certificate Revocation List (CRL) 7
Authority Revocation List (ARL) 8
SPKI Certificate 9
X.509 Certificate - Attribute 10
RESERVED 11 - 255
しかし, このRFC2408では, 識別コードのみを定義しており, 認証ぺイロードでのPGP鍵のフォーマットなどについては定めていない.
特にRFC2440によって標準化がされているOpenPGPについて想定されていない.
Internet Draft「OpenPGP Key Usage in IKE」では, IPsecにおけるOpenPGPを使う手法が定義されている.
このInternet Draftでは,
上記のInternet Draftの動向をipsec WGのMLディスカッションにおいて調査したが, 特に議論されている形跡はなかった.
Internet Draft「Extensions to TLS for OpenPGP keys」では, OpenPGPの証明書, 公開鍵アルゴリズム, 対称鍵暗号, ハッシュアルゴリズムおよび信用モデルを利用するためにTLS(Transport Layer Security)プロトコルの拡張を提案している.
このInternet Draftでは,
上記のInternet Draftの動向をtls WGのMLディスカッションにおいて調査したが, 特に議論されている形跡はなかった.
OpenPGPに基づく実装であるGnuPGの関連プロジェクトとして, GNUTLS(TLSライブラリー)プロジェクトが発足しており, ライブラリーを開発中である. 現在発表されている範囲でGNUTLSは, 現段階およびFuture WorkにおいてPGP鍵による認証はサポートしない.
Internet Draft「SSH Transport Layer Protocol」では認証に用いる証明書として, PGP鍵が利用可能であることを定義している.
The following public key and/or certificate formats are currently defined: ssh-dss REQUIRED sign Simple DSS ssh-rsa RECOMMENDED sign Simple RSA x509v3-sign-rsa RECOMMENDED sign X.509 certificates (RSA key) x509v3-sign-dss RECOMMENDED sign X.509 certificates (DSS key) spki-sign-rsa OPTIONAL sign SPKI certificates (RSA key) spki-sign-dss OPTIONAL sign SPKI certificates (DSS key) pgp-sign-rsa OPTIONAL sign OpenPGP certificates (RSA key) pgp-sign-dss OPTIONAL sign OpenPGP certificates (DSS key)
さらにこのドラフトにおいては, PGP鍵のフォーマットは, RFC2440で定められているOpenPGPのメッセージフォーマットとすることが定められている.
上記のInternet Draftの動向をsecsh WGのMLディスカッションにおいて, アーカイブに残っている2000年7月以降について調査した.
その中で上記Internet Draftに関連する議論としては, PGP鍵の指紋(fingerprint)のハッシュ・アルゴリズムは複数選択可能なので, それらを判別できる必要があるのではないかというものがあった. これに関して, 新たなPGP鍵指紋フォーマットを作るべきではないか, という意見があった. (2001年1月29日)
SSH Communication Security Corpの製品であるssh2では, OpenPGPに基づくPGP鍵を公開鍵認証手段として用いることができる. (参照)
今回, IPsec, TLSおよびSSHにおけるOpenPGPの応用(認証目的)について調査した.
それぞれRFCおよびInternet Draftとして, その利用についての仕様が提案されている.
しかし, Internet DraftであるIPsec, TLSについては同一の作者(当時, PGPを商用製品として販売していたメーカーに所属)によって提案されており, また, IETF WGでは十分な議論がされている形跡は認められなかった.
PGPの利用を定義しているRFCも存在するが,OpenPGPについて想定されていない場合があった.
また,IPsecおよびTLSにおけるOpenPGPの利用に関するInternet Draftは十分な議論を経て提案されているとは言えず,活発な標準化が推進されているとは認められない.
実装に関しては,sshについてはいちはやくOpenPGPが実装がされており利用可能なソフトウェアも存在しているが,IPsecおよびTLSについてはソフトウェアの存在や計画が認められなかった.
よって現段階では, RFCされる前に機能が実装されているsshを除いて, ネットワークにおけるOpenPGPの利用について, 標準化および実装は進展していないと思われる.
現在, OpenPGPのネットワークにおける利用に関しては, RFCとして標準化されているものは少ない. また, これから実装するソフトウェアにおいても, RFCとして標準化されたものの機能拡張が優先されている.
よって, OpenPGPの応用を目指す場合は早期にRFCによって標準化されるか, またはsshのように実装を作成し使える状態にする必要があると考える.
W.Price: "OpenPGP Key Usage in IKE," Internet Draft, March 2001 http://www.ietf.org/internet-drafts/draft-ietf-ipsec-openpgp-01.txt
T.Dierks and C.Allen "The TLS Protocol Version 1.0," RFC2246,January 1999 http://www.ietf.org/rfc/rfc2246.txt
S.Kent and R.Atkinson: "Security Architecture for the Internet Protocol," RFC2401, November 1998 http://www.ietf.org/rfc/rfc2401.txt
S.Kent and R.Atkinson: "IP Authentication Header(AH)," RFC2402, November 1998 http://www.ietf.org/rfc/rfc2402.txt
S.Kent and R.Atkinson: "IP Encapsulating Security Payload(ESP)," RFC2406, November 1998 http://www.ietf.org/rfc/rfc2406.txt
D.Piper: "The Internet IP Security Domain of Interpretation for ISAKMP," RFC2407, November 1998 http://www.ietf.org/rfc/rfc2407.txt
D.Maughan, M.Schertler, M.Schneider and T.Turner: "Internet Security Association and Key Management Protocol(ISAKMP)," RFC2408, November 1998 http://www.ietf.org/rfc/rfc2408.txt
D.Harkins and D.Carrel: "The Internet Key Exchange (IKE)," RFC2409, November 1998 http://www.ietf.org/rfc/rfc2409.txt
H.Orman: "The OAKLEY Key Determination Protocol," RFC2412, November 1998 http://www.ietf.org/rfc/rfc2412.txt
J.Callas, L.Donnerhacke, H.Finney and R.Thayer: "OpenPGP Message Format," RFC2440, November 1998 http://www.ietf.org/rfc/rfc2440.txt
R.Housley, W.Ford, W.Polk and D.Solo: "Internet X.509 Public Key Infrastructure Certificate and CRL Profile," RFC2459, January 1999 http://www.ietf.org/rfc/rfc2459.txt
W.Price and M.Elkins: "Extensions to TLS for OpenPGP keys," Internet Draft, March 2001 http://www.ietf.org/internet-drafts/draft-ietf-tls-openpgp-01.txt
Public-Key Infrastructure(X.509) (pkix) Website http://www.ietf.org/html.charters/spki-charter.html
GnuPG project Website http://www.gnupg.org
GNUTLS project Website http://www.gnu.org/software/gnutls
Public-Key Authentication Website http://www.ssh.com/products/ssh/administrator31/Public-Key_Authentication-2.html
T.Rinne, T.Ylonen, T.Kivinen, M.J.Saarinen and S.Lehtinen: "SSH Transport Layer Protocol," Internet Draft, Nov 2001 http://www.ietf.org/internet-drafts/draft-ietf-secsh-transport-11.txt
本ドキュメントは,GNU Free Documentation License 1.1(GNU フリー文書 利用許諾契約書)の条件下で自由に利用可能である. 詳細については http://www.gnu.org/copyleft/fdl.html から入手可能である.