商業登記電子証明書(法人印鑑証明書の電子化みたいなもの)のメモ

## 背景

* 法人として, 対法人とのやりやりや, 法務局や税務署などとのやりとりで電子署名や電子契約を極めたい.
* 法務局に行ったりがめんどい.
* ペーパーレス化でオンラインで KYC したい(資金移動や, 古物取引とか)
* Linux とか python とかで処理したい(電子署名や, 受け取った商業登記による電子署名が施された書類の署名検証など)

## 2021 年度追記情報

* 商業登記電子証明書の発行がオンライン申請できるようになりました!
  * これで pay-easy 支払いなどですと完全オンラインで完結できます.  
  * 商業登記の電子証明書を更新の場合, 既存の電子証明書の有効期限内であればそちらを利用
  * 切れてしまった場合は代表者のマイナンバーカードで電子署名(IC カードリーダー必要)
  * オンライン申請の場合は `SHINSEI` ファイルだけ添付すればよいです. 詳細は法務局とかのマニュアル参照ください
* 証明書発行の費用が 2021 年 4 月 1 日からおよそ半額近くに値下がりになりました!
     
## 対象者

法人の代表, and/or 法人の代表を代理する契約担当. 法人実印を使わない契約は今回の対象外.

## 必要な知識

OpenSSL, web サーバの SSL など, 公開鍵暗号方式と, 証明書ベースの認証のしくみ.

## 商業登記電子証明書とは?

http://www.moj.go.jp/MINJI/minji06_00028.html

https://www.cloudsign.jp/media/20181227-denshisyomei-houjin/

法人の履歴事項証明書の取得などに関する電子認証などは, 法務局が提供するツールや, Graffer など民間のサービスで取得できます. 認証局も民間のものが利用できます(法務局? が認定した事業者に限る?). こちらは法人代表印を利用しない部署レベルでの契約など向けですかね.

商業登記電子証明書だけ別扱いです. 印鑑証明と同じ権限(法人代表印と同じ効力)があると類推されます. 認証局は商業登記認証局(法務局?の登記官)を利用しています.

ちなみに電子証明書を取得することで, 登記簿や印鑑証明をオンライン申請できるようにもなりますが, この場合でも登記簿や印鑑証明書の写し自体は書面で郵送もしくは法務局で受け取りになります. PDF で電子署名の公開鍵で暗号化されてデータ送付ではなくて悲しい :sob:

登記簿や印鑑証明の発行や郵送にかかる費用は, Pay-easyかオンラインバンキングなどで支払い対応する必要があり, クレカ決済は対応していません.

### 商業登記電子証明書の取得.

いろいろ頑張れば Linux とかでも申請書類と鍵ペアファイル作れるはずですが, この処理は一回(電子証明書を取得するごと)しかしないので, おとなしく提供されている Windows のソフトで作ります.

(追記) 2021 年 2 月ごろから, オンラインで申請できるようになりました! 以下は法務局に赴く場合の情報です.

まずは~~印鑑カード~~と鍵ペアファイル, 申請書類を準備し, **管轄の法務局**にいって, 電子証明書を発行してもらいます. 管轄でない法務局では対応してくれないので注意です! 法人の登記の住所を確認して, 管轄の法務局を調べておきましょう.

2020 年 3 月 9 日から, 印鑑カードが不要になりました: http://www.moj.go.jp/content/001313568.pdf
どのように本人性を確認するのかは不明ですが(そういえば, 印鑑カードにはどのような情報が記録されているのでしょうかね. 単に法人印の画像だけ?), 2020/04/02 に更新(再度電子証明書発行)したときは, 申請書類に押した代表印の印影を法務局のデータベースと照合しているような感じでした(そのためか, ほかに誰も申請してはおらず法務局は空いていましたが, 20 分ほど待たされた)

web サーバの SSL 証明書と同じような感じで, 電子証明書は有償です. 費用は期間に応じて変わります.
(追記) 2021 年 4 月 1 日から値下げして結構安くなりました

申請については, 代表者ではなく委任もできます.
経験した感じでは, 申請書類のみで判断(委任の場合は委任状欄が埋まっているかどうか)していました. 申請しにきた自然人の個人の確認はしませんでした. ~~申請では印鑑カードが必要なので, 委任の場合は印鑑カードを法人代表から受け取っているので安心(なりすましなど無い)との判断でしょうか~~.

鍵ペアファイルは, USB メモリや CD-ROM あたりに格納して渡します. フロッピーディスク渡しでの対応は平成 28 年あたりから廃止になりました. 鍵ペアファイル自体は 1KB くらいなので, 2019 年時点では USB メモリに入れて提出が楽でしょうか. 法務局側で読み出したら媒体は返却してくれます.

申請が完了すると, シリアル番号が発行されます(だいたい 10 分くらいで終わる模様).
帰社後, シリアル番号をソフトに入力すると, PCKS#12 形式の鍵ファイルを取得できます.

あとはこの PCKS#12 で電子署名していいきます.

## KYC 対応

銀行や資金移動業者などは, マネロン規制のため, 犯罪による収益の移転防止に関する法律(犯防法)

http://www.npa.go.jp/sosikihanzai/jafic/hourei/hotop.htm

に基づき法人の確認を行わなければならない.

