使用 gp 查看小程序的 Javacard 安全性

Javacard security for viewving applet with gp

我开发了一个小程序安装在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

感谢您的帮助

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

但是AID的一般SELECT无论如何也不能这样保护,因为这是由卡片运行时环境处理的,而不是小程序。 IE。有人可以通过 AID select 这个小程序,如果成功,他就知道这个小程序已安装。

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

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