En el "Código PIN de interacción del comando AT", se escribe que el comando AT se utiliza para ingresar el código PIN modificado. Aquí se describirá el funcionamiento del código PIN utilizando el método de interacción APDU directa.
Operación de código PIN
MANDO | Valor | Significado |
---|---|---|
VERIFICAR CHV | '20' | Verificar PIN |
CAMBIAR CHV | '24' | Modificar código PIN |
DESACTIVAR CHV | '26' | Desactiva la verificación de PIN |
HABILITAR CHV | '28' | Activa la verificación de PIN |
1. VERIFIQUE el PIN de verificación de CHV
Comando | CLA | EN S | P1 | P2 | P3 |
---|---|---|---|---|---|
VERIFICAR 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
(Equivalente al comando AT: AT + CPIN = 1234)
Consultar tiempos de entrada del código PIN
=>00 20 00 01 08
<=63 C3 //最后一个数据3代表PIN码还剩余3次可输入
Si ingresa el PIN incorrecto una vez, se reducirá en uno, de la siguiente manera:
=>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次
¿Qué sucede si ingreso este comando cuando la verificación del PIN no está activada?
=>00 20 00 01 08
<=20
=>31 32 33 34 FF FF FF FF
<=69 84 //引用的数据失效
2. CAMBIAR CHV modificar código PIN
Comando | CLA | EN S | P1 | P2 | P3 |
---|---|---|---|---|---|
CAMBIAR 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 //引用的数据失效
Si la entrada es incorrecta, el código PIN se reducirá en uno
=>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次
(Equivalente al comando AT: AT + CPWD = "SC", "1234", "4321")
3. DESACTIVAR CHV desactivar la verificación del código PIN
Comando | CLA | EN S | P1 | P2 | P3 |
---|---|---|---|---|---|
DESACTIVAR CHV | 00 | 26 | 00 | 01 | 08 |
=>00 26 00 01 08
<=26
=>31 32 33 34 FF FF FF FF //使用PIN码1234关闭PIN码验证
<=9000
(Equivalente al comando AT: AT + CLCK = "SC", 0, "1234")
4. ENABLE CHV abre la verificación del código PIN
Comando | CLA | EN S | P1 | P2 | P3 |
---|---|---|---|---|---|
HABILITAR CHV | 00 | 28 | 00 | 01 | 08 |
=>00 28 00 01 08
<=28
=>31 32 33 34 FF FF FF FF //使用PIN码1234打开PIN码验证
<=9000
(Equivalente al comando AT: AT + CLCK = "SC", 1, "1234")
5. Consulta del estado del PIN
En el comando AT, también hay un comando AT+CLCK="SC",2
para determinar si la función del código PIN se ha activado, entonces, ¿cómo usamos los datos APDU para juzgar si la función del código PIN está activada?
Hemos hablado sobre MF, DF o ADF FCP en "SIM Data Interaction-FCP", que tiene un campo (plantilla de estado PIN DO) C6, y el byte PS_DO puede determinar si la verificación del código PIN está activada. Función.
El contenido de FCP correspondiente a 3F00 cuando la función de verificación del código PIN no está activada:
=>80 F2 00 00 00
<=6C 2B
=>80 F2 00 00 2B
<=F2 62278202782183023F00A507800171C00200018A01058B032F0602C60C90016083010183018183010A 9000
Equivalente al comando AT:
AT+CLCK=\"SC\",2
AT+CLCK="SC",2
+CLCK: 0
OK
Contenido del FCP correspondiente a 3F00 cuando la función de verificación del código PIN está activada:
=>80 F2 00 00 00
<=6C 2B
=>80 F2 00 00 2B
<=F2 62278202782183023F00A507800171C00200018A01058B032F0602C60C9001E083010183018183010A 9000
Equivalente al comando AT:
AT+CLCK=\"SC\",2
AT+CLCK="SC",2
+CLCK: 1
OK
Al comparar los dos datos anteriores, se puede encontrar que cuando la función de verificación del código PIN está activada, el bit más alto del byte PS_DO se establecerá en 1.
Cuando activamos y no activamos la función de verificación del código PIN, y leemos el FCP del ADF o el FCP de otros DF, podemos encontrar que el bit más alto del byte PS_DO cambiará
Por lo tanto, para determinar si la función de verificación del código PIN está activada, solo necesita encontrar el bit más alto del byte PS_DO correspondiente a un FCP de un MF / DF / ADF.
Referencias: 3GPP, ISO7816, Enciclopedia Baidu, etc.