自作ソフトにおける「exe」への自己署名 その2 OpenSSL


自作ソフトにおけるexeソフト自己署名 OpenSSL

VBやVCで作った自作ソフトはClickOnceなど使わないと無署名ソフトとなります。
そうするとセキュリティソフトがあやしいソフトとしてヒューリスティックエンジン(ウイルスとして類推するエンジン)が反応することがあります。
しかし自作ソフトですのでウイルスを作っていない限り誤判定としかいえません。
通常の市販ソフトなどはデジタル署名する為年間単位でEVコード証明書が発行できるComodoなどと契約しデジタル署名をしています。
ですがフリーソフトなどの場合はお金を払ってまでコードサイニングは難しいとおもいます。
そこで俗にいう自己署名をしてみようともいます。これは作者自身がEVコード証明書を発行しソフト作者がデジタル署名をすることです。
酷いヒューリスティックエンジンではアイコンを追加しただけで誤判定などがありましたので無署名ソフトには非常に厳しい判定をするようです。
当時、デジタル署名で回避できましたので今回はデジタル自己署名の方法をお伝えしようと思います。

必要なソフト

OpenSSL よりWin64OpenSSL-1_1_0i.exeをダウンロード

Sintool.exeを使いますのでWindows 8.1のSDKをダウンロードしてください

注釈

OpenSSLはSSLがメインですので、なかなかexe署名は情報がありませんでした。ネットの情報は中間CA局を自前で用意するものが主でしたが,なくともソフトの署名は一応できましたのでそのレポートです。ちなみにこの方法が正解かは?です。


Cフォルダ直下にosslフォルダをつくります。

コマンドプロンプトにて

  1. cd c:\ossl
  2. # privatekey.pem コード認証秘密鍵
  3. openssl genrsa 2048 > privatekey.pem
  4. # csr.pem 認証要求のお願いの申請書
  5. openssl req -new -key privatekey.pem -out csr.pem
  6. #C : 2文字の国コード。日本は JP 。
  7. #ST : 都道府県
  8. #L : 市町村
  9. #O : 組織の名称
  10. #OU : 組織の部局の名前
  11. #CN : サーバの FQDN
  12. #password :パスワード
  13. #server.crt 認証局の証明書
  14. openssl x509 -req -days 36500 -in csr.pem -signkey privatekey.pem -out server.crt
  15. #pfx 出力
  16. openssl pkcs12 -export -out BooleanEffect.pfx -inkey privatekey.pem -in server.crt
  17. #signtool
  18. cd C:\Program Files (x86)\Windows Kits\8.1\bin\x64
  19. signtool sign -f C:\ossl\booleaneffect.pfx -p パスワード C:\ossl\ソフト.exe

※パスワード、ソフト等は適宜書き換えてください
signature

そして証明書のインストール後

signature

自分で使う分には自己署名としてはこれでOkかと思いますが、シェアウェア作家の方はどうしていらっしゃるのでしょうか。自己署名で配布して証明書をインストールしてくださいともお願いしずらいし、つけなきゃウィルスソフトが誤反応する。悩ましいですね。とりあえず自己署名しておいて証明書のインストールはユーザーに任せるといったところでしょうか。署名のインストールしなくともウイルス誤反応は防止できました。代替手段としては無料の署名の デタッチデタッチサインサービス がありました。
これ良さそうですね。⇒ 残念ながらサービス終了のようです。

参考リンク Spcial thanks

OpenSSL
logo