Main Content

保護モデルに署名する

"デジタル署名" は、デジタル メッセージまたはファイルの作成元に関する情報を検証する方法です。保護モデルにデジタル署名して、モデルのユーザーは次を検証できます。

  • モデルがモデルに署名したパブリッシャーにより作成されたものであること。

  • 署名後にモデルが変更されていないこと。

デジタル署名の検証を使用して、受信者は、保護モデルを開くまたは実行する前に、不明なパブリッシャーまたは改ざんされたモデルなどの問題を検出できます。

以下の当事者がデジタル署名ワークフローに関係します。

  • 保護モデルの作成者

  • 保護モデルを使用する受信者

  • 作成者と受信者が信頼する外部の認証機関 (CA)

証明書の検証を使用して保護モデルを交換するには、次のワークフローを使用します。

  1. 認証機関は、公開鍵がモデルの作成者に属していることを証明するデジタル証明書を提供します。認証機関は、モデル受信者に対応する公開証明書も提供します。

  2. 作成者は、証明書の公開鍵に対応する秘密鍵を使用して保護モデルに署名します。作成者は署名された保護モデルを受信者に送信します。

  3. 受信者は保護モデルの署名を検証します。検証では、モデルの署名とモデルに添付されている証明書および CA の証明書を比較します。次の場合、検証は失敗します。

    • 署名後に保護モデルが変更された。

    • 保護モデルに署名が行われていない。

    • 保護モデルに署名があるが、証明書が期限切れである。

    • 保護モデルに自己署名があるが、証明書が作成者により発行されている。

    • 保護モデルが、キー使用法にデジタル署名が含まれていない証明書を使用して署名されている。

    • 保護モデルに署名があるが、証明書がないか無効である。

    • CA の証明書がシステムにないまたは無効である。

モデルの作成者は、公開鍵と秘密鍵のペアを生成し、CA から公開鍵の証明書を取得します。次に、秘密鍵と証明書を含む PKCS #12 ファイル (.pfx ファイルまたは .p12 ファイル) を作成します。PKCS #12 ファイルは秘密鍵を含むため、通常はパスワードで保護されます。次のワークフローに従って、保護モデルに署名してから受信者に送信します。

保護モデルへの署名

保護モデルに署名するには、自分とモデルのユーザーの両方が信頼する認証機関 (CA) から自分に発行された証明書を使用します。自己署名された証明書または内部 CA により発行された証明書を使用して保護モデルに署名する場合、署名の検証を成功させるには受信者のシステムが証明書を信頼しなければなりません。自己署名した証明書を使用した保護モデルへの署名は推奨されません。

  1. ユーザーまたはユーザーが所属する組織が秘密鍵と証明書から作成した PKCS #12 ファイルを見つけます。ファイルには .pfx または .p12 の拡張子が付いていなければなりません。

  2. 署名するモデルを保護します。モデルの保護バージョンの拡張子は .slxp です。

  3. PKCS #12 ファイルのパスワードを指定します。

    Simulink.ModelReference.ProtectedModel.setPasswordForCertificate('certificate_file.pfx',...
    'password');
  4. PKCS #12 ファイルを使用してモデルに署名します。

    Simulink.ProtectedModel.sign('protected_model.slxp','certificate_file.pfx');

ユーザーの保護モデルは PKCS #12 ファイルで署名されていません。署名した後に保護モデルを変更しないでください。ユーザーまたは別の関係者が署名した保護モデルを変更すると、署名の検証は失敗し、保護モデルは使用できません。

受信者は、関数 Simulink.ProtectedModel.verifySignature を使用するか、Simulink® 基本設定 Verify digital signature of protected model before opening を選択して保護モデルを検証できます。詳細については、サードパーティからの保護モデルの参照を参照してください。

参考

関連するトピック