N1 Service Provisioning System 4.1 インストールガイド

第 7 章 SSL を使用する構成

この章では、Secure Socket Layer (SSL) 通信を行うように N1 Service Provisioning System 4.1 を構成する方法について説明します。 この章の内容は次のとおりです。

N1 Service Provisioning System 4.1 における SSL のサポートの概要

SSL は、IP ネットワーク経由の通信を保護するためのプロトコルです。 SSL では、TCP/IP ソケットテクノロジを利用してクライアントとサーバー間のメッセージ交換を行います。交換されるメッセージは、RSA の開発による公開鍵 - 非公開鍵暗号化システムで保護されます。 SSL は、Netscape Navigator、Microsoft の Web ブラウザをはじめとする大多数の Web サーバー製品でサポートされます。

第三者によるメッセージの読み取りや改ざんを防ぐため、SSL を使ってネットワーク通信を行うように N1 Service Provisioning System 4.1 アプリケーションを構成できます。 オプションとして、通信前に認証を行うように構成すれば、さらに高いネットワークセキュリティ効果を期待できます。

暗号群: 暗号化と認証の概要

SSL プロトコルは、さまざまな暗号アルゴリズム、暗号方式をサポートします。こうした暗号は、サーバーとクライアント間の認証、証明書の送信、セッションキーの確立などに使用されます。 認証が行われるかどうかは、SSL が接続に使用する暗号群によって決まります。

暗号群の選択は慎重に行なってください。 どのアプリケーションも、ノードが要求する最小限のセキュリティを提供する暗号群だけを有効にする必要があります。 SSL は、クライアントとサーバーの両方でサポートされる最も安全な暗号群を使用します。 低セキュリティの暗号群を有効化した場合、サン以外のクライアントは、暗号群のネゴシエーション時に、最小限のセキュリティしか提供しない暗号群を選択することがあります。この場合、サーバーは、安全性の低い暗号群を使用しなければならなくなります。

SSL は、次のモードで動作します。

インストール時、アプリケーション間の通信を保護する手段として SSL を選択すると、使用する暗号群を指定するプロンプトが表示されます。 暗号群の値は、config.properties ファイルの net.ssl.cipher.suites に格納されます。 選択内容によって、暗号群に次の値を設定できます。

サーバーの認証を必要とする、または必要としない SSL 暗号群の一覧は、「「SSL 暗号群」」を参照してください。 サーバーの認証を必要とする暗号群を対象に、クライアントの認証を構成することもできます。

認証キーストア

N1 Service Provisioning System 4.1 は、自己署名付き証明書をサポートします。 次の 2 種類のキーストアがあります。

クライアントサーバー認証で SSL を有効にした場合、各アプリケーションに、SSL が使用する 2 つのキーストアを構成する必要があります。2 つのキーストアのうち 1 つは、ほかのアプリケーションに対する自身の認証用、もう 1 つはほかのアプリケーションの認証用です。

サーバー認証だけで SSL を有効にした場合、SSL サーバーとして機能するアプリケーションにはプライベートキーストア、SSL クライアントとして機能するアプリケーションにはトラスト (パブリック) キーストアが必要になります。 パブリックキーストアは、Java Secure Sockets Extension (JSSE) v1.0.3 によって提供される独自の JKS フォーマットです。

両方のキーストアに、同一のパスワードを指定する必要があります。

たとえば、SSL を使って、SSL クライアントであるアプリケーション A と、SSL サーバーであるアプリケーション B を接続する場合について考えてみましょう。 どちらのアプリケーションも、サーバー認証を要求する暗号群を使用するように構成されています。 アプリケーション B のプライベートキーストアには公開鍵 - 非公開鍵のペア、アプリケーション A のトラストキーストアにはアプリケーション B の公開鍵が格納されていなければなりません。 アプリケーション A からアプリケーション B への接続を試みると、アプリケーション B はアプリケーション A に公開鍵を送信します。アプリケーション A は、この鍵と、トラストキーストア内の鍵を照合します。

