【问题标题】:Javacard security for viewving applet with gp使用 gp 查看小程序的 Javacard 安全性
【发布时间】:2020-09-19 13:06:41
【问题描述】:

我开发了一个安装在 J2A040 卡上的小程序,然后是一个客户端程序,它工作正常,但我想知道,如果有人拿了这张卡并使用命令 gp -l ,他可以看到小程序 AID ,可以禁止吗? 该人还可以键入命令 00 A4 04 00 00?能禁止这个命令吗?

public void process(APDU apdu) {
                
        byte[] buffer = apdu.getBuffer();
        // check SELECT APDU command
       
        buffer[ISO7816.OFFSET_CLA]=(byte)(buffer[ISO7816.OFFSET_CLA]&(byte)0xFC); 
        
          if((buffer[ISO7816.OFFSET_CLA]==0)&& 
            (buffer[ISO7816.OFFSET_INS]==(byte)(0xA4))) return; 
        
       /* if (apdu.isISOInterindustryCLA()) {
            if (buffer[ISO7816.OFFSET_INS] == (byte)(0xA4)) {
                return;
            } else {
                ISOException.throwIt (ISO7816.SW_CLA_NOT_SUPPORTED);
            }
        }*/
      
        if (buffer[ISO7816.OFFSET_CLA] != Wallet_CLA)
            ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
       
        switch (buffer[ISO7816.OFFSET_INS]) {
            case GET_BALANCE:
                getBalance(apdu);
                return;
            case RESET_BALANCE:
                resetBalance(apdu);
                return;
                
            case DEBIT:
                debit(apdu);
                return;
            case CREDIT:
                credit(apdu);
                return;
            case VERIFY:
                verify(apdu);
                return;
            case CHANGE:
                change(apdu);
                return;
            case VIEW_DATA:
                viewdata(apdu);
            case GET_CARD_STATUS:
                processGetCardStatus(apdu);
                return;
            case SET_ATR_HISTORY:
                processSetHistoryBytes(apdu);               
                return;
            default:
            ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
        }
         
    }   // end of process method

感谢您的帮助

【问题讨论】:

    标签: security applet javacard apdu globalplatform


    【解决方案1】:

    据我所知,GlobalPlatform 规范中没有官方方法可以隐藏小程序。但只有拥有安全域密钥集的密钥的人才能执行此命令,因为 GET STATUS 命令无法在安全通道之外访问。

    但无论如何,AID 的一般 SELECT 无法以这种方式保护,因为这是由卡运行时环境而不是小程序处理的。 IE。有人可以通过 AID 选择这个小程序,如果成功,他就知道这个小程序已经安装了。

    如果您想禁止访问00 A4 04 00 00 SELECT,则必须强制执行一些身份验证,尽管我不知道隐藏 SELECT 命令的原因。

    隐藏小程序的用例是什么?

    【讨论】:

    • 只是想知道有人知道小程序的AID是否严重,只是出于好奇。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多