Macでマイナンバーカードを使ったPDF署名をやってみた
廃業届に電子署名をしたい!
私は副業が解禁となった会社に勤務していて、3年前に開業届を出したのですが、コロナ禍の影響で副業の収入が伸び悩んでいるので、個人事業主としては廃業することにしました。
某大臣もハンコ廃止を訴えていることだし、ここは電子署名でいきたいところ。最近はマイナンバーカードとスマートカードリーダーでPDFに電子署名ができるらしい、、、と検索してみても出てくるのはWindows環境で、Adobe Acrobat DC(有料版)を使ったものばかり。
Macに関しては e-TaxがSafari(とJPKI利用者クライアントソフト)を使った確定申告を受け付けていますが、マイナンバーカードを使ったPDF署名については情報がありません。
スマートカード汎用ライブラリOpenSC
色々検索していくと、どうも2017年頃にオープンソースのスマートカードライブラリ OpenSC にJPKIドライバが実装され、マイナンバーカードが使えるようになっているではないですか!
他方、Mac向けAcrobat Reader(無料)には電子署名機能があります。デジタルIDの設定を探っていくと、「PKCS#11モジュールおよびトークン」という項目があり、標準化されたPKCS#11インタフェースで暗号化トークンを使った署名ができそうです。これはいけそう。
実際にやってみた
まずはMac版インストーラーを使ってOpenSCをインストール。
https://github.com/OpenSC/OpenSC/wiki/macOS-Quick-Start
ライブラリ>OpenSCに一式ができあがり、また /Library/OpenSC/lib/opensc-pkcs11.so がPKCS#11の実体のようです。
あわせて、アプリケーション>ユーティリティに OpenSCNotify.appがインストールされます。
汎用のカードリーダー(私はエストニアの+IDを使いました)をUSBで接続して、早速試してみます。利用者証明書用のPINを読み取り、きちんと動いているようです。
$ /Library/OpenSC/bin/pkcs11-tool --login --test
Using slot 0 with a present token (0x0)
Logging in to "JPKI (User Authentication PIN)".
Please enter User PIN: ****
C_SeedRandom() and C_GenerateRandom():
seeding (C_SeedRandom) not supported
seems to be OK
Digests:
all 4 digest functions seem to work
MD5: OK
SHA-1: OK
RIPEMD160: OK
Signatures (currently only for RSA)
testing key 0 (User Authentication Key)
all 4 signature functions seem to work
testing signature mechanisms:
RSA-PKCS: OK
SHA1-RSA-PKCS: OK
MD5-RSA-PKCS: OK
RIPEMD160-RSA-PKCS: OK
SHA256-RSA-PKCS: OK
Verify (currently only for RSA)
testing key 0 (User Authentication Key)
RSA-PKCS: OK
SHA1-RSA-PKCS: OK
MD5-RSA-PKCS: OK
RIPEMD160-RSA-PKCS: OK
Decryption (currently only for RSA)
testing key 0 (User Authentication Key) -- can't be used to decrypt, skipping
No errors
$
Acrobat Readerの設定
次に、Acrobat Reader>環境設定を選び、左側のボックスから「署名」を選びます。右側の項目の3番目に「IDと信頼済み証明書」の「詳細...」を選ぶと証明書がたくさんでてきます。
ここから「PKCS#11モジュールおよびトークン」を選択し、「モジュールを追加」でライブラリのパス(/Library/OpenSC/lib/opensc-pkcs11.so)を入力します。下記のように認識できていることがわかります。
早速PDFに署名してみる
では、ここからが本番です。デフォルトでAcrobat Readerに表示される「入力と署名」ではなく、その他のツールから「証明書」を選びましょう。
証明書メニューから「電子署名」を選択して、電子署名を置きたい場所をマウスでドラッグすると下記のような画面がでてきます。
証明書を署名対象として認識できるように「新しいデジタルIDを設定」を選択します。署名用パスワードを大文字で入力して(ここ大事)認識させると、署名に使用するデジタルIDとして選択ができるようになります。
表示方法などは適時カスタマイズしてください。
無事、電子署名ができました。JPKI署名用認証局の自己署名証明書を読み込むことで署名検証のエラーも出てこなくなります。ここは自力でやってみてください。
おわりに:申告書等の税務署への提出について
ここまでやっておいて身も蓋もないのですが、4月1日以降の最新の様式からは押印欄はなくなっています。つまり、提出書類には押印は不要です。
令和3年4月1日以降の手続に際しては、以下の点に御留意いただきますようお願い申し上げます。
(1) 国税庁ホームページに掲載している申告書等の様式については、順次、押印欄の無い様式に更新しています。
押印欄のある様式についても、引き続き印刷して御使用いただけますが、この場合も、上記1、2で引き続き押印を求めることとされている手続を除き、押印欄への押印は不要です(以下(2)(3)においても同じ)。
なので、廃業届も電子署名をせずに郵送することにします。
では、また。みなさま楽しいスマートカードライフを!
この記事が気に入ったらサポートをしてみませんか?