アプリケーション B がクライアント認証を要求する場合、アプリケーション A のプライベートキーストアには公開鍵 - 非公開鍵のペア、アプリケーション B のトラストキーストアにはアプリケーション A の公開鍵が格納されていなければなりません。 アプリケーション A によって認証されたあと、アプリケーション B はアプリケーション A の公開鍵とトラストキーストア内の公開鍵を照合できます。

SSL でのパスワードの使用

トラストキーストアの操作にパスワードを設定した場合、このパスワードを使って、キーストアの整合性のチェックが行われます。 このパスワードでは、トラストキーストアの更新を防ぐことはできますが、トラストキーストア内へのアクセスを禁止することはできません。 トラストキーストアの内容に変更を加えたい場合は、パスワードを入力する必要があります。

プライベートキーストアの操作にパスワードを設定した場合、このパスワードを使って、キーストアの整合性のチェック、キーストアの内容の更新の禁止、非公開鍵のアクセスの暗号化と保護が行われます。

crkeys スクリプトは、両方のキーストアに同一のパスワードが指定されているかどうかの確認に使用されます。 証明書をインポートして、初めてトラストストアを作成するとき、このトラストストアには、crkeys スクリプトにより、プライベートストアと同じパスワードが設定されます (プライベートストアにパスワードが設定されている場合)。 同様に、初めてプライベートストアを作成するときも、crkeys により、プライベートストアにトラストストアと同じパスワードが設定されます (トラストストアにパスワードが設定されている場合)。

crkeys スクリプトを使って、アプリケーションの起動時にキーストアのパスワードプロンプトを表示し、パスワードを検証する場合は、-vpass オプションを指定します。 キーストアが存在する場合、crkeys スクリプトは、 キーストアのパスワードを求めるプロンプトを表示し、入力されたパスワードを照合します。 照合の結果、正しいパスワードであることが確認されると、標準出力にパスワードが表示されます。このパスワードは、その後、アプリケーションに渡されます。

N1 Service Provisioning System 4.1 上の SSL の制限事項

N1 Service Provisioning System 4.1 上の SSL 実装には、次の制限があります。

SSL の構成 (作業マップ)

次の表に、SSL を使用するように N1 Service Provisioning System 4.1 を構成するために必要な作業を示します。

表 7–1 作業マップ: SSL の構成

作業 

説明 

参照先 

セキュリティレベルの決定 

使用する SSL 接続を決定する 

「N1 Service Provisioning System 4.1 における SSL のサポートの概要」

(任意) Tomcat での SSL の有効化 

Web インタフェースでの HTTPS の使用を有効にすることができる 

「Tomcat での SSL の有効化」

キーストアの作成 

crkeys コマンドを使ってキーストアを作成する

「キーストアの作成」

SSL の構成 

config.properties ファイルを編集して SSL を構成する

「SSL の構成」

Tomcat での SSL の有効化

N1 Service Provisioning System 4.1 Web インタフェースは、デフォルトの設定では、SSL を使用しません。 要求は、HTTPS ではなく HTTP 経由で送信されます。 HTTPS を有効化したい場合は、認証局 (CA) から発行された SSL 証明書を使用します。 証明書は、通常、マシンごとに固有です。

SSL 証明書は、次の区切り文字で囲まれた形式になっています。


-----BEGIN CERTIFICATE-----

および


-----END CERTIFICATE-----

ProcedureTomcat の SSL 証明書を生成する

手順
  1. JRE のインストールディレクトリに移動します。


    % cd JAVA-HOME/bin
    

    JAVA-HOME には、JRE のインストールディレクトリを指定します。 JRE を N1 Service Provisioning System 4.1 と同時にインストールした場合、N1SPS4.1-home/common/JRE/bin がインストールディレクトリになります。

  2. 証明書を生成します。


    % keytool -genkey -alias tomcat -keyalg RSA -keystore /keystore-location
    -storepass password
    

    /keystore-location には、生成した鍵の格納先を指定します。 通常は、/etc/keystore を使用します。

    password には、任意のパスワードを指定します。

  3. すべてのプロンプトに答えて、情報を入力してください。

ProcedureTomcat で SSL を有効にする

