Introduction

マイナンバーの読み取りに対応した非接触 IC カードリーダー/ライター RC-S300 を入手したので遊んでみた。
が、どうやっても、マイナンバーカードの読み取りに失敗する。
交通系 IC カードは読み取りに成功する。
また、マイナンバーカードを iPhone のマイナポータルから読み取りをしても問題ない。
つまり

  • マイナンバーカードは故障していない
  • カードリーダーの読み取りに問題はない

という状況。

なぜぇ?

What happend?

ぐぐったところ、カードリーダーが繋がっているマシンに対して、リモートデスクトップで接続するとマイナンバーカードが読み取れないという事象があるとのこと。

確かに、自身の遭遇した事象と同じ。
リモートデスクトップを介さず、目の前の端末にカードリーダーをつなぎ、マイナンバーカードを近づけると…何の問題もなく認識。

wrong

リモートデスクトップで接続した先で認識させた場合

correct

直接認識させた場合

Sony のツールが悪いのではなく、Certutil でも認識していないことがわかる。

1
2
3
4
5
$ certutil -scinfo
Microsoft スマート カード リソース マネージャーが実行されていません。
WaitForSingleObject: サービスは不明な状態です。
CertUtil: -SCInfo コマンド エラーです: 0x80070102 (WIN32/HTTP: 258 WAIT_TIMEOUT)
CertUtil: 待ち操作がタイムアウトになりました。

エラーの文言が気になるが、正常な状態ではないことは確か。

How to resolve?

発想を変えて、リモートデスクトップの接続元にカードリーダーをつなぎ、リモートデスクトップのオプションでスマートカードを有効にして、接続先でカードリーダーを認識させればいい。

rdp

接続後、certutil で確認。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ certutil -scinfo
Microsoft スマート カード リソース マネージャーが実行しています。
読み取り装置またはカードの現在の状態:
読み取り装置: 1
0: SONY FeliCa Port/PaSoRi 4.0 0
--- 読み取り装置: SONY FeliCa Port/PaSoRi 4.0 0
--- 状態: SCARD_STATE_PRESENT | SCARD_STATE_UNPOWERED
--- 状態: カードは利用できます。
--- カード:
--- ATR:
3b 88 80 01 00 4b 51 ff 00 81 d1 00 bc ;....KQ......


=======================================================
読み取り装置のカードを分析しています: SONY FeliCa Port/PaSoRi 4.0 0
SCardGetCardTypeProviderName: 指定されたファイルが見つかりません。 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)
のプロバイダー名を取得できませんSCardGetCardTypeProviderName: 指定されたファイルが見つかりません。 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)
のプロバイダー名を取得できません
--------------===========================--------------
CertUtil: -SCInfo コマンド エラーです: 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)
CertUtil: 指定されたファイルが見つかりません。

マイナポータルのログインも問題なし。

login

ただし、Sony のツールだと、今度はデバイスそのものが認識しない。

nodevice

とはいえ、最低限の目的は果たせるの問題なし。