Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

署名キーを使用したサードパーティ製アプリケーションのネイティブな実行

署名キーの概要

Junos OS Evolvedリリース22.4R1以降、署名キーを生成し、それを使用して実行可能ファイルまたは共有オブジェクトに署名できます。実行可能ファイルに署名すると、デバイス上で実行する権限が与えられ、信頼されたアプリケーションを認証されたジュニパーネットワークスソフトウェアと併せて実行することを承認できるようになります。

Junos OS Evolvedでは、ユーザーは、実行のためにメモリにマップされるすべてのファイルに署名する必要があります。これには、次のファイルの種類が含まれます。

  • 実行可能およびリンク可能な形式 (ELF) ファイル

  • 共有オブジェクト (.so) ファイル

次の種類のファイルは署名する必要はありません。

  • ドッカーコンテナ

  • コンテナ内のアプリケーション

  • スクリプト

    メモ:

    スクリプトは署名する必要はありませんが、実行のために署名されたインタープリターを通過させる必要があります。Junos OS Evolvedには、シェルコマンドで使用できる python script-name 署名付きPython 2およびPython 3インタプリタが搭載されています。

署名鍵は、完全性測定アーキテクチャ(IMA)と呼ばれるLinuxサブシステムによって制御されます。IMAポリシーは、ファイルを実行する前に実行する必要があるアクションを定義するルールで構成されています。IMA測定ポリシーはファイルのハッシュを測定して保存し、IMA評価ポリシーはファイルに有効なハッシュまたはデジタル署名があることを確認します。IMAは、この検証が成功した場合にのみファイルの実行を許可します。IMAの詳細については、 IMAでJunos OS Evolvedの整合性を保護するを参照してください。

署名鍵は システム鍵ストアに保存され、検証署名鍵に使用される証明書は IMA拡張鍵リングに保存されます。署名キーを生成、インポート、表示、および使用する方法については、引き続きお読みください。

署名キーの生成

鍵は、OpenSSL コマンド行または OpenSSL 構成ファイルを使用して生成できます。

OpenSSL コマンドラインを使用した署名キーの生成

次の OpenSSL コマンドの例を使用して、署名キーを生成できます。

このコマンドは2つのファイルを生成します。

  1. privkey.pem - 実行可能ファイルの署名に使用できる PEM エンコードされた秘密キー。

  2. ima-cert.x509 - IMA拡張キーリングにロードされるDERエンコード済み証明書。

メモ:

OpenSSL コマンドラインは、その機能が制限されています。X509v3 拡張機能の値を設定することはできません。上記のコマンドを使用して生成されたすべてのキーは、認証局(CA)として使用できるため、他の証明書の署名に使用できます。これを防ぐために、OpenSSL構成ファイルを使用できます。

OpenSSL 設定ファイルを使用した署名キーの生成

という名前の ima-x509.cnf ファイルを作成し、次の内容を貼り付けます。

構成ファイルが作成されたら、次の OpenSSL コマンドを使用して および ファイルを作成しますima-privkey.pemima-cert.x509

秘密キー ファイルは署名キーの生成に使用され、証明書ファイルはima-privkey.pemima-cert.x509署名の検証に使用されます。どちらのファイルも、署名キーをシステムキーストアおよびIMA拡張キーリングにインポートするプロセスで使用されます。

システムキーストアおよびIMA拡張キーリングへの署名キーのインポート

署名鍵は、使用する前にシステム鍵ストアにインポートする必要があります。システムキーストアにインポートされたキーは、IMA拡張キーリングに自動的にインポートされます。キーは両方のルーティング エンジンにインポートされます。

署名鍵をシステム鍵ストアにインポートするには、以下の 2 つの必須引数を指定して コマンド request security system-keystore import を使用します。

  1. key-name - キーの一意の名前

  2. x509-cert - DER でエンコードされた証明書ファイルへのパス

次のコマンド例では、証明書ファイルima-cert.x509を使用して という名前のima-test-keyキーを作成します。

キーがに system-keystore 正常にインポートされると、キーの名前、ディスク上の証明書へのパス、およびキーのサブジェクトキー識別子(SKI)を示す上記の出力が表示されます。このSKIがIMA拡張キーリングにロードされたキーと一致するかどうかを確認するには、次のコマンドを使用します。

システムキーストアとIMA拡張キーリングの表示

Junos OS Evolved CLI show コマンドを使用して、システムキーストアとIMA拡張キーリングの内容を表示できます。

コマンドを使用して show security integrity system-keystore 、システム鍵ストアで使用可能な署名鍵を表示します。

Key SKIフィールドの情報を使用して、これらのキーをIMA拡張キーリングにマッピングできます。

show security integrity extended-keyring IMA拡張キーリングの内容を表示するには、次のコマンドを使用します。

アプリケーションに署名する方法

署名鍵がシステム鍵ストアにインポートされると、その鍵を使用して実行可能バイナリーに署名できます。

request security integrity measure file filename key key-nameコマンドを使用してファイルに署名します。

以下のコマンド例では、 という名前のキーima-test-keyで署名されている という名前のima-testファイルを表示しています。

次のように、コマンドを使用してファイルが正常に署名 request security integrity appraise file filename key key-name されたことを確認できます。

ファイルが正しく署名されていない場合は、次のメッセージが表示されます。

署名されたファイルは、Junos OS Evolvedデバイス上でネイティブに実行できます。