手順
  1. SSL 証明書をインポートします。


    % keytool -import -alias tomcat -keystore keystore-location/ -trustcacerts
    

    keystore-location には、証明書テキストを保存するファイルのパスと名前を指定します。 このコマンドは、インポートした証明書の格納先ファイルの名前を出力します。 このファイルは通常、コマンドを実行したユーザーのホームディレクトリに保存されます。

  2. server.xml ファイル内の次の行の <!----> を削除し、コメント状態を解除します。


    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="8443" minProcessors="5" maxProcessors="75"
               enableLookups="true"
               acceptCount="10" debug="0" scheme="https" secure="true">
      <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
               clientAuth="false" protocol="TLS"/>
    </Connector>
  3. Factory 要素を次のように編集します。


    <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
               clientAuth="false" protocol="TLS" 
    	   keystoreFile=path-to-tomcat-keystore-file/ keystorePass="password"/>

    path-tomcat-keystore-file には、Tomcat の keystore ファイルのパスを指定します。password には、元のキーパスを作成したとき使用したパスワードを指定します。

SSL による Web インタフェースへの接続

SSL を使用するように N1 Service Provisioning System 4.1 を構成したあと、SSL を使ってサーバーに接続するようにユーザーに要求する構成にすることができます。

ProcedureSSL を使って接続するようにユーザーに要求する

手順
  1. 現在の web.xml ファイルを Tomcat の /webapp/WEB-INF/web.xml.secure ファイルで置き換えます。


    % cd /N1SPS4.1-home/webapp/WEB-INF
    % cp web.xml.secure web.xml
    

    N1SPS4.1-home にはアプリケーションのホームディレクトリを指定します。

Procedure元の構成に戻す

手順
  1. 元の構成に戻すには、web.xml ファイルを /webapp/WEB-INF/web.xml.default ファイルで置き換えます。


    % cd /N1SPS4.1-home/webapp/WEB-INF
    % cp web.xml.default web.xml
    

    N1SPS4.1-home にはアプリケーションのホームディレクトリを指定します。

キーストアの作成

