
机顶盒智能卡方案.doc
9页机顶盒智能卡方案1技术背景简要说明1.1条件接收条件接收是指对播出的数字电视节目内容进行数字加扰以建立有效的收费体系,从而保 障节目提供商和电视台的利益条件接收技术主要有三大技术组成:加解扰技术,寻址技术 和加解密技术,简单的说来,加解扰技术是对节目信息数据流的加入随即的扰动信息,加解 密技术是对加解扰的扰动信息的加解密在发送端,用控制字对节目信息加扰,而控制字通 过加密的方式传输给接收端,在接收端,先解密得到控制字,再用控制字解扰得到原始节目 信息C1.2控制字CW在DVB系统中,控制字发生器生成控制字CW,再用CW生成一个伪随即序列,用此伪 随即序列来加扰TS流CW—般是每隔2・3S变化一次,通过加密的方式传送给接收端,接收 端解密还原得到CW后解扰节目信息流,因此有条件接收的核心就是对控制字传输的控制1.3授权控制信息ECM条件接收系统(CA)产生控制字CW后,用授权密钥SK加密得到授权控制信息ECM, ECM插入到TS流中传送给接收端1.4授权管理信息EMM对用八地址信息、授权信息、SK组合加密形成的授权管理信息EMMo EMM主要是用 来确定用户是否被授权收看节目c1.5加解扰、加解密在机卡分离的条件接收系统中,一般是机顶盒将EMM和ECM传给智能卡,智能卡通过 解密得到KS,用KS解密得到CW, CW传给机顶盒后,由机顶盒对节目做解扰工作。
因此解 扰工作由机顶盒完成,而解密操作由智能卡完成2智能卡安全性设计分析2.1芯片物理安全性1、 存储区域加密:芯片的内部的ROM及EEPROM都进行了地址扰乱和数据加密;2、 安全检测与防护单元,高低电压检测,防止频率攻击;3、 每个芯片具有一个唯一的芯片序列号4、 其他芯片特有安全机制,例如防止DPA/SPA攻击、布线优化、时钟脉冲加扰、总线 加扰等,不同的芯片有不同的安全级别所提供的ATMEL芯片具有EAL4+安全认 证2.2操作系统安全性1、 密钥文件为芯片操作系统(COS)内部管理文件,密钥文件存储口令和算法密钥, 只能在应用初始化时建立,不能删除,不能修改,只能添加密钥,添加密钥要有密 钥文件的添加权限,修改密钥由密钥自身的修改权限控制;2、 所有的密钥和口令都是加密存储的,16字节加密密钥(称之为K1)分八字节存储在 ROM中,八字节存储在EEPROM中,且密文数据与芯片序列号相关,因此相同的密 钥在不同的芯片上存储数据不一样;3、 能够建立只读、只写以及加密控制读写的文件;4、 对于支持非对称算法芯片,COS在上电后对EEPROM数据做RSA签名验证,只有通 过了签名验证的芯片才允许执行操作指令,芯片EEPROM数据的签名与芯片唯一序 列号相关,因此能够有效的防止克隆卡片。
5、 除了公钥(用于非对称算法),所有的密钥是不可以读出的3生产流程安全性分析工厂生产采用授权KEY操作方式,EEPROM中的密钥(K1)通过授权KEY生成,每个卡片的K1都是不一样的对EEPROM数据签名的RSA私钥存储在授权KEY中,RSA的签名操作在授权KEY 中完成,从而保证签名的有效性和保密性4安全性总结支持非对称算法的芯片能够有效防止克隆卡的出现,即使攻击者能够获得ROM和 EEPROM中的所有数据,也不能获得可用的卡片,因为卡片的序列号是唯一的,而且 签名的私钥没有出现在ROM和EEPROM中5操作流程简要介绍5.1上电复位芯片上电后,cos首先会检查签名数据的有效性,如果签名检查失败,拒绝后续所 有操作指令5.2双向认证为了保证对IC卡操作的可靠性,防止第三方读写IC的内容,在对IC卡操作前对操作 方进行验证,验证方法分为两个过程:一、协商通信密钥采用随机数+私有算法协商终端和IC卡都保留一个根密钥,该密钥在卡发行前写入,不可更改,对外不可读;(说明:如果该密钥由IC卡厂商提供,则厂商应该提供一条命令,在IC卡发行前,更改 该密钥)终端和IC卡各产生一个随机数,并互相交换随机数,每个随机数为32字节;终端和IC卡把双方产生的的随机数和根密钥作为输入,采用私有算法,产生相同的 密钥 SessionKey;说明:私有算法如下:双方的随机数先进行异或(终端生成的随机数XOR IC卡生 成的随机数),得到…个32字节的数据,然后使用通信根密钥对该数据进行3DES运算, 得到一个32字节的加密结果。
把这个32字节的加密结果分为4个部分,最高的8字节为Parti,次高的8字节为Part2,第3个8字节为Part3,最后8字节为Part4,然后Parti和Pail3 相连接(Parti||Part3),得到一个16字节的数据,该数据就是SessionKeya Part2和Part4 相连接(Part2||Part4),得到另外一个16字节的数据,用来做MAC的Ke*二、验证通信密钥的合法性定义两个操作实体:IC卡和终端IC卡对终端的验证终端向IC卡发送获得随机数的命令;IC卡产生一个随机数(40字节);IC卡把该随机数明文发送给终端;终端使用SessionKey对该随机数的前32字节进行加密,得到密文Data,然后再产生 一•个8字节的随机数Rand,把密文和随机数相连接,得到Data||Rand,共40字节;把上述40字节作为数据发送给IC卡进行验证;IC卡解密该密文的前32字节,得到随机数,与自身产生的随机数的前32字节进行比 较,如果一致,则说明IC卡对终端的验证通过,返回OK,否则,返回验证失败验证的次数最多有3次,如果3次验证都失败,IC卡处在假锁定状态,只有重新上电 后,才能继续进行验证工作。
所谓的假锁定,指不用到特定地方完成解锁功能,重新复 位IC卡即可继续使用2、终端对IC卡的验证(1) 终端生成一个随机数40字节2) 终端把该数据明文发送给IC卡3) IC接收到该数据,用协商的密钥加密前32字节,并再创建一个8字节的随机数 放在密文后面,密文+随机数返回终端4) 终端对密文(数据的前32字节)解密后,把结果与本身的随机数前32字节进 行比较如果一致,则说明终端对IC卡的验证通过,终端可以继续工作,否则,终端拒 绝工作并重新产生一个随机数,再次尝试验证5) 验证的次数最多有3次,如果3次验证都失败,终端处在假锁定状态并告警, 只有重新上电后,才能继续进行验证工作所谓的假锁定,指不用到特定地方完成解锁 功能,重新复位终端即可继续使用IC卡每次上电都需要完成密钥协商和验证的过程,在密钥协商过程中,IC不理睬任 何其它的操作密钥认证报文需要MAC进行完整性确认5.3加解密指令在双向认证成功后,读卡设备能够通过发送指令耍求卡片做相应的加解密操作,在 指令中可以指定算法类型(DES/3DES、RSA等),也可以指定所需要的密钥5.4密文修改指令在双向认证成功后,读卡设备能够通过发送指令要求卡片修改文件中的相应数据, 所有操作都是在密文状态下进行。
6指令描述6.1 GENERATE SESSION KEY命令说明:产生SessionKey,命令具体过程如下:1 终端发送该命令,命令中有一个参 数是32字节的随机数,IC卡收到该命令后,也产生一个32字节的随机数,按照IC卡需求规 则产生SessionKey,并把自己产生的随机数返回终端1、命令格式:SessionKey产生指令格式CLA INS Pl P2 Lc Data Le80h70h()()h00h20hData20h其中Data是终端产生的随机数,32字节 这条命令不需要加密数据,不需要计算MAC2、响应格式:ResponseSW1SW2其中:Response为IC卡产生的随机数,32字节SW1和SW2的定义参见ISO 7816-4 标准关于状态字节的定义应答报文也不对Response加密,不计算MAC由于在T=0的情况下,第4种APDU格式无法在应答报文中返回数据,故需要添加一条 新命令Get Response获得数瘠上述的响应数据•是通过Get Response获得的数据,在该命 令的第一次响应中,只包含SW1和SW2,表明报文是否处理成功,这个应答报文也不用加 密第一次的响应为0x61 XX,主机根据XX通过Get Response指令得到数据6.2 INTERNAL AUTHENTICATE命令说明:该命令用于终端对IC卡的认证,终端产生--个40字节的随机数明文发送到IC卡, IC取前32个字节用SessionKey进行一次3DES加密后,密文后面再补充一个8字节的随机 数,构成40字节的验证字信息,然后再计算MAC后,发送回终端。
1、命令格式:内部认证指令格式CLA INS Pl P2 Lc Data Le80h88h()()hOOh2ChData2Ch其中:Lc一一40字节的随机数+4字节的MAC, Le不参加MAC计算其中Data是终端产生的40字节的随机数+4字节的MAC,明文数据(随机数)是40字节, 这个数据是不加密的2、响应格式:ResponseSW1SW2其中:Response,密文的验证字(生成方式见本节说明)+4字节的MACSW1和SW2 的定义参见ISO 7816-4标准关于状态字节的定义由于同样的原因,该应答需要使用Get Response命令获得,应答中的数据-需要加密,并计算MAC第一次的响应为0x61 XX,主机根据XX通过Get Response指令得到数据6. 3 GET CHALLENGE命令说明:从ic卡中获得一个随机数,用于外部认证,该命令调用后必须调用外部认证命令, 该命令产生的随机数将保存在ic卡中,供外部认证使用仁命令格式:获得ic卡随机数的指令格式CLA INS Pl P2 Le00h84hOOhOOh28h说明:该报文不加密,不计算MAC,使用标准的指令2、响应格式:ResponseSW1SW2其中:Response, IC卡产生的40字节的随机数+4字节的MAC。
SW1和SW2的定义参 见ISO 7816-4标准关于状态字节的定义报文的应答数据是40个字节的随机数,不加密, 但需要计算MAC6.4 EXTERNAL AUTHENTICATE命令说明:该命令用于IC卡对终端的认证,以确定终端对IC卡操作的合法性IC小加一个计 数器来保护不被攻击,初值为33次失败后,不响应任何命令,只有重新复位后,才可以再 进行认证过程外部验证的过程同内部验证注:在使用该命令前,必须终端调用Get Challenge命令获得IC的随机数1、命令格式:外部认证的指令格式CLA INS Pl P2 Lc Data80h82hOOhOOh2ChData其中:Lc = 40字节的数据+4字节的MACData是根据IC卡捉供的随机数加密后的密文+ MAC, 44字节,根据IC卡提供的40字节的数据,终端使用3DES完成加密,加密结果冋送IC卡,IC卡对自己的随机数前32字节也使用3DES加密,加密结果与报文比较,如果一致,则认为IC卡对SessionKey的验证通过2、响应格式:SW1SW2其中:SW1和SW2的定义参见ISO 7816-4标准关于状态字节的定义结果不需要计算MAC,认证成功返回0x9000,其他值都认为认证不成功。
6.5扩展指令说明:用指定的密钥对数据做加密和解密运算或。
