Linux & NFC & マイナンバーカード & LibreOffice
Linux でマイナンバーカード(NFC)を使用してLibreOfficeに署名
2024-01-20
※2024-08-26 追記:
- LibreOffice 24.2, 24.8 でサイン出来ませんでした
- 署名に使用する証明書選択ダイアログ画像
(1).結論
- Linux & IO DATA USB-NFC4 & マイナンバーカード でIO DATAのNFCが使え、サインできてハッピーさ
- LibreOffice7.4、サインできた
- 出力するPDFにもサインできた
- たしかに何のパスフレーズを使うか迷う。要注意!
(2).環境
- Ubuntu 22.04
- LibreOffice 7.4
- IO DATA USB-NFC4
(3).参考サイト
- マイナンバーカードでLibreOfficeの文書とPDFに電子署名だけするよ2017
https://www.nofuture.tv/20171210 - LibreOffice Help Applying Digital Signatures
https://help.libreoffice.org/7.4/en-US/text/shared/guide/digitalsign_send.html - LibreOffice Help PDF Digital Signatures
https://help.libreoffice.org/7.4/en-US/text/shared/01/ref_pdf_export_digital_signature.html - マイナンバーカードによる認証と署名
http://eswg.jnsa.org/matsuri/201711/20171101-P1-hamano.pdf - マイナンバーカードと電子署名の本
https://www.cuspy.org/diary/2021-09-04-myna-book/myna-book.pdf - List of free rfc3161 servers
https://gist.github.com/Manouchehri/fd754e402d98430243455713efada710?permalink_comment_id=3810141 - JPKI 署名用の認証局 Certificate Authorities file
https://www.jpki.go.jp/ca/ca_rules3.html - JPKI 利用者証明用の認証局 Certificate Authorities file
https://www.jpki.go.jp/ca/ca_rules4.html
(4).事前準備
参考サイト 7. からJPKIの署名用CAファイル(.cerになっている)をダウンロード。
2023-12時点で3種類存在(signca01.cer
,signca02.cer
,signca03.cer
)。全てget。
Ubuntu 22.04のシステムに認識させる。
for i in *.cer
do
k=${i/.cer/}
openssl x509 -inform DER -in $i -out jpki-${k}.crt
done
cp jpki-*.crt /usr/local/share/ca-certificates/
update-ca-certificates
Ubuntu 22.04のopenssl
、opensslライブラリをリンクしたソフト(wgetなど)は、これでJPKIを認証局として認めるはず。
参考サイト 8. のJPKI利用者証明用のCAファイルも必要かどうか不明だったため、ついでに入れた。
(5).詳細
(5)-1. LibreOffice文書にサイン
参考サイト 1. がものすごく詳しい。キャプチャーまでついていて。
これがなければ、何もできなかった。ありがとうございます!!!!
注意点は、本当に何のパスフレーズを入れれば良いか迷うこと。私も罠にひっかかった。
よかった、パスワード失敗回数上限になる前に気づいて。
よーくダイアログのメッセージを見ないと、マイナンバーカードの長いパスフレーズか、短い方か間違う。絶対に間違う。断言しよう!間違うと。
入力前に、深呼吸なり、お茶飲むなりして、気持ちを落ちつけよう!
「User Authentication PIN」 => 短い方
「Digital Signature PIN」 => 長い方
署名に使用する証明書選択ダイアログ:
「20....」から始まるものが、マイナンバーの「署名用」のpem
ダブルクリックか[署名]ボタンで署名
(5)-2. LibreOfficeからexportするPDFファイルにTSA
PDFをexportする時、TSA (RFC3161)をつけるには、
まず準備が必要:
-
LibreOffice 「ツール」⇒ 「オプション...」でオプションウインドウ出現
-
オプションウインドウ内で、「LibreOffice」 ⇒ 「セキュリティ」
-
「時刻認証局」の、[時刻認証局...]ボタンで、TSA server 追加ダイアログ出現。
LibreOffice Option -
TSA サーバーを追加
TSAサーバーは、参考サイト 6. から選ぶ。複数追加可能。
LibreOffice TSA server追加
実行:
LibreOffice上で、PDFにエクスポートする時のダイアログで、「時刻認証局」を押し、TSAサーバーを選ぶ。
LibreOffice PDF TSA
(5)-3. PDF studio viewerでみる
出来上がった署名つきPDFをみる。
Qoppa PDF Studio Viewer ( https://www.qoppa.com/pdfstudioviewer/ )
は、CAファイルをインポートできる。
- 「ファイル」⇒「設定」で、設定ウインドウ出現
- [信頼できる証明書]選択
- [インポート]で、ダウンロードしたJPKIの
*.cer
ファイルを読み込み
これで、JPKIの認証局に対する検証が通る。
(5)-4. RFC3161 TSA serverについて
参考サイト 6. のTSAサーバーの中で、Ubuntu 22.04上のopenssl
コマンド、Qoppa PDF Studio Viewer がCAを認識したサーバーは次だった。
http://eswg.jnsa.org/freetsa
https://freetsa.org/tsr
http://timestamp.apple.com/ts01
http://ts.ssl.com
http://timestamp.digicert.com
http://tss.accv.es:8318/tsa
最新のmacosや最新のwindows上で、最新のacrobatを使えば、CAを認識するかもしれないのは次。試していない。
http://tsa.belgium.be/connect
http://dd-at.ria.ee/tsa
参考サイト 6. の中で、
Credible: Yes . [Adobe: European Union Trusted Lists] and [Windows Cert Store].
と記載しているため、何もしなくてもCA認識の可能性がある。
Ubuntu 22.04で認識させようとしたが、CA fileがどこにあるか探しきれず。失敗。
ベルギーのCAファイルを見つけたが、timestampサーバーのCAファイルがテキストではなくPDFファイルに書かれている。かつ、2つのpemのチェーンになっていた。コピペしてみたが、うまくいかなかった。何か手順が違うのだろう。追求できていない。
他
- JsignPDF+マイナンバーカードでサインする事については、気が向いたら書くかもしれない。書かないかもしれない。
追記: Libreoffice 24
2024-08-26
Libreoffice 24.8.0 署名失敗。
[署名]ボタン押しても無反応。ダイアログも閉じない。
かんべんしてほしい.........
デバッグログってどうやって出すの?
以上
Discussion