ここで法人の本人確認に商業登記電子証明書を利用することができます(相手業者が対応している場合).

https://www.fsa.go.jp/news/30/sonota/20181130/20181130.html

犯罪による収益の移転防止に関する法律施行規則 

http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=420CO0000000020

第六条の三のハです.

> ハ　当該法人の代表者等から、商業登記法（昭和三十八年法律第百二十五号）第十二条の二第一項及び第三項の規定に基づき登記官が作成した電子証明書並びに当該電子証明書により確認される電子署名法第二条第一項に規定する電子署名が行われた特定取引等に関する情報の送信を受ける方法

これが今回のものに該当するはずで, これだと完全オンラインで完結します.

商業登記電子証明書の場合は, 法務局が認証局になっているので, 特段民間のサービスを経由せずに受け取り手は電子署名の署名検証が行える(はず).


> イ　当該法人の代表者等から本人確認書類のうち次条第二号又は第四号に定めるものの提示を受ける方法

これは店頭での契約むけ

> ロ　当該法人の代表者等から本人確認書類のうち次条第二号若しくは第四号に定めるもの又はその写しの送付を受けて当該本人確認書類又はその写し（特定事業者が作成した写しを含む。）を第十九条第一項第二号に掲げる方法により確認記録に添付するとともに、当該本人確認書類又はその写しに記載されている当該顧客等の本店、主たる事務所、支店（会社法第九百三十三条第三項の規定により支店とみなされるものを含む。）又は日本に営業所を設けていない外国会社の日本における代表者の住居（以下「本店等」という。）に宛てて、取引関係文書を書留郵便等により、転送不要郵便物等として送付する方法

これは郵送が必要.

## 署名する

Acrobat DC を買えばとりあえず解決なのですが, Linux で電子署名したいので調べてみました.

LibreOfficeの文書とPDFに電子署名するよ
http://www.nofuture.tv/diary/20151210.html

LibreOfficeで文書に電子署名
https://qiita.com/tsuyoshi_cho/items/4cf78f8f1d0a0dd94018

ただ, Ubuntu 16.04 の firefox 66.02 + LibreOffice5 では, LibreOffice 側に Firefox の証明書のリストが出てこなくて署名できませんでした. Windows や macOS ならいけるのかも?


https://askubuntu.com/questions/147379/how-do-i-digitally-sign-a-pdf

いくつかツールはあるようですが, 古かったりリンクぎれだったりがあります(もともとあまり需要がないのか, それとも他のツールに機能が統合されたから単体プログラムがあまり使われなくなったのか)

ひとまず, PortableSigner 2.0 で動作を確認しました(Java が必要)

http://portablesigner.sourceforge.net/

node.js 版がありました.

https://github.com/vbuch/node-signpdf

UI が欲しければ, PDFKit(iOS framework) を参考にし, pdfkit(OSS) + ReactNative などで作成でしょうか.

Add a Signature to PDF using PDFKit with Swift
https://medium.com/@rajejones/add-a-signature-to-pdf-using-pdfkit-with-swift-7f13f7faad3e

http://pdfkit.org/
 
## 署名の検証

法務局のページには, 申請の方法はいろいろありますが, 署名検証(電子署名されたデータの受け取り手)はどうするかという具体例があまりありません(あってもどこぞのソフトを使ってね, などくらい).

GPKI とか OCSP で証明書の有効性確認とかするのかな?と思いましたが, 商業登記認証局はルート認証局一箇所だけなので, ここの証明書(登記官の発行した証明書)を単にチェックすればよいでした.

http://www.moj.go.jp/ONLINE/CERTIFICATION/REGISTRY/registry12-1.html

証明書は, 法務局のなんらかの理由により, 年に一回変わりますが, 電子署名したときに対応する電子認証登記所の登記官の電子証明書は一個だけなので finger print を確認すればよい. 有効な電子認証登記所の登記官の電子証明書は全体で 4 個しかない(証明書の有効期間が 4 年で, 毎年発行)ので, CRL で毎日とかオンデマンドで失効リスト取得なども不要でした(しかし, ある日突然登記官の秘密鍵が流出して, 電子認証登記所の登記官の電子証明書が発行し直しになる可能性はあるやも?).



### 参考情報

いろいろ探して仕様書っぽいのを見つけました.

http://www.moj.go.jp/ONLINE/CERTIFICATION/SYSTEM/system.html

OCSP verification with OpenSSL
https://backreference.org/2010/05/09/ocsp-verification-with-openssl/

How to do OCSP requests using OpenSSL and CURL
https://unmitigatedrisk.com/?p=42

OCSP レスポンダとかいろいろ書いて検証するのは, GPKI の証明書とかですかね.



## 感想

専用ソフトや情報が日本語しかないようで, 海外の日本語 non-native は日本語わからないとお手上げではないかと思いましたが, 英語バージョンもしくは代行する業者とかがあったりするのしら?

IT 化がすすんでいるフィンテックとかの資金移動業者とかでもまだまだ電子署名は普及していないような印象を受けました. 建築業界(電子入札)のほうが電子署名はすすんでいるのかしら?

商業登記電子証明書ベースで KYC して, 法人間で物品の買取や中古販売, 質取引をしたい.