14-SIMデータインタラクション-PIN

「ATコマンドインタラクション-PINコード」には、修正PINコードの入力にATコマンドを使用する旨が記載されており、ここでは、ダイレクトAPDUインタラクション方式によるPINコードの動作について説明する。

PINコード操作

コマンド 価値 意味
CHVを確認する 「20」 PINを確認
CHVを変更する 「24」 PINコードを変更
CHVを無効にする 「26」 PINの確認をオフにする
CHVを有効にする 「28」 PIN確認をオンにする
1. CHV確認PINを確認する
コマンド CLA INS P1 P2 P3
CHVを確認する 00 20 00 CHV NO。 08
=>00 20 00 01 08
<=20
=>31 32 33 34 FF FF FF FF  //默认PIN码1234
<=90 00

(ATコマンドと同等:AT + CPIN = 1234)

PINコード入力時間のクエリ

=>00 20 00 01 08
<=63 C3  //最后一个数据3代表PIN码还剩余3次可输入

一度間違ったPINを入力すると、次のように1つ減ります。

=>00 20 00 01 08
<=63 C3        //剩余3次
=>00 20 00 01 08
<=20
=>32 32 33 34 FF FF FF FF  //PIN码输入错误2234
<=63 C2       //剩余2次
=>00 20 00 01 08
<=63 C2       //剩余2次

PIN確認がオンになっていないときにこのコマンドを入力するとどうなりますか

=>00 20 00 01 08
<=20
=>31 32 33 34 FF FF FF FF
<=69 84  //引用的数据失效
2. CHVの変更PINコードの変更
コマンド CLA INS P1 P2 P3
CHVを変更する 00 24 00 CHV NO。 10
=>00 24 00 01 10
<=24
=>31 32 33 34 FF FF FF FF 34 33 32 31 FF FF FF FF //默认PIN码1234,修改成4321
<=9000 //引用的数据失效

入力が間違っている場合、PINコードは1つ減ります

=>00 20 00 01 08
<=63 C3        //剩余3次
=>00 24 00 01 10
<=24
=>31 32 33 34 FF FF FF FF 34 33 32 31 FF FF FF FF //上面修改一次后PIN码已经变成4321了,此时再用1234去修改PIN则会出错
<=63 C2       //剩余2次
=>00 20 00 01 08
<=63 C2       //剩余2次

(ATコマンドと同等:AT + CPWD = "SC"、 "1234"、 "4321")

3. CHVを無効にするPINコード検証を無効にする
コマンド CLA INS P1 P2 P3
CHVを無効にする 00 26日 00 01 08
=>00 26 00 01 08
<=26
=>31 32 33 34 FF FF FF FF //使用PIN码1234关闭PIN码验证
<=9000

(ATコマンドと同等:AT + CLCK = "SC"、0、 "1234")

4. CHVを有効にすると、PINコードの検証が開始されます
コマンド CLA INS P1 P2 P3
CHVを有効にする 00 28 00 01 08
=>00 28 00 01 08
<=28
=>31 32 33 34 FF FF FF FF //使用PIN码1234打开PIN码验证
<=9000

(ATコマンドと同等:AT + CLCK = "SC"、1、 "1234")

5. PINステータスクエリ

ATコマンドにはAT+CLCK="SC",2、PINコード機能がオンになっているかどうかを判別するコマンドもありますが、APDUデータを使用して、PINコード機能がオンになっているかどうかをどのように判断しますか?

MF、DF、またはADF FCPについては、フィールド(PINステータステンプレートDO)C6を含む「SIM Data Interaction-FCP」で説明しました。その中のPS_DOバイトは、PINコード検証がオンになっているかどうかを判断できます機能。

PINコード検証機能がONになっていない場合の3F00に対応するFCPの内容:

=>80 F2 00 00 00
<=6C 2B
=>80 F2 00 00 2B
<=F2 62278202782183023F00A507800171C00200018A01058B032F0602C60C90016083010183018183010A 9000

ATコマンドと同等:

AT+CLCK=\"SC\",2
AT+CLCK="SC",2
+CLCK: 0

OK

PINコード検証機能をONにした場合の3F00に対応するFCPの内容:

=>80 F2 00 00 00
<=6C 2B
=>80 F2 00 00 2B
<=F2 62278202782183023F00A507800171C00200018A01058B032F0602C60C9001E083010183018183010A 9000

ATコマンドと同等:

AT+CLCK=\"SC\",2
AT+CLCK="SC",2
+CLCK: 1

OK

上記の2つのデータを比較すると、PINコード検証機能をオンにすると、PS_DOバイトの最上位ビットが1に設定されることがわかります。

PINコード検証機能をオンにしてオンにしないで、ADFのFCPまたは他のDFのFCPを読み取ると、PS_DOバイトの最上位ビットが変化することがわかります

したがって、PINコード検証機能が有効かどうかを判断するには、MF / DF / ADFのFCPに対応するPS_DOバイトの最上位ビットを見つけるだけで済みます。

参照:3GPP、ISO7816、Baidu Encyclopediaなど

元の記事を106件公開 賞賛された76件 130,000回の訪問+

おすすめ

転載: blog.csdn.net/Creator_Ly/article/details/85050458