Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コード署名 #316

Open
nmaya opened this issue Sep 11, 2024 · 3 comments
Open

コード署名 #316

nmaya opened this issue Sep 11, 2024 · 3 comments

Comments

@nmaya
Copy link
Member

nmaya commented Sep 11, 2024

Edgeのダウンロードで「一般的にダウンロードされていません」と半ばブロックされたり、インストーラを実行すると「WindowsによってPCが保護されました」と言われる。

コード署名があればこのようなことが起こらないかもしれない(起こるかもしれない)。

実現可能かわからないが、メモとして残しておく。


検討事項

  • 署名してくれる機関を探す
    • 無償で発行してくれるところはあるのか
  • 署名する対象
    • インストーラ
    • ttermpro.exe
    • ttpmacro.exe
    • keycode.exe
  • リリースバイナリの作成は「AppVeyor でビルドする」だが、秘密鍵をソースツリーに置いておけないはず。自動化できるのか?

参考: https://github.com/TeraTermProject/teraterm/blob/main/installer/codesigning.bat

@zpc0
Copy link

zpc0 commented Sep 11, 2024

I suggests

  • Certum Open Source Developer certificates (Crystal Disk Info uses this. not free but cheap)
  • SignPath Foundation (Free, but requires manual approval)

@zpc0
Copy link

zpc0 commented Sep 11, 2024

丁度コード署名のissue書こうかと思っていたので乗っからせていただきます
(変な英語ですみませんでした!IME設定してなかったもので…)

まず、EdgeやWindowsでの警告ですが、これはアンチウイルスではなく、SmartScreenという機能が出しているものだと思われます。SmartScreenの警告はご指摘の通りコード署名によって出さないようにすることが可能です。
ただし、ちょっとした条件があって、

  • コード署名がExtended Validationの場合は、署名を取得してすぐにSmartScreenをバイパス可能
  • コード署名がそれ以外のの場合は、署名の評価が高まるのを待つ必要がある

有志開発のFLOSSでEV署名は現実的ではないので、後者になるかと思われます。
(https://stackoverflow.com/questions/50956108)
後者の場合でも、SmartScreen抑止、アンチウイルス誤検知抑止、なりすましマルウェア抑止が期待できるので取り組む価値はあります。

署名用の証明書はいろいろな会社が出していますが、低価格、できれば無料となると選択肢はあまりないです。
私が知っているのだと

とかです。両方ともFLOSS専用のプランを出してます。

それぞれ特徴やデメリットとしては

Certum

  • 格安だけど一応有料(50-70ユーロ/年)
  • いろいろなプロジェクトが使っている(署名がOpen Source Developer ~ってなっているのはここの証明書。日本でもCrystal Disk Info等で実績あり)
  • 証明書はスマートカードで提供されるので、誰かのPCで手動で署名する必要がある(クラウド版があるらしいけど詳細不明)
  • 条件満たしてお金払えばまず間違いなく証明書発行してくれそう
  • 証明書はプロジェクトではなく個人に発行されるので、誰かが代表して登録する必要がある。実名と都道府県が公開されるはず。

SignPath Foundation

  • 有料版と無料版があるっぽい
  • Vimやsmartmontoolsといった著名なプロジェクトもユーザーのリストにある
  • 証明書はクラウドにあって、署名プロセスの大半をCIのように自動化できる(完全な自動化は不可らしい)
  • 個人ではなくプロジェクトに証明書が付与される(正確にはSignPath Foundationに付与された証明書を使わせてくれるサービスらしいけど)ので、特定の個人に負担が集中しない
  • 対象になるには色々条件がある。特に無料版は細かい条件が色々あって、向こうと交渉が必要かも

といった感じです
何かの助けになれば幸いです

@nmaya
Copy link
Member Author

nmaya commented Sep 11, 2024

情報ありがとうございます。

Vim に issue がありました。
ななめ読みですが 「インストーラだけ」にするのか「全exeファイル」にするのかという、私が気にしていたことも書いてありました。

SignPath が GitHub に https://github.com/SignPath/appveyor-demo というリポジトリを持っているようです。
鍵を公のところに置いておけない問題は、AppVeyor のプロジェクトの環境変数に API key を保存しておいて、それを使うような感じですね。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants