COMM-009
PGP-003

OpenPGPとその応用

COMM-009
PGP-003
Dec 29, 2001 初版. Jan 1, 2002 2版. Jan 3, 2002 3版. Feb 12, 2002 4版. Feb 13, 2002 4版.
権藤 広海
岩手県立大学大学院ソフトウェア情報学研究科
gon@gnd.jp

はじめに

本稿ではOpenPGPのネットワーク基盤における応用の動向を報告する. 調査した対象は,RFC・Internet Draftにおける標準化への提案,および該当するIETFのWG(ワーキンググループ)における討議の議事録,そして現在配布されている実装である.
OpenPGPが暗号ツールとしてひろく普及しているのに対して,その応用はまだ進んでいないことが問題として示される. なお,OpenPGPのPKIや電子メールでの応用については,別稿で説明するので本稿では扱わない.

現状

ネットワーク通信基盤におけるOpenPGPの応用については

に関するRFC, Internet Draftが提案されている. ([参考文献]を参照)

上記3分野におけるOpenPGPの応用形態は, おおむね認証においてPGP鍵を用いるというものである.

■ OpenPGP on IPsec

標準化動向

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では,

  1. ISAKMPの証明ペイロードにおけるOpenPGP鍵のフォーマット
  2. PGPの鍵について, 証明書ペイロードの一部として転送することやフォーマットをraw binary OpenPGPデータとすることなどを定めている.
  3. 複数の証明書の利用
  4. 複数のタイプの証明書を受け入れるためのペイロードの役割やその中身について定めている.
  5. (IKEにおける)Phase 1での識別
  6. IKEにおけるフェーズ1における識別ペイロードの扱いや同定の方法について定めている.
  7. 他のペイロード
  8. 署名のような他のペイロードと公開鍵暗号のフォーマットは, IKEで定義されるフォーマットに同一のままであることを定めている.
  9. (OpenPGPの認証機能に関しての)基盤
  10. OpenPGPについて, 鍵取り扱いの基盤が整っていることの利点や, このドラフト仕様に基づく実装の注意点を挙げている.
以上のプロトコルについて定めている.

Working Group での議論

上記のInternet Draftの動向をipsec WGのMLディスカッションにおいて調査したが, 特に議論されている形跡はなかった.

■ OpenPGP on TLS

標準化動向

Internet Draft「Extensions to TLS for OpenPGP keys」では, OpenPGPの証明書, 公開鍵アルゴリズム, 対称鍵暗号, ハッシュアルゴリズムおよび信用モデルを利用するためにTLS(Transport Layer Security)プロトコルの拡張を提案している.

このInternet Draftでは,

  1. 証明書(メッセージ)
  2. 証明書について, PGP鍵のフォーマットや証明書の内容は暗号スイートに依存することが定められている.
  3. 証明書要求(メッセージ)
  4. 証明書要求のメッセージに関するフォーマットを定めている.
  5. サーバ鍵交換(メッセージ)
  6. TLSの仕様と同じであるとしている.
  7. サーバ鍵検証(メッセージ)
  8. TLSの仕様と同じであるとしている.
  9. 終了(メッセージ)
  10. TLSの仕様と同じであるとしている.
  11. 暗号スイート
  12. PGP鍵を使うための追加する暗号スイートが定められている.
以上のプロトコルについて定めている.

Working Group での議論

上記のInternet Draftの動向をtls WGのMLディスカッションにおいて調査したが, 特に議論されている形跡はなかった.

実装について

OpenPGPに基づく実装であるGnuPGの関連プロジェクトとして, GNUTLS(TLSライブラリー)プロジェクトが発足しており, ライブラリーを開発中である. 現在発表されている範囲でGNUTLSは, 現段階およびFuture WorkにおいてPGP鍵による認証はサポートしない.

■ OpenPGP on SSH

標準化動向

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のメッセージフォーマットとすることが定められている.

Working Group での議論

上記の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


本レポートはOpenPKSDプロジェクトの一環として作成された.
Copyright (C)H.GONDO<gon@gnd.jp>, 2001-2002   All right reserved.

本ドキュメントは,GNU Free Documentation License 1.1(GNU フリー文書 利用許諾契約書)の条件下で自由に利用可能である. 詳細については http://www.gnu.org/copyleft/fdl.html から入手可能である.