本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
自社アプリをリリースする際、リバースエンジニアリング対策として.NET Reactor等でコードを難読化するのは重要なセキュリティ対策です。しかし、難読化を行った結果、Deep Instinctなどのセキュリティソフトに「ウイルス」として誤検知・ブロックされてしまい、ユーザーにご迷惑をおかけしてしまう問題に直面しました。
この誤検知問題を根本的に解決するためには、アプリケーションにデジタルの実印を押す「コードサイニング証明書」の導入が不可欠です。
しかし、コードサイニング証明書は提供している認証局(CA)によって価格や条件がバラバラです。「まずは最安で試してみたい!」という視点から、主要な証明書発行業者3社を比較検討してみました。
比較した主要認証局(CA)3社
今回は、初めての導入ということもあり「1年契約での実質コスト」と「サポートの安心感」を軸に、以下の3社をピックアップしました。
1. SECTIGO(セクティゴ)
米国に拠点を置く世界最大級の商用認証局です。世界的な実績がありながら、日本国内に法人(株式会社セクティゴジャパン)があり、日本語でのサポートが受けられるのが強みです。
- 1年あたりの価格: 55,000円
- 提供形態: USBデバイスのみ
- 保証: 30日間返品可
- その他: アプリケーション署名回数無制限、タイムスタンプ利用可能
注目ポイント: 3年契約を結ぶと110,000円(1年あたり約36,666円)となり、長期的に見るとコストを劇的に抑えることができます。
2. GlobalSign(グローバルサイン)
GMOインターネットグループ傘下の日本の電子認証・セキュリティ会社です。1996年にベルギーでサービスを開始して以来、世界中で5,000万枚以上の発行実績を誇ります。
- 1年あたりの価格: 60,000円
- 提供形態: USBデバイスのみ
- 保証: 7日間返品可
- その他: アプリケーション署名回数無制限、タイムスタンプ利用可能
- 注目ポイント: 完全な日本企業であり、あのGMOグループであるという圧倒的な安心感と国内サポート体制が魅力です。
3. SSL.com
米国テキサス州ヒューストンに本社を置く大手認証局です。クラウド上で署名ができる仕組みなど、先進的なサービスを提供しています。
- 1年あたりの価格: 129ドル
- 提供形態: USBトークン郵送、またはクラウド署名(eSigner)
- 保証: 30日間返品可
- その他: タイムスタンプ利用可能。10年契約で年額64.5ドルまで下がります。
- 注目ポイント: USB等のハードウェア不要でどこからでも署名できる「eSigner」が利用可能。ただし、維持費に注意が必要です。
料金・スペック比較表
各社のスペックと「実質的な初年度費用」を比較してみましょう。
| 比較項目 | SECTIGO | GlobalSign | SSL.com |
| 1年契約の基本料金 | 55,000円 | 60,000円 | 129ドル |
| 長期割引 | なし(+30日間の特典) | 10年: 645ドル (年/64.5ドル) | |
| 提供形態 | USBデバイス | USBデバイス | クラウド(eSigner) or USB郵送 |
| 隠れコスト・維持費 | なし | なし | あり(下記参照) |
| 日本語サポート | あり(日本法人) | あり(純日本企業) | 英語メイン |
| 返品保証 | 30日間 | 7日間 | 30日間 |
| 署名回数 | 無制限 | 無制限 | eSigner利用時は従量課金 |
⚠️ SSL.comの「隠れコスト」に要注意
- クラウド署名(eSigner)を利用する場合
- 証明書代 129ドル + eSigner維持費(月20回サインで月額20ドル×12ヶ月=240ドル)= 年間 369ドル
- USBキーを郵送してもらう場合
- 証明書代 129ドル + 海外からの郵送料 279ドル = 年間 408ドル
「※1ドル150円換算で約61,200円」
現在の為替レートを考慮すると、決して「最安」とは言えない金額になってしまいます。
考察:最安&安心で選ぶならどこ?
今回、初めてのコードサイニング証明書導入にあたり各社を比較した結果、以下の結論に至りました。
SSL.comは見送りが無難
「年間64.5ドル」という表記は非常に魅力的でしたが、これはあくまで「10年契約」をした場合の話です。初めての導入でいきなり10年縛りはリスクが高く、また1年契約で計算するとUSBの海外配送料やeSignerの維持費が重くのしかかります。海外サポートになる点も不安要素です。
本命は「SECTIGO」か「GlobalSign」の2択
日本国内で手厚いサポートが受けられ、維持費などの隠れコストがないこの2社が現実的な選択肢となります。
- 「とにかく安心感・知名度重視」なら、純日本企業であるGlobalSign(年間60,000円)。
「長期的なコストパフォーマンス重視」なら、SECTIGO。
1年目の費用は55,000円とGlobalSignと大差ありませんが、もし運用が上手くいき次回の更新で3年契約(110,000円)に切り替えれば、1年あたりのコストは約36,666円まで激減します。日本語サポート(セクティゴジャパン)が受けられる点も安心です。
【重要】絶対に忘れてはいけない「タイムスタンプ」の利用
比較表にも記載している「タイムスタンプ利用可能」という項目。実はこれ、コードサイニング証明書を運用する上で最も重要なポイントの一つです。
なぜ重要なのか? 証明書の「有効期間」に関する新たなルール CA/Browser Forum(電子証明書の業界基準を策定する国際団体)による新たな業界要件により、公開されている信頼できるコード署名証明書の最大有効期間が「458日(約15ヶ月)」に制限されることになりました。
(※SECTIGO等で3年などの長期契約を結んだ場合でも、1回に発行される証明書自体の寿命は最長458日で、期限が切れる前に再発行手続きを行う形になります。)
タイムスタンプがアプリの信頼を「永続化」する もしタイムスタンプを使わずに署名した場合、証明書の有効期限(最長458日)が切れた瞬間に、その署名自体も無効になってしまいます。すると、ユーザーの環境でDeep Instinct等に再び「未確認のアプリ」としてウイルス判定されるリスクが復活してしまいます。
しかし、署名時に「タイムスタンプ(タイムスタンプ局が発行する正確な日時情報)」を一緒に付与しておけば、OSやセキュリティソフトは次のように判断してくれます。
- 「このアプリは、証明書が有効だった期間中に正しく署名されたものである」
これにより、証明書の有効期限である458日を過ぎた後でも、一度署名したアプリケーションは信頼されるアプリケーションとして認識され続けるのです。
今回比較した3社はすべてタイムスタンプに対応していますが、実際に署名ツールを動かす際のオプション設定で「タイムスタンプの付与」を絶対に忘れないようにしましょう。
まとめ
難読化によるウイルス誤検知を回避するためのコードサイニング証明書。初期費用だけを見ると海外の格安CAに惹かれがちですが、実運用を見据えた配送料やクラウド手数料、そして何かトラブルがあったときのサポート体制を考慮すると、国内でサポート対応が完結し、料金体系が明瞭なSECTIGOやGlobalSignを選ぶのが、結果的に「最もコスパが良い(最安の)選択」と言えそうです。
同じようにアプリの誤検知に悩んでいる開発者の方の参考になれば幸いです!
【重要追記】Sectigoコードサイニング証明書の「複数年契約」が廃止へ
コードサイニング証明書の運用において、大きなルール変更がありました。業界大手のSectigo(セクティゴ)において、これまで提供されていた「2年以上の複数年予約(サブスクリプション)契約」の新規受付が終了となります。
今後は「1年ごとの契約・更新」が基本となります。
複数年契約がなくなった背景
この背景には、CA/ブラウザフォーラム(認証局の標準化団体)によるセキュリティ基準の厳格化があります。
コードサイニング証明書は、2023年より「秘密鍵を物理トークンやHSMなど、専用ハードウェアに保存すること」が義務化されました。これに加え、証明書の有効期限を短縮し、常に最新の認証状態を維持させるという世界的なトレンド(アジリティの向上)により、長期の予約販売が廃止される流れとなりました。
今後の運用で注意すべきポイント
- 毎年の「再署名」と「証明書入れ替え」 これまでは3年契約であれば、3年間は同じ証明書で署名を続けられましたが、今後は毎年新しい証明書を取得し、ビルド環境に組み込み直す必要があります。
- 物理トークンの管理コスト USBトークン形式で利用している場合、更新のたびにトークン情報の書き換えや、場合によっては新しいトークンの発送を待つ手間が発生する可能性があります。
- 更新サイクルの短縮 「一度設定したら数年は安心」という運用が通用しなくなります。開発チームの年間スケジュールに「証明書の更新作業」を定例タスクとして組み込むことが必須です。
