いくつかの代理店経由でコードサイニング証明書をとり、雑誌(ハッカージャパン・白夜書房)でも二度にわたり、コードサイニング証明書の取り方を解説してきた。まとめてみたので、みなさんの参考になれば幸いである。日本では東京商工リサーチが窓口。新規登録料は約3,000円。TDB...帝国データバンク。自身での登録はできない建前。コモドジャパンのコード証明書がマストである。手続き・コールバックともに、すべて日本語で行われる署名先アプリケーションに制限がない(ひとつの証明書でWindows/MAC/Javaに横断的に対応)法人はもちろん「個人」でもOK日本語だけで手続きできる証明書としては、最も安い(2018年8月現在・\22,680/年)初心者慣れしており、DUNSの取得段階からフォローしてもらえる代理店ではなく「認証局の国内合弁企業」なので、時差・為替差がなく価格も安定などである。審査方針も日本文化をよく理解したうえで策定されており、融通がきく。失敗したくない、という点を重視するならあきらかにここだろう。コモドジャパンでの手続きコールバックは申し込みから1週間後の午後1時ごろにあった。申請者の在籍を証明する人名(※代表者申請の場合いらないと思うが)と、ごく一般的で、コールバックの翌日に証明書が発行された。(赤枠)Webサーバー用のSSL証明書を、コードサイン用の証明書にすることは(通常は)できない。電子証明書には「目的」(拡張キー使用法)の項目があり、そこに「コード署名」が含まれる電子証明書でなければ、プログラムコードに対する署名には使えないことになっている。(法務局が発行業務を行っている)の目的の項目が「すべて」となっていて、すなわち万能証明書になっている。価格もコードサイニング証明書と比較すればかなり安い。これを実用的なコードサイニング証明書として使用するには工夫が必要で、このあたりは、ちょっとおもしろいところだと思っているが、いまのところ一般的な手段とはいいがたい。署名した組織の実在証明が、それぞれされている。具体的に、署名されたコードには「ハッシュ値」と「コードサイニング証明書」が記載されており、1をコードサイニング証明書そのもの、2をハッシュ値を比較するための公開鍵、3はコードサイニング証明書のサブジェクトの記載によって、それぞれ検証できる仕組みになっている。2だけなら自己証明書等でできるから、1と3がコードサイニング証明書の役割になる、と考えるとわかりやすい。コードサイニング証明書を購入する場合、この「署名した組織の実在証明」が、手続き上の山場といえる。なかでも署名した人の証明ではなく「組織」の証明であるという点に注意が必要だ。Applicants(組織の申請者の確認)として、コードサイニング証明書が組織を対象としていることを明記している。Validation)と同等になっている。個人がとれないかというと、実際には帝国データバンクや東京商工リサーチへの掲載、あるいはDUNSナンバーへの申請、確定申告の写し等により「商業的に実在」していることが証明できれば、「屋号」の扱いで個人にコードサイニング証明書を売ってくれる認証局もある。法人より、敬遠される傾向ではあるので、「個人可」をうたっているところが望ましい。EVコードサイニング証明書は、EV-SSLレベルに審査基準を厳格化したものと考えてよい。コールバックさせない方法はあるか公的に証明され信頼できる電子証明書のことを「パブリック証明書」という。電子証明書だけなら自分で作ることができるが、それだけならプライベート証明書とよぶ。Requirements」に定められている。(認証手続き)に、記載事項の検証方法が規定されている。商号・屋号については、以下のうちすくなくとも1つを使用することを定めている。Requirements」のうえでは、上記の1~5のいずれか1つ以上が用意できれば、理論上は独自ドメインもいらないし、コールバックも必要ない。証明書の申し込みに独自ドメインのメールアドレスや電話番号を求められることがあるかといえば「真正性の確認」のためだ。文書は整っているけども、その文書が真正であるかは別途確認する必要があるからである。会社に無断でパブリック証明書の発行手続きを行っていたとしたら、文書は整っていても、申し込みは真正ではないことになる。認証局(CA)は、申込書や内容が真正であるか確認する義務があるので、その方法として、電話によるコールバックや電子メールの検証を行い、複数の信頼点を確保している。ベリサイン(シマンテック)のような「担当者がこっちを訪問」することもあるケースでは、コールバックはない。Requirementsでは、その際のやりとりを記録保管するよう定めてはいるが、かならずしも電話を使用しなければならないという定めはない。どの認証局も「来社確認をお願いします」とか「書類認証でお願いします」といえばコールバックをしない方法を検討してもらえるはずだが、電話認証より高くつくのはほぼ確実だろうし、それを引き受けるかどうかも認証局が決めることである。Requirementsより発行基準を厳しくすることは、認証局の自由だからだ。経済的な真正性確認方法ではあるが、事情によってはかならずしもコールバックでなければならないというものではない。Windowsアプリケーションコードサイニング証明書が購入できた後、SHA-1とSHA-2どちらで署名するべきだろうか。コモドジャパンのようにSHA-1/2両用証明書を発給してくれる認証局もある。Windowsなら、いまのところSHA-1が無難かもしれない、と私は考えている。SHA-2署名のユーザーアプリケーションの場合、VistaのUACで「非署名」の扱いで立ち上がってくることがある。SHA-2は2000/XP/Vistaのカーネルドライバ非対応だし、7/8/8.1でもWindows更新プログラムで対応ということもある。コードサイニングでSHA-1衝突が可能か疑問もある。これは私の考えだし、ケースバイケースである。署名するアプリケーションがWindows7以降・あるいはWindows10用ということであれば、SHA-2署名を使用するのが原則だと考える。SHA-2を使って警告が出続ける環境を「当然」のようにユーザーに強いることは、ユーザーのモラルあるいはリテラシーへの悪影響懸念が払しょくできない、というのもある。SHA-1は2017年から使えなくなったのでは?たしかにマイクロソフトは2017年以降、ルート証明書プログラムにおけるSHA-1ハッシュアルゴリズムの廃止を宣言していた。資料しかし、後に、SHA-1コードサイニング証明書については対象外になった。資料SHA-1で署名したプログラムは、当面、従来通り使用できるし、今後もSHA-1で署名することもできる。〇それはそれとして、そうなると、次の疑問が生じる。2016年1月1日から、認証局はSHA-2(sha256)の証明書しか発行していない。その証明書では、SHA-2の電子署名のみ可能で、SHA-1の署名は不可能ではないか、という疑問である。それについては、いまのところ問題ない。コモドジャパンのコード証明書については、SHA-1/SHA-2両用証明書なので、どちらのアルゴリズムで使っても電子署名が可能である。シマンテックのようにSHA-1版とSHA-2版が別々に販売されているケースでは注意が必要である。(署名ツールで証明書ファイルを指定するか・証明書ストアにSHA-1/2両方を入れて自動判定させる必要があるかもしれない。)→資料この発表も当初「タイムスタンプがあるものは2020年1月1日まで・それ以外はダウンロード時に警告する」といった但し書きがあったが、それも含めて後に撤回されている。資料なお、この措置は2017年になっても迷走しているので、注意は必要である。4月11日まで続いていたので(カーネル署名がSHA-2に非対応)、その終了期限を待たずにSHA-1のコードサイニングを完全廃止するのはいささか乱暴であったろう。AIRアプリなどをオンライン配布しようとした時点である。電子的に「署名」をしてないと、露骨に警告が表示される時代だ。その署名が公的電子認証局(CA)に保管されている署名と同一であればその署名は信頼できることになり、ひいてはプログラムも信頼できることになる。これがコードサイニングである。(実際にはPKI-公開鍵暗号基盤により署名の本体そのものは非公開のまま、署名した結果の正当性だけが比較されているのだが、ここでは触れない)公的に認められるコードサインを行うには、作者は、認証局に自身のコードサイン(鍵ペアの片方)を登録する必要がある。登録が済むと認証局から、コードサイニング証明書(pfx等)をもらえるので、自身のOSにインストール(ストア)して、以後はそのOS上で署名ツールを使用して、自身のソフトウェアに署名できるようになる。大きな流れとしては、このようなカンジなのだが、実際にはつぎのような問題が噴出して、しきいが高かった。有名代理店だと金額がものすごく高い!メジャーブランドなどでは年額6万円とか9万円とかする。小規模事業者には到底手が出ない。存在証明の方法がわかりにくい身分証明(法人の存在証明)に「DUNS」ナンバーを要求される。住民票や登記事項証明(登記簿謄本)に慣れた日本人には、DUNS(世界的に通用する企業コード)と言われてもなんのことかわからない人が多い。個人でとるのが難しい!「法人」になっていることが取得の前提条件になっていることが多く、個人の受け付けは極めて少ない。英語/英会話力が必要!日本のコードサイニング代理店もさまざまで、手続きの最初から最後まで国内代理店が行うところもあれば、受付や決済だけ日本語で→認証局への手続きは英語というところもある。認証局の審査では、多くがこちらに電話をかけてきて、申し込み内容と同一の質問を尋ねて「申し込み内容に間違いがないか」を口頭でたしかめてくる。これを「コールバック」というのだが、海外に業務を投げている代理店の場合、認証局のスタッフが「英語」で電話をかけてくる。英国の朝9時は、日本の夜6時。フロリダだと現地の朝9時は日本の夜11時である。夜中のコールバックは厳しい方もおられるだろう。えらく限定・細分化されていることがある。使えないかもしれないという恐ろしさで、容易に手が出せない。これらの理由で、なかなか「コードサイニング証明書」をとるのは厄介に思えるのが普通ではなかろうか。そこで、今回、こちらのページを作るにいたった。おすすめのコモドのように、日本法人(コドモジャパン)を設置して、これらの問題点を克服しようとする認証局も見られはじめたので、少しずつではあるが、今後改善されていくとは思う。