N1 Service Provisioning System 4.1 は、JRE 付属のキーツールユーティリティを使用します。 ユーザーがキーストアを作成できるように、キーツールユーティリティはシェルスクリプト crkeys にラップされています。 このスクリプトには、`keytool' ユーティリティに正しいパラメータが指定されているかどうかを確認する働きがあります。

キーストアを作成すると、自己署名付き証明書の X.509 識別名が次のように設定されます。


CN=application_name OU=Engineering O=Sun Microsystems Inc L=Menlo Park ST=CA C=US

Procedureキーストアを作成する

手順
  1. キーを生成します。


    % crkeys -options
    

    使用する SSL 接続の種類に基づいてキーストアを作成したい場合、次のオプションを使用します。

    -alias application_hostname

    証明書または鍵のペアの別名を指定する。 アプリケーションのホスト名を別名として使用する。 キーストア内に重複する別名があってはならない

    -cpass

    キーストアとキーストア内のすべてのキーのパスワードを変更する

    -delete

    エンティティを指定して、鍵のペアまたは証明書をキーストアから削除する

    -export

    エンティティを指定して、自己署名付き証明書を指定のファイルにエクスポートする

    -file cert_file

    証明書をどのファイルからインポートするか、どのファイルへエクスポートするかを指定する

    -generate

    指定された別名に、新しい鍵のペアを生成する

    -help

    すべてのオプションを一覧表示する

    -import

    このノードへの接続を許可されたエンティティの自己署名付き証明書をインポートする。 証明書をインポートする際は、別名として、この証明書に記載されたノードのホスト名を使用する

    -keyalg keyalg

    鍵生成アルゴリズム。 デフォルトは `RSA'。 `RSA' と `DSA' のいずれかを指定できる

    -keysize keysize

    キーサイズ。 デフォルトは 102。DSA 鍵の場合は 512 から 1024、RSA 鍵の場合は 512 から 2048 の範囲内の 64 の倍数

    -list

    キーストアに格納されているすべてのエンティティを一覧表示する

    -new newpassword

    キーストアとキーストア内のすべてのキーの新しいパスワードを指定する

    -password password

    キーストアのパスワードを指定する。 パスワードを指定しない場合、ユーザーにパスワードの入力を求めるプロンプトが表示される

    -private

    操作の対象として、プライベートキーストアを指定する

    -validity days_valid

    自己署名付き証明書の有効期間を日数で指定する

    -trust

    操作の対象としてトラストキーストアを指定する


例 7–1 crkeys コマンドの例

次に、crkeys コマンドの使用例を示します。

公開鍵 - 非公開鍵のペアを生成するには:


crkeys -private –generate|-delete
    –alias application_hostname [-keyalg keyalg] 
[-keysize keysize] [-validity days_valid] 
[–password password]

鍵のペアの自己署名付き公開鍵をファイルにエクスポートするには:


crkeys -private –export –file cert_file
 –alias application_hostname [–password password]

前の例のようにしてエクスポートした自己署名付き公開鍵をトラストストアにインポートするには:


crkeys –trust –import –file cert_file
 –alias application_hostname [-password password]

鍵または鍵のペアを削除するには:


crkeys {-private|–trust} -delete
 –alias application_hostname [-password password]

すべての公開鍵を一覧表示するには:


crkeys {-private|–trust} –list [-password password]

SSL キーストア (トラストキーストアとプライベートキーストア) のパスワードを変更するには:


crkeys –cpass -password oldpassword 
-new newpassword

crkeys コマンドの使用方法を出力するには:


crkeys -help

SSL の構成

インストール時に、各アプリケーションは次のように構成されます。

アプリケーションごとに、次のセキュリティチェックが行われるように SSL 構成を変更することができます。


注 –

認証を有効にするには、アプリケーションのインストール後にキーストアを初期化する必要があります。


ProcedureSSL を構成する

手順
  1. config.properties ファイルを手動で編集し、SSL 構成を変更します。

    次の表に、config.properties ファイル内の SSL 構成関連の設定を示します。 使用する SSL 接続の種類に応じて、パラメータを変更してください。

    パラメータ 

    デフォルト値 

    説明 

    net.ssl.cipher.suites

    SSL_RSA_WITH_3DES_EDE_CBC_SHA

    有効にする SSL 暗号群をコンマで区切って表示。 サポートされる SSL 暗号群の一覧は、「「SSL 暗号群」」を参照

    net.ssl.client.auth

    false

    SSL サーバーで、接続するクライアントを認証するかどうかを指定する 

    net.ssl.trust.store.path

    N1SPS4.1–home/data/trust.store

    トラストキーストアのパス。 トラストキーストアには、このノードへの接続を許可されたノードの公開鍵が格納されている  

    net.ssl.private.store.path

    N1SPS4.1–home/data/private.store

    プライベートキーストアのパス。 プライベートキーストアには、このノードがほかのノードに対して自身を認証するとき使用する公開鍵と非公開鍵のペアが格納されている 

    net.ssl.key.store.pass

     

    キーストアのパスワード 

構成シナリオ (サンプル)

ProcedureMaster Server、Local Director、Remote Agent 間の認証なしで SSL を構成する

手順
  1. Master Server、Local Distributor、Remote Agent をインストールし、接続タイプを選択するプロンプトが表示されたら、SSL を選択します。 暗号群を選択するプロンプトが表示されたら、認証なしの暗号化を選択します。

  2. 各アプリケーションの config.properties ファイルに、次のプロパティを追加します。


    net.ssl.cipher.suites=SSL_DH_anon_WITH_3DES_EDE_CBC_SHA

    複数の暗号群または異なった暗号群を有効にすることができます。 複数の暗号群を有効にする場合は、パラメータとして、暗号群をコンマで区切ったリストを指定します。

  3. Web インタフェースで、新しいホストを作成します。

  4. 作成したホストで、接続タイプ SSL の Local Distributor を追加します。

  5. Local Distributor との接続をテストします。

  6. 新しいホストを作成します。

  7. 作成したホストで、接続タイプ SSL の Remote Agent を追加します。

  8. Remote Agent との接続をテストします。

ProcedureSSL サーバー認証を構成する

サーバー認証を要求する暗号群はデフォルトで有効になっています。したがって、暗号群を有効にするため、config.properties ファイルに変更を加える必要はありません。

手順
  1. Local Distributor 用の鍵のペアを生成し、Local Distributor のプライベートストアに格納します。


    % ld/bin/crkeys –private –generate –alias ldhostname.cr.com –validity 365
    
  2. Local Distributor 上のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % ld/bin/crkeys –private –export –file ld.cert –alias ldhostname.cr.com
    
  3. Local Distributor の自己署名付き証明書を Master Server にコピーします。

  4. 自己署名付き証明書を Master Server のトラストストアにインポートします。


    % server/bin/crkeys –trust –import –file ld.cert –alias ldhostname.cr.com
    
  5. 新しいホストを作成します。

  6. 新しいホストで、接続タイプ SSL の Local Distributor を追加します。

  7. Local Distributor に対し、CLI net.gencfg コマンドを使って、手動で transport.config ファイルを生成します。

  8. transport.config ファイルを Local Distributor にコピーします。

  9. 実行中の Master Server や Local Distributor がある場合は、停止します。

  10. Master Server と Local Distributor を起動します。

  11. Master Server と Local Distributor のキーストアのパスワードを入力します。

  12. Local Distributor との接続をテストします。

  13. Remote Agent 用の鍵のペアを生成し、Remote Agent のプライベートストアに格納します。


    % agent/bin/crkeys –private –generate –alias rahostname.cr.com –validity 365
    
  14. Remote Agent 上のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % agent/bin/crkeys –private –export –file ra.cert –alias rahostname.cr.com
    
  15. Remote Agent の自己署名付き証明書を Local Distributor にコピーします。

  16. 自己署名付き証明書を Local Distributor のトラストストアにインポートします。


    % ld/bin/crkeys –trust –import –file ra.cert –alias rahostname.cr.com
    
  17. 新しいホストを作成します。

  18. 新しいホストで、接続タイプ SSL の Remote Agent を追加します。

  19. CLI net.gencfg コマンドを使って、手動で transport.config ファイルを生成します。

  20. transport.config ファイルを Remote Agent にコピーします。

  21. 実行中の Local Distributor や Remote Agent がある場合は、停止します。

  22. Local Distributor と Remote Agent を起動します。

  23. Local Distributor と Remote Agent のキーストアのパスワードを入力します。

  24. Remote Agent との接続をテストします。

ProcedureSSL サーバーとクライアントの認証を構成する

手順
  1. Master Server、Local Distributor、Remote Agent をインストールし、接続タイプを選択するプロンプトが表示されたら、SSL を選択します。 暗号群を選択するプロンプトが表示されたら、認証ありの暗号化を選択します。

  2. Local Distributor 用の鍵のペアを生成し、Local Distributor のプライベートストアに格納します。


    % ld/bin/crkeys –private –generate –alias ldhostname.cr.com –validity 365
    
  3. Master Server 用の鍵のペアを生成し、Master Server のプライベートストアに格納します。


    % server/bin/crkeys –private –generate –alias mshostname.cr.com –validity 365
    
  4. Local Distributor のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % ld/bin/crkeys –private –export –file ld.cert –alias ldhostname.cr.com
    
  5. Local Distributor の自己署名付き証明書を Master Server にコピーします。

  6. 自己署名付き証明書を Master Server のトラストストアにインポートします。


    % server/bin/crkeys –trust –import –file ld.cert –alias ldhostname.cr.com
    
  7. Master Server のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % server/bin/crkeys –private –export –file ms.cert –alias mshostname.cr.com
    
  8. Master Server の自己署名付き証明書を Local Distributor にコピーします。

  9. 自己署名付き証明書を Local Distributor のトラストストアにインポートします。


    % ld/bin/crkeys –trust –import –file ms.cert –alias mshostname.cr.com
    
  10. 新しいホストを作成します。

  11. 新しいホストで、接続タイプ SSL の Local Distributor を追加します。

  12. 実行中の Master Server や Local Distributor がある場合は、停止します。

  13. Master Server と Local Distributor を起動します。

  14. Master Server と Local Distributor のキーストアのパスワードを入力します。

  15. Local Distributor との接続をテストします。

  16. Remote Agent 用の鍵のペアを生成し、Remote Agent のプライベートストアに格納します。


    % agent/bin/crkeys –private –generate –alias rahostname.cr.com –validity 365
    
  17. Remote Agent のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % agent/bin/crkeys –private –export –file ra.cert –alias rahostname.cr.com
    
  18. Remote Agent の自己署名付き証明書を Local Distributor にコピーします。

  19. 自己署名付き証明書を Local Distributor のトラストストアにインポートします。


    % ld/bin/crkeys –trust –import –file ra.cert –alias rahostname.cr.com
    
  20. 手順 4 でエクスポートした Local Distributor の自己署名付き証明書を Remote Agent マシンにコピーします。

  21. 自己署名付き証明書を Remote Agent のトラストストアにインポートします。


    % agent/bin/crkeys –trust –import –file ld.cert –alias ldhostname.cr.com
    
  22. 新しいホストを作成します。

  23. 新しいホストで、接続タイプ SSL の Remote Agent を追加します。

  24. transport.config ファイルを Remote Agent にコピーします。

  25. 実行中の Local Distributor や Remote Agent がある場合は、停止します。

  26. Local Distributor と Remote Agent を起動します。

  27. Local Distributor と Remote Agent のキーストアのパスワードを入力します。

  28. Remote Agent との接続をテストします。

ProcedureCLI クライアントと Master Server 間の SSL 認証を構成する

手順
  1. Master Server と CLI クライアントをインストールし、接続タイプを選択するプロンプトが表示されたら、SSL を選択します。 暗号群を選択するプロンプトが表示されたら、認証ありの暗号化を選択します。

  2. Master Server 用の鍵のペアを生成し、Master Server のプライベートストアに格納します。


    % server/bin/crkeys –private –generate –alias mshostname.cr.com –validity 365
    
  3. CLI クライアント用の鍵のペアを生成し、CLI クライアントのプライベートストアに格納します。


    % cli/bin/crkeys -private -generate -alias clihostname.cr.com.cr.com -validity 365
    
  4. Master Server のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % server/bin/crkeys –private –export –file ms.cert –alias mshostname.cr.com
    
  5. Master Server の自己署名付き証明書を CLI クライアントにコピーします。

  6. 自己署名付き証明書を CLI クライアントのトラストストアにインポートします。


    % cli/bin/crkeys –trust –import –file ms.cert –alias mshostname.cr.com
    
  7. CLI クライアント上のプライベートストア内の自己署名付き証明書をファイルにエクスポートします。


    % cli/bin/crkeys -private -export -file cli.cert -alias clihostname.cr.com
    
  8. CLI クライアントの自己署名付き証明書を Master Server にコピーします。

  9. 自己署名付き証明書を Master Server のトラストストアにインポートします。


    % server/bin/crkeys -trust -import -file cli.cert -alias clihostname.cr.com
    
  10. Master Server が実行中の場合は、停止します。

  11. Master Server を起動します。

  12. Master Server のキーストアのパスワードを入力します。

  13. CLI クライアントで、config.properties ファイルに次の行を追加します。


    net.ssl.key.store.pass=trust-store-password
    
  14. CLI クライアントコマンドを実行して、接続を検証します。

SSL 暗号群

ここでは、サポートされている SSL 暗号群を紹介します。

以下は、サーバー認証を要求する暗号群です。


SSL_DHE_DSS_WITH_DES_CBC_SHA 
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 
SSL_RSA_WITH_RC4_128_MD5 
SSL_RSA_WITH_RC4_128_SHA 
SSL_RSA_WITH_DES_CBC_SHA 
SSL_RSA_WITH_3DES_EDE_CBC_SHA 
SSL_RSA_EXPORT_WITH_RC4_40_MD5

以下は、サーバー認証を要求しない暗号群です。


SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA 
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA 
SSL_DH_anon_WITH_DES_CBC_SHA 
SSL_DH_anon_WITH_RC4_128_MD5

以下は、暗号化なしのサーバー認証を要求する暗号群です。


SSL_RSA_WITH_NULL_MD5 
SSL_RSA_WITH_NULL_SHA