フォントにデジタル署名を追加する方法

概要

TrueTypeフォントやOpenTypeフォントにデジタル署名を追加する方法を説明します。

デジタル署名を追加することにより、フォントが署名者本人が作成したものであることを公的に証明でき、また、フォントファイルの改ざんが行われていないことを保証できます。

デジタル署名を追加すると、TTEditやOTEditでは修正保存できなくなります。

準備

フォントにデジタル署名を追加するには、

・コードサイニング証明書(Microsoft Authenticode 対応デジタルID)

・デジタル署名追加ソフト

が必要です。

以下ではWindows XP での操作で説明いたします。Windows 7 ではエラーが発生してしまいます。Windows 7 で行いたい場合は、Windows Virtual PC の Windows XP Mode で行ってください。

デジタル署名追加ソフト

  1. Microsoftのサイト OpenType font signing tool からDsig.EXEをダウンロードします。ページの中ほどにダウンロードのリンクがあります。
  2. ダウンロードしたDsig.EXEは自己解凍形式の圧縮ファイルのため、ダブルクリックして実行し適当なフォルダ内に解凍します。ここでは C:\OLS\Dsig に解凍したとして以下説明します。
    解凍すると、下のファイルが作成されます。
  3. ファイル名を指定して実行で、「 Regsvr32 C:\OLS\Dsig\mssipotf.dll 」と入力して実行します。なお、フォルダ名にスペースを含む時はファイルパス全体を""で囲って入力してください。

    これで mssipotf.dll がレジストリに登録されます。

コードサイニング証明書

コードサイニング証明書(Microsoft Authenticode デジタルID)は、認証局と呼ばれる第三者機関で発行されます。日本ベリサイン株式会社Thawte(ソート)株式会社コモドジャパンなどで有料にて取得できます。

取得方法は認証局によって異なりますのでそれぞれのホームページをご参照ください。

デジトラスの場合、「コードサイニング証明書について」をご参照ください。

取得したコードサイニング証明書(ファイル拡張子 .pfx)をデジタル署名追加ソフトを解凍したフォルダ C:\OLS\Dsig にコピーしておきます。作業はコマンドプロンプトで行うため、同じフォルダ内にあった方がキー入力が簡単です。

pvk、spc ファイルへの変換

認証局から取得したコードサイニング証明書(ファイル拡張子 .pfx)を ファイル拡張子.pvkと.spc の2ファイルへ変換する必要があります。

  1. OpenSSLのサイトからWin32 OpenSSL をダウンロードします。
    Ver1.0より前のものは仕様が異なりますので、v1.0以降を使ってください。
  2. ダウンロードしたファイルをダブルクリックして実行しインストールします。なお、最後にOpenSSL提供元へ寄付をするための画面が表示されますが、寄付を望まない場合はチェックを外してからFinishボタンをクリックしてください。
  3. 以降の説明でOpenSSLを実行した時、「指定されたプログラムは実行できません。」と表示された場合、Microsoft Visual C++ 2008 再頒布可能パッケージ (x86) がインストールされているか確認してください。インストールされていない場合、Microsoft Download Centerからダウンロードできますのでインストールしてください。
    以下の説明では、OpenSSLはC:\OpenSSL-Win32にインストールしたものとしています。また、取得したコードサイニング証明書はauthenticode.pfxという名前で、C:\OLS\Dsig にコピーされているとしています。
  4. コマンドプロンプトを起動します。
  5. コマンドプロンプトで以下を入力します。はEnterキーの意味です。(続く)は「改行せず次行を続けて入力してください」の意味です。
  6. cd C:\OLS\Dsig
  7. C:\OpenSSL-Win32\bin\openssl pkcs12 -in authenticode.pfx -nocerts  (続く)
    -nodes -out temp.key
    すると、
    WARNING: can't open config file: /usr/local/ssl/openssl.cnf
    Enter Import Password:
    と表示されます。
    WARNINGは無視し、
    コードサイニング証明書を保存する時設定したパスワードを入力します。
    すると、
    MAC verified OK
    と表示され、ファイル temp.key が作成されます。
  8. C:\OpenSSL-Win32\bin\openssl pkcs12 -in authenticode.pfx -nokeys  (続く)
    -out temp.txt
    すると、
    WARNING: can't open config file: /usr/local/ssl/openssl.cnf
    Enter Import Password:
    と表示されるので、上と同じパスワードを入力します。
    すると、
    MAC verified OK
    と表示され、ファイル temp.txt が作成されます。
  9. C:\OpenSSL-Win32\bin\openssl rsa -in temp.key -outform PVK  (続く)
    -pvk-strong -out my.pvk
    すると、
    WARNING: can't open config file: /usr/local/ssl/openssl.cnf
    writing RSA key
    Enter PEM pass phrase:
    と表示されるのでパスワードを入力します。(混乱を避けるため上のパスワードと同じで構いません。)
    さらに
    Verifying - Enter PEM pass phrase:
    と表示されるので同じパスワードを入力します。
    これで、pvk ファイル my.pvk が作成されます。
  10. C:\OpenSSL-Win32\bin\openssl crl2pkcs7 -nocrl -certfile temp.txt  (続く)
    -outform DER -out my.spc
    すると、
    WARNING: can't open config file: /usr/local/ssl/openssl.cnf
    と表示され、spc ファイル my.spc が作成されます。
  11. temp.key と temp.txt は不要なので削除して構いません。

フォントへのデジタル署名の追加

  1. デジタル署名を追加するフォントを C:\OLS\Dsig にコピーします。ここでは myfont.ttf とします。
  2. コマンドプロンプトで
    signcode -spc my.spc -v my.pvk -j mssipotf.dll myfont.ttf
    と入力します。
  3. 上で設定したパスワードを入力します。
  4. Warning: This file is signed, but not timestamped.
    Succeeded
    と表示され、これで myfont.ttf にデジタル署名が追加されました。
    myfont.ttf をダブルクリックすると、

    のように、「デジタル署名」と表示されています。
    なお、同じ書体名のフォントがインストールされているとそちらの情報が優先して表示されてしまうため、一旦アンインストールしてからダブルクリックしてください。

注意事項

これらに関してはユーザサポートは行いません。

このサイトに記載されている情報により生じた如何なる損害に関しましても一切の責任を負いませんので予めご了承ください。

Copyright © 2015 Musashi System All Rights Reserved.