IC カード(スマートカード)を用いたログインについて
こんにちは、プラットフォームサポートです。
今回は、IC カード (スマートカード) を用いたログインについてお知らせいたします。
IC カードを用いてインターネット サイトへのログインや、コンピュータへのログインを行う際、その IC カードの PIN コード (Personal Identification Number: 個人識別番号) を入力し、ログインを行う場合があります。このログインでは、IC カードの紛失や盗難等、不正な IC カードの利用に備え、PIN コード入力の誤りが一定回数以上発生しますと、一時的に IC カードの利用を停止させるようロックする機能が同時に組み込まれていることが一般的です。
ただし、通常の利用では問題は発生いたしませんが、PIN コードを入力する際に改行キー (Enterキー) が押下され続けたり、連続的に入力した場合には、PIN コードの入力が連続的に実行されたと判断され、PIN コード入力の誤りが一定回数以上発生した時と同様に、IC カードのロックやログインエラーに至る場合があります。
技術的な詳細につきましては、下記にてご説明申し上げますが、PIN コード入力時のキー連続押下などにつきましては、想定していない入力であるためご注意ください。
現象の説明
SSL 認証 (注釈 1) 時など、Microsoft Base Smart Card Cryptographic Service Provider (以下 BaseCSP (注釈 2)) が表示するスマートカードの PIN 認証テキスト ボックスにおいてキーを連続押下した場合、当該キーから手を放した場合でも、キーを長押ししていた秒数に応じて Enter キーを押下した動作が繰り返し処理される現象を確認しております。
これは、OS およびハードウェアの実装による、キー入力のバッファリング機能 (注釈 3) によって発生する事象です。そのため、Enter キーが連続して押下される状態となった場合には PIN 認証が連続的に実施されることとなり最終的にロックに至る場合があります。
この現象は Windows 7、8.1、10 で発生することを認識しております。
当該動作の解説
Enter キーを離した後も空の PIN 入力が継続する動作は、OS 及びハードウェアの入力バッファリングによるものです。OS やハードウェアではキー入力をバッファリングしシステムが高負荷状態でもユーザーの入力が失われないようにする仕様です。
現象の回避方法
PIN 入力時にはキーを長押し (連続押下) しないようご注意ください。PIN 入力において連続押下は想定されていない動作であるため、本機能に関する OS および BaseCSP の変更などは予定されておりません。なお、スマートカード ミニドライバー (注釈 3) の開発に関する情報は、以下のとりまとめがございますので、ご参照いただければ幸いです。
Smart Card Reader Devices Reference
https://msdn.microsoft.com/en-us/library/windows/hardware/ff549006(v=vs.85).aspx
BaseCSP を用いたミニドライバー開発におきましては、多様な PIN 入力状況を検討しなければならない場合がございます。想定外の入力や対応につきましては、カスタマイズが必要な場面が発生し得ます。それぞれの状況に合わせた形でのカスタマイズが必要などございましたら、弊社サポート サービスへ是非ご相談いただければ幸いです。
(注釈 1)
SSL とは、Secure Socket Layer の略で,暗号化された安全な通信を提供するための仕組みです。SSL 認証とは、その機能を利用するために必要となる認証を指します。
(注釈 2)
Microsoft Base Smart Card Cryptographic Service Provider、BaseCSP とは、SSL 認証などで利用される、暗号機能等を提供する Windows の機能です。
(注釈 3)
バッファリングとは、OS や ソフトウェアの間でデータをやり取りするときに、それぞれの処理速度や転送速度の差を補うために、データを専用に設けられた記憶領域に一時的に保存し、速度差によってデータが欠落しないようにする仕組みです。
(注釈 4)
スマートカード ミニドライバーとは、BaseCSP の暗号機能などで必要となる電子証明書情報や鍵情報を、IC カードから読み出したりするためのプログラムで Microsoft 社 が規定した仕様に合わせ、各 IC カード ベンダーが提供するものです。