SonicWALL SSL VPN アプライアンス製品をご利用のお客様
 2010年04月28日
SonicWALL, Inc. 日本オフィス
コード署名証明書の期限についての一般的な情報のご案内


平素はSonicWALL SSL VPNアプライアンス製品をご利用いただき誠にありがとうございます。

本資料はSonicWALL SSL VPN アプライアンスより自動配布されるActiveXコンポーネント、JAVAプラグインのコード署名、コード署名証明書、およびその証明書の有効期限に関する一般的な技術情報を提供いたします。

本資料の内容と、個別のActiveXコンポーネント、JAVAプラグインの脆弱性あるいはプロダクトライフサイクル/サポートポリシーとは異なりますのでご注意ください。

■概要
ネットワークより自動的に配布されるActiveXコンポーネントおよびJAVAプラグインは、プログラムの安全性を保証するための仕組みとしてコード署名証明書によって署名されています。
証明書には必ず有効期限が設定されており、本資料では、証明書の有効期限が切れた場合の振る舞いと注意点に関する一般的な情報を提供いたします。
本資料では主にWindowsXP/7とその付属のInternet Exploreでの情報となります。OSが異なる場合、WEBブラウザーが異なる場合、動作が異なる可能性がありますのでご注意ください。

■SonicWALL SSL VPN アプライアンスのファームウェアバージョンとコード署名証明書の期限
SSL VPN 200:
   最新バージョン(3.5.02): 2012年7月28日
   バージョン3.0.0.9、3.0.0.8: 2010年5月5日
   上記以外のバージョン:すでに期限切れとなっております
SSL VPN 2000、4000:
   最新バージョン(3.5.0.11): 2012年7月28日
   バージョン 3.0.0.9-20sv(+付きを含みます): 2010年5月5日
   上記以外のバージョン:すでに期限切れとなっております

■SonicWALL SSL VPNアプライアンスに含まれるコード署名されたプログラム
SSL VPN アプライアンスでは以下のサービスにおいて、JAVAプラグインまたはActiveXコンポーネントを使用いたします。

・ActiveXコンポーネント
   -RDP
   -NetExtenderのインストール

・JAVAプラグイン
   -SSH version1
   -SSH version2
   -Telnet
   -RDP
   -VNC

■コード署名証明書の期限切れ時のクライアントの動作
コード署名の仕組みおよびクライアントでのコード署名の取り扱いには、大きく分類してActiveXコンポーネントで使われる方式と、JAVAで使われる方式があります。

(1)

ActiveXコンポーネント
ActiveX コンポーネントのコード署名では、オプションでタイムスタンプ情報を付加することが可能です。タイムスタンプとは、コードに署名した日付のことを指し、証明書の有効期限とは別にコードに署名した日時の情報を改ざんできない形で証明すること可能です。

クライアントPCでは、ActiveXコンポーネントをインストールする際にコード署名証明書の有効期限をチェックしますが、このとき、署名にタイムスタンプが含まれておりコード署名証明書の有効期限内である場合、仮にコード署名証明書の有効期限が切れていても、このコンポーネントを有効なコンポーネントとして扱う仕組みとなっています。

現在、SonicWALL SSL VPNアプライアンスに含まれるActiveXコンポーネントの署名にはタイムスタンプが含まれていますので、コード署名証明書の期限が切れても、このActiveXコンポーネントは有効なコンポーネントとして扱われます。

また、ActiveXコンポーネントは、インストールタイプとなりますので、コード署名のチェックは初回のインストール時のみ行われ、すでにインストール済みのコンポーネントを利用時はコード署名のチェックは行われない仕組みとなっています。

   
(2)

JAVAプラグイン
JAVAプラグインのコード署名はActiveXコンポーネントとは異なるアーキテクチャーを採用しております。違いは次の2点となります。

  • タイムスタンプのオプションはありませんので、一般的にコード署名証明書の期限切れは署名にエラーが出るという形で取り扱われます。
  • ActiveXがインストールタイプであるのに対し、JAVAプラグインは利用のたびにプラグインのダウンロードが行われます(キャッシュは行なわれます)のでコード署名のチェックもその都度行われます。

JAVAでは、コントロールパネル->JAVA->詳細タブの“ユーザが署名済みのコンテンツにアクセス権を与えることを許可する”のチェックを外した場合、コード署名証明書の期限が切れたプラグインを使用することができなくなります。一方、チェックをしている場合は、有効性の確認のダイアログボックスがポップアップされますが、ここで“はい”を選ぶことによって、プラグインを使用可能です。確認は、プラグイン利用の度に表示されます。
(*設定はJAVAのバージョンによって異なる可能性があります。)

したがって、SonicWALL SSL-VPNアプライアンスを旧バージョンにて運用されておりかつJAVAプラグインをご利用する場合は、上記設定の確認と、JAVAプラグイン使用時に警告が出ること、証明書の発行元を確認の上“はい”をクリックしていただくことを事前にユーザに周知する必要があります。

ただし、いずれの場合においても、コード署名証明書の目的が身元保証と改ざん防止であることから、コード署名証明書の期限が切れた場合にも製品の利用自体に影響を与えることはなく、また、ActiveX コンポーネント、Java プラグインの使用によるセキュリティ的な問題が発生することはありません。

■コード署名について
コード署名とは、プログラムコードのサマリーをコード署名証明書に含まれる公開鍵の秘密鍵ペアにて暗号化することを言います。秘密鍵で暗号化されたものは、公開鍵、つまり証明書によって公開されている鍵でのみ復号化が可能です。つまり暗号化されたサマリーをコード署名証明書の公開鍵で復号化できるということは、コード署名証明書の公開鍵の秘密鍵ペアが署名したことを証明することになります。このことにより、ユーザに配布されるActiveXコンポーネントやJAVAプラグインは、コード署名証明書を発行された会社・組織が配布したものであることを証明し、かつ内容が改ざんされていないことを保証することが可能となります。

ご不明な点は japan@sonicwall.com までお問い合わせください。