Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android NFC/SWP接入SIM卡的UID_Android_Nfc_Smartcard_Sim Card - Fatal编程技术网

Android NFC/SWP接入SIM卡的UID

Android NFC/SWP接入SIM卡的UID,android,nfc,smartcard,sim-card,Android,Nfc,Smartcard,Sim Card,SIM卡在我的项目中用作安全元素。从终端设备通过NFC-SWP非接触式接口访问 我需要用一个唯一的永久标识符来识别SIM卡,并且我需要能够通过NFC读取该标识符。ICCID似乎是最好的选择,但我必须通过非接触式接口公开EF ICCID文件,这可能很危险。此外,EF ICCID文件不在我的SIM卡范围内——我只有访问我的专用安全域 我还尝试使用ISO/IEC 14443 Type A中指定的4字节长的UID,但每次通过NFC读取SIM卡时,我都会得到不同的UID。为什么? 另一个解决方案是通过Gl

SIM卡在我的项目中用作安全元素。从终端设备通过NFC-SWP非接触式接口访问

我需要用一个唯一的永久标识符来识别SIM卡,并且我需要能够通过NFC读取该标识符。ICCID似乎是最好的选择,但我必须通过非接触式接口公开EF ICCID文件,这可能很危险。此外,EF ICCID文件不在我的SIM卡范围内——我只有访问我的专用安全域

我还尝试使用ISO/IEC 14443 Type A中指定的4字节长的UID,但每次通过NFC读取SIM卡时,我都会得到不同的UID。为什么?

另一个解决方案是通过Global Platform Get Data命令(卡生产生命周期数据(CPLC))访问卡序列号,但我必须能够通过非接触式接口选择卡管理器,这在默认情况下是禁止的,出于安全考虑,不推荐使用

是否有解决此问题的典型方法?

允许A型的4字节UID(与B型的PUPI相同)是随机的(ISO 14443-3,第6.4.4章“固定唯一数或随机数”)。它们的目的只是从读卡器当前的几个卡中选择一个。因此,UID的说明在防冲突章节中


获取卡的序列号当然是解决方案,但由于这允许在隐私意识环境中跟踪卡(我不知道,这是谁,但她10分钟前已经在场),因此通常只有在某种身份验证(可能建立安全通道,因此窃听者不会受益)后才允许。有关如何处理这一问题的想法,请参阅BAC或EAC下的国际民航组织规范。如果不能在卡上放置特定信息,我不希望为卡找到隐私意识解决方案。

每次通过NFC读取SIM卡时,我都会收到不同的UID。为什么?我认为Bodewes先生的asnwer中的最后三条评论对你有帮助。同样,如前所述,UID通常有16个字节的长度。@Abraham:你说的是卡序列号,而不是A型的14443 UID,可能有4、7或10个字节长。啊,对不起,你说得对。我刚刚检查了14443-3,我在表9下看到了这一行:UID是一个固定的唯一数字,或者是由PICC动态生成的随机数。UID的第一个字节(uid0)分配UID的以下字节的内容。是否有任何东西阻止您在小程序/应用程序中发布个性化的特定于应用程序的唯一标识符?