という記事が出ていたので、マイナンバーカードを使ったSSHログインをLinux上でやってみました。環境は出たばっかりのFedora 24です。
カードリーダーは、上記の記事のような非接触式ではなく、接触式のICカードリーダー NTTCom SCR3310を利用しました。
SCM ICカードリーダー/ライター B-CAS・住基カード対応 SCR3310/v2.0 【簡易パッケージ品】
- 出版社/メーカー: SCM Microsystems
- メディア: エレクトロニクス
- 購入: 25人 クリック: 176回
- この商品を含むブログ (1件) を見る
まずは必要なパッケージをインストール。カードリーダーをUSB接続し、スマートカードデーモンpcscdを起動します。
$ sudo dnf install openssl-devel readline-devel zlib-devel pcsc-lite pcsc-lite-devel pcsc-lite-ccid pcsc-tools
$ sudo systemctl start pcscd
開発中の個人番号カード対応版OpenSCをcloneしてきて、ビルド、インストールします。
$ git clone https://github.com/jpki/OpenSC.git
$ cd OpenSC
$ ./bootstrap
$ ./configure
$ make
$ sudo make install
ではカードをセットして、公開鍵を読み出しましょう。カードの裏表を間違えないように注意(ICチップの端子のある面が上)。間違ってると読めないというエラーになります。。
$ pkcs15-tool --read-ssh-key 1 Using reader with a card: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00 ssh-rsa *******...... User Authentication Certificate zsh: bus error sudo =pkcs15-tool --read-ssh-key 1
ってなんかバスエラーを起こしました。がとりあえず読めたから気にしない(何
これをコピペしてSSHサーバの ~/.ssh/authorized_keys に追加します。同一マシン(ローカルホスト)でもいいでしょう。
そうしておいて、ビルドしたOpenSCのPKCSモジュールを指定してSSHログインしてみると...
$ ssh 192.168.xx.yy -I /usr/local/lib/opensc-pkcs11.so Enter PIN for 'JPKI (User Authentication PIN)': **** ← 公的個人認証用の4桁のPIN番号 Last login: Fri Jun 24 00:37:23 2016 from 192.168.xx.zz $
無事ログインできました。
なおPIN番号は3回間違えると閉塞されてしまい役所で手続きが必要になるのでご注意を。。
(3種類ある4桁の暗証番号のうちの、利用者証明用電子証明書の(マイナポータルへのログイン、コンビニでの公的な証明書の交付などで使う)PIN番号です。)
他に
$ pkcs15-tool -c
で認証用証明書のシリアル番号などを確認したり、
$ pkcs15-tool -r 1
で認証用証明書の情報を読み出し、ファイルにコピペして(リダイレクトするとSEGVするせいで書き出されない…)
$ openssl x509 -text -noout -in <ファイル名>
などとすると有効期限や発行者の情報(自治体とか)が確認できます。認証用証明書の方にはマイナンバーはもちろん、住所や氏名などは入っていないことが確認できます。