基于TrustZone技术的DCAS终端设计*

2016-09-08 10:31郝勇钢李汪蔚韦安明上海交通大学信息安全工程学院上海0040国家新闻出版广电总局广播电视规划院北京00045
信息安全与通信保密 2016年2期
关键词:公钥解密密钥

郝勇钢, 李汪蔚, 韦安明, 肖 辉, 黄 征, 郭 捷(上海交通大学信息安全工程学院,上海0040;国家新闻出版广电总局广播电视规划院,北京00045)

基于TrustZone技术的DCAS终端设计*

郝勇钢1, 李汪蔚2, 韦安明2, 肖 辉2, 黄 征1, 郭 捷1
(1上海交通大学信息安全工程学院,上海200240;2国家新闻出版广电总局广播电视规划院,北京100045)

传统的条件接收系统(CA)的终端认证依赖硬件,当CA终端需要更换系统或者增加新的服务的时候,就必须更换硬件,这需要巨大的资源消耗。可下载的条件接收系统(DCAS)是一种在开放环境的认证授权体系,CA算法和密钥可以动态下载,使得软硬件分离,DCAS终端可以适配不同的DCAS系统,降低了CA的私有性也解除了相应的潜在风险。DCAS终端为DCAS系统的客户端,它可以在不改变硬件的条件下通过下载CA应用来更新自身的CA系统。ARM TrustZone技术是ARM架构的安全扩展,本文提出了基于TrustZone技术的DCAS终端设计,介绍了系统的硬件软件结构,分析了其安全认证机制和安全启动流程,综合给出了一个DCAS终端设计方案。

DCAS终端;可下载条件接收系统;TrustZone

[Abstract]Terminal authentication of traditional CA(Access System)relies on hardware,and when CA terminal tries to replace a system or add new services,the hardware must be replaced,this would result in requires huge consumption of resources.DCAS (Downloadable Conditional Access System)is a kind of authorization system in open environment,in which CA algorithm and the key could be dynamically download,and the software be from the separated hardware,so that DCAS terminal could be adaptable to different DCAS system,thus reducing the private property of CA and relieving the potential risks.DCAS terminal,as the client of DCAS system,it could download the CA application and update the CA system itself without any change of the hardware.ARM TrustZone technology is the security extension of ARM architecture.This paper describes,the design of DCAS terminal based on TrustZone technology,including,the design of hardware and software structure,discusses,its secure authentication mechanisms and secure boot process,and gives a comprehensive design scheme of DCAS terminal is also given.

[Key words]DCAS terminal;downloadable conditional access system;Trust Zone

0 引言

传统的CA系统的终端认证依赖硬件(智能卡),当CA终端需要更换系统或者增加新的服务的时候,就必须更换硬件。

DCAS是一种在双向环境下的认证授权体系,CA算法和密钥可以动态下载。该技术不需要智能卡,不但能实现机顶盒的市场化销售,而且还可以方便电视机厂家规模化生产可直接接收广电加密数字电视信号的一体机。DCAS可以应用在PC机及高性能智能终端上的新一代电视加密,也可以在互联网环境下安全运行,保障广播电视信息安全,有益于促进三网合一[1-3]。

DCAS终端为DCAS系统的客户端,它可以在不改变硬件的条件下通过下载CA应用来更新自身的CA系统而不需要更换硬件。

DCAS的系统架构如图1所示。DCAS系统由系统前端(Headend)和用户终端(User Terminal)组成。系统前端包含以下几种服务器:认证代理(Authentication Proxy,AP),集成定制服务器(Integrated Personalized Server,IPS),下载策略服务器(Download Policy Server,DPS)和本地密钥服务器(Local Key Server,LKS)。DCAS前端支持DCAS协议,并借此与用户终端通信来认证终端内部的安全微模块(Secure Microchip,SM),或者把CA客户端软件下载到安全微模块中。

AP依靠DCAS网络协议与SM进行双向认证。AP也控制和监控前端和终端的整个交互过程,包括终端下载CA客户端。IPS储存着与用户终端和CA客户端软件相关的信息,并且作为一个CA客户端的下载服务器。DPS通过调整AP的认证信息来使DCAS网络效率更高。LKS拥有DCAS前端其他服务器所有的密钥信息和用户终端的认证历史。当服务器恢复失败,LKS分发恢复密钥给其他服务器。DCAS的前端服务器也会与可信认证服务器(Trusted Authority,TA)进行通信。TA向前端和终端分发会话密钥。

这里说的终端不仅仅是通过下载CA客户端软件实现CA的认证,也包括接收信号和解码信号的作用。当一个DCAS用户终端连接进入网络的时候,终端会周期性的接收到DCAS前端中的AP发出的消息。之后,用户终端开始利用消息中的信息与AP通信。两者通过TA来共享会话密钥。前端终端相互认证之后可以,终端可以安全地下载CA客户端软件。

图1 DCAS的系统架构[4]

1 基于TrustZone的DCAS终端设计

1.1 TrustZone简介

ARM TrustZone技术是ARM架构的安全扩展,在ARMv6以及以后版本的架构中引入了安全区域(Secure)和非安全区域(普通区域)(Non Secure)的概念,并加入了安全监视器(Secure Monitor)在安全区域和非安全区域之间切换,其架构图如图2所示。

图2 TurstZone架构[5]

1.2 硬件和软件结构

DCAS终端设备的硬件设计要点如下:

1)为了满足低成本的设计原则和使用TrustZone安全技术,DCAS终端采用ARM结构的处理器。DCAS终端设备中采用一个ARM Cortext-A9处理器。

2)总线结构采用支持 TrustZone技术的 AMBA3 AXI High Performance Bus Matrix。

系统使用on-SoC Secure Boot ROM来存储系统加电后的安全启动代码的代码,保证代码存储的安全性。

4)使用 OTP Fuse来存储运营商和设备制造商公钥的SHA256值。系统使用运营商和制造商公钥的时候要计算SHA256,计算结果和OTP存储的值进行比较验证,以保证运营商和制造商公钥的完整性。

5)DCAS终端和运营商核心网之间需要建立IPsec的连接,为了提高系统的响应速度,系统采用了专门的on-SoC IPSEC加速硬件,其中包含多种密码学算法的硬件加速器。STB的私钥由IPSEC硬件产生,并且存储在IPSEC加速硬件中。

6)在系统的开发和调试阶段,系统保留了JTAG接口。STB进入市场以后,JTAG接口不再保留。

7)中断控制器使用支持TrustZone的PrimeCell Generic Interrupt Controller。

8)安全相关的计算需要在SoC中进行。

9)STB提供有线以太网接口。

10)Access Chip1为Wi-Fi接口。Wi-Fi芯片通过SDIO与SoC连接。

11)Access Chip2为广播网络接口。

基于TrustZone的DCAS终端整体的硬件架构如图3所示。

图3 DCAS终端硬件架构

DCAS终端的Normal World运行一个操作系统,Secure World也运行一个操作系统,两个操作系统之间通过Monitor进行切换。Normal World中运行的应用程序如果需要用到安全相关的操作,通过Security Client调用TrustZone Driver将调用的接口和参数传到Secure World,并且通过Monitor切换到Secure World。Secure World系统中的Security Service响应用户的调用请求,并返回结果。安全相关的计算始终在Secure World中完成,需要保密的数据(会话密钥和设备的私钥)和需要认证的数据(运营商的公钥和设备制造商的公钥)始终在Secure World中,也始终在SoC中,从而保证保密数据的隐私,保证须认证数据的不可篡改性。DCAS终端的软件架构如图4所示。

据了解,借助领先的技术和产品,目前,盖瑞特正在与几乎所有的主流汽车和发动机企业合作,包括大众、标致、日产、福特等国际厂商,也包括上汽通用五菱、吉利、长安、上汽、潍柴、玉柴和锡柴等中国品牌的厂商,为他们配套前装零部件和软件解决方案。在赛车和改装车社群中,长久以来,盖瑞特已经书写涡轮增压的传奇。此外,盖瑞特还为全球独立售后市场提供零部件,满足各类终端客户的需求。

最简单的切换形式是:当普通世界的用户模式需要获取安全世界的服务时,首先需要进入到普通世界的特权模式,在该模式下调用SMC,处理器将进入到monitor模式,monitor模式备份普通世界的上下文,然后进入到安全世界的特权模式,此时的运行环境是安全世界的执行环境,此后进入到安全世界的用户模式,执行相应的安全服务。这里把安全世界的用户模式和特权模式分离,是因为通常特权模式中的执行环境是系统级别的,而用户模式的安全服务是应用级别的,两者的提供者通常是不同的。也就是说,安全世界的执行环境要管理用户模式的服务和应用,并给它们提供编程接口[6]。

图4 DCAS终端软件架构[5]

2 安全认证机制

2.1 使用DCAS协议

基于TrustZone的STB可以通过DCAS协议与前端进行认证,并获取解扰所需信息[7-9]。DCAS客户端和解扰算法都可以在Secure World中用软件方式实现。具体描述如下:在开放的媒体安全环境下,利用“层级密钥”分发解扰密钥,利用“质询-响应”机制可以判断消息到达情况。

“层级密钥”机制主要应用在开放的媒体安全环境中保护和传递解扰密钥。“层级密钥”机制的基础是三层密钥结构和质询-响应机制,其中根密钥输入时,根密钥进入日标设备的OTP中(芯片组中的一次性内存,不可复制)。三层密钥结构是用来传递和产生解扰密钥的,而响应-质询机制是用来保证日标设备的认证和判断消息是否到达日标设备。

“层级密钥”机制旨在保证源设备和日标设备完整性、安全性的前提下,可以动态的替换两者中的部分信息。这样的机制保证了日标设备的可移植性:它可以允许日标设备在并没有源设备安全信息的情况下进行升级系统;同样的它也增强了源设备在无须更改日标设备信息的情况下进行升级的能力。

根密钥派生函数针对不同的Vendor_ID值产生不同的密钥组,使得不同的CA系统可以同时安全并行的使用此系统;同样的不同的Module_ID也可以产生不同的密钥。

涉及认证的核心过程名词和符号解释:

1)Chip ID(Chip-ID):设备芯片组的8字节的全球唯一识别码,由此可以得到生产商和型号。

2)SCK(secret chipset key):芯片组的私密密钥,唯一,至少16字节。SCK存储于SM芯片中,由提供安全芯片的CA厂商生成,终端设备出厂时预置SCK于SM芯片中。SCK也可以由可信第三方的密钥管理机构(如数字证书管理机构CA)产生,可信第三方密钥管理机构调用CA厂商提供的接口将SCK预置到SM芯片。

4)ESCK(ESCK):“混淆私密密钥”在OTP中物理存储,与SCK同等长度,在生产过后不可编辑和读取。

5)Secret Mask Key:由厂商创造并物理存储在芯片中的一个嵌入的秘密值,至少16字节。这个值对于不同组件版本来说可能是一样的。

6)Key Ladder Root Key or Root Key(K3):16字节密钥在层级密钥底层用来加密K2。如果在芯片组中有n层的层级密钥加密,根密钥就是Kn。

7)Control Word(CW):用来加扰视频的密钥,字节长度由加扰算法决定(8或16字节)。

8)Open Media Security(OMS):使用层级密钥的系统。

9)OMS Key 1(K1):用来解密CW的16字节密钥。

10)OMS Key 2(K2):用来解密K1的16字节密钥。

11)Authentication key(A):由K2派生出来,在质询响应机制中使用的16字节密钥。A可以用来在质询响应中认证日标设备,或者由日标设备通过派生密钥认证源设备。

12)Vendor_ID:用来认证CA卖家、MSO和其他使用OMS的芯片组,大小由文档决定。

13)Module_ID:用来产生与K3有关的额外加密的8比特值。

14)PID(Packet ID):在MPEG-2传输流中代表一个基础组件。

15)Ek(Y):代表用K密钥加密的Y。

16)Triple-DESor T-DES:3DES/AES算法——如果密钥为A或者B,则函数式为DA(EB(DA(x))),如果3DES算法中的块大小大于64bits,加密要用ECB模式。

层级密钥认证流程图如图5所示。

认证原理和过程:

前提是软件应用平台保存着关于芯片组的一切信息(包括密钥),它的安全性是层级密钥协议的基础。

当chip-id被软件平台读取后,平台可以生成该芯片可以生成的一切秘密信息:K3,K2,K1,A。由于Vendor_ID和Module_ ID,ScretKey的唯一性,这一组秘密信息也是唯一的。

然后平台向用户终端发送Vendor_ID,Module_ID,Ek3(K2),Ek2(K1),nonce;终端得到Vendor_ID与Module_ID后,通过根密钥派生算法得到K3;利用得到的K3解密平台发送的Ek3(K2),得到K2;再利用K2解密平台发送的Ek2(K1),得到K1;同时利用K2可以生成A用来解密平台发送的nonce。

当芯片生成A之后,终端向平台响应Da(nonce),即用A将nonce进行解密来回复。由于软件平台拥有以上全部的安全信息,所以终端的身份得以认证,软件平台可以通过质询响应来认证芯片组。同样的,芯片也可以通过相应的协议认证软件平台。这样即完成了双向认证。

进行认证后,紧接着平台发送利用密钥K1加密的控制字(CW)和加扰的多媒体内容,终端得到Ek1(CW)后,进行解密得到CW从而可以解扰内容进行解读。

根密钥派生图如图6所示。

《SCTE-Open Media Security(OMS)Root Key Derivation Profiles and Test Vectors》[10]标准中详细解释了根密钥派生图中的各个函数:

Preliminary SCK Manipulation Function:输入 Vendor_ID,以SCK为密钥,输出SCKv。算法根据不同的文档有三种,双密钥TDES,AES加密,AES解密。

Vendor Separation Function:输入Vendor_ID,以Secret Mask Key为密钥,输出Seedv。算法根据不同的文档有三种,双密钥TDES,AES加密,AES解密。

图5 层级密钥认证流程图[10]

Final Root Key Derivation Function:输入Seedv,以SCKv为密钥,输出 Modkv。算法根据不同的文档有三种,基于双密钥TDES,AES加密,AES解密。

Module Key Derivation Function:输入Module_ID,以Modkv为密钥,输出K3。算法同样有三种。

图6 根密钥派生图[10]

2.2 基于公钥密码的两次传输双向认证

在开放的互联网环境中,我们也可以利用基于公钥密码的两次传输认证来进行终端和前端的双向认证。并通过认证来后建立的安全信道来协商一个CW加扰或者解扰数据。

需要保护数据和密钥如表1所示。

表1 需保护数据的安全需求Table 1 Security requirements of the protected data

假设Operator是运营商,Terminal是终端,[TOI SNo]为运营商签名时的时间戳和随机数,[TTI SNT]为终端签名时的时间戳和随机数,Certo和CertT为运营商和终端的证书。那么运营商和终端相互认证并且交换密钥过程如下:

1)终端计算SignT([TTI SNT],Terminal ID),将所得结果和[TTISNT],Terminal ID一起发送给运营商;

2)运营商计算Signo([ToISNo],Operator ID),将所得结果和[ToISNo],Operator ID一起发送给A。

3)由于双方都有对方的公钥,所以可以认证对方的身份。

4)运营商和终端之间定期使用密钥交换协议生成会话密钥Ks。Ks的有效期可以为24小时。

5)运营商使用Ks加密CW的密钥传给终端,然后终端得到加密的CW后,用来Ks解密CW进行解扰。

传输认证过程如图7所示。

图7 传输认证过程

3 安全启动

终端设备有一个安全的启动机制(Secure Boot),确保设备使用片上BOOT ROM、片上的OTP Fuse和设备的安全功能来建立安全可信的运行环境。安全启动的作用在于确保系统处于一个已知的状态并且执行的是可信的代码。

上电后,Soc首先在安全特权模式下从片内安全引导代码区Boot ROM启动(First Level Boot)。Boot ROM引导代码在通过自我验证以后完成系统安全状态的设置,之后提取Secure World Bootloader中的制造商公钥,并且验证制造商公钥的SHA256值和存储在OTP Fuse中的值是否一致;如果一致,用制造商公钥验证Secure World Bootloader是否有合法的签名,如果验证成功,加载Secure World Bootloader。

Secure World Bootloader启动运行(Second Level Boot),提取Secure World OS Image中的制造商公钥,并且验证制造商公钥的SHA256值和存储在OTP Fuse中的值是否一致;如果一致,用制造商公钥验证Secure World OS Image是否有合法签名;如果验证签名合法,Bootloader计算Secure World OS Image的SHA256值,并检验是否与Bootloader中指定的值一致,如果验证成功,加载Secure World OS Image。如果上述验证不成功,则OS Image可能被篡改,不能加载篡改的OS Image。

Secure World OS启动,Secure World OS为嵌入式Linux系统,Linux系统启动完成对Secure World的初始化,加载基本通讯和密码学运算模块。如果系统启动成功,自动加载硬件完整性检查程序。Secure World OS会验证并加载Normal World OS的Bootloader,然后Bootloader验证并加载Normal World OS启动。这样完成整个系统的安全启动。

Secure Boot过程是这样一个不断迭代的过程。制造商公钥的SHA256值存储在OTP Fuse中,用来检验需要加载的软件系统image是否具有制造商的合法签名。Secure Boot的整个过程如图8示。

图8 STB安全启动过程[5]

4 优缺点分析

1)安全性:整个STB系统的安全性基于Soc硬件,解扰密钥CM不出芯片,可以解决“高级安全”问题。

2)开放性:由于使用开放架构芯片,STB的硬件和软件结构的开放性好,硬件的选型、软件开发都相对容易。

3)保护终端资产:通过TrustZone技术建立可信计算硬件平台,防止恶意用户对STB终端进行烧机操作,保护运营商的终端资产。

4)克隆机问题:SCK存放于SoC中,和SCK相关的运算也在Secure World中进行,在Secure World保证安全的情况下,只要Secure World不提供SCK读接口,可以有效防止终端克隆。

5)兼容性:只要实现相应的单向CAS软件,就可以实现兼容单向CAS系统。

6)保证服务质量:双向网络失效的情况下,如果兼容单向CAS,即带内和带外结合,可以保证广播网络的服务质量。

7)信源认证(阻止非法信息在广电终端上的播放):由于TrustZone建立的可信计算的硬件和软件环境,所以只有运营商签名的播放器可以运行,可以有效防止非法信息的播放。

8)应用的扩展性:可以在STB上做大量的应用扩展,如用户行为分析(如收视率分析)、支付相关的应用扩展(如电视购物等)。

5 结论

由上述DCAS实现的设计可以得出结论:DCAS技术的实现在技术上是可行的。基于TrustZone技术的DCAS终端,可以解决“高级安全问题”,防止克隆机问题,有效保护终端资产,并可以提供开发平台开展丰富的第三方应用,有非常大的应用价值。

[1] Kamperman F,Van Rijnsoever B.Conditional Access System Interoperability through Software Downloading[J].Consumer Electronics,IEEE Transactions on,2001,47(1):47-54.

[2] Cable Television Laboratories,Inc.DCAS System Overview Technical Report,OC-TR-DCAS-D02-060912.[R].U.S.:Cable Television Laboratories,September 2006.

[3] Moon J,Kim J,Park J,et al.A Dynamic Conditional Access System for IPTV Multimedia Systems[C]//Systems and Networks Communications,2009.ICSNC'09.Fourth International Conference on.IEEE,2009:224-229.

[4] W You,Lee J,Cho Y S,et al.Design and Implementation of DCAS User Terminal[C]//Broadband Multimedia Systems and Broadcasting(BMSB),2011 IEEE International Symposium on.IEEE,2011:1-5.

[5] ARMLimited.Building A Secure System using TrustZone Technology.[EB/OL].UK:ARM Limited.2009.http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_TrustZone_security_whitepaper.pdf

[6] CSDN.TrustZone技术简介.[EB/OL].China:CSDN,2013. http://blog.csdn.net/braveheart95/article/details/8878319

[7] Jeong H,Kim S,Won D.On the Security of An Novel Protocol for Downloadable CAS[C]//Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication.ACM,2012:65.

[8] Kim H.Secure Communication in Digital TV Broadcasting[J]. International Journal of Computer Science and Network Security,2008,8(9):1-5.

[9] IANG T,HOU Y,ZHENG S.Secure Communication Between Set-top Box and Smart Card in DTV Broadcasting[J].Consumer Electronics,IEEE Transactions on,2004,50(3):882-886.

[10] Society of Cable Telecommunications Engineers,Inc.SCTEOpen Media Security(OMS)Root Key Derivation Profiles and Test Vectors.[EB/OL].U.S.:Society of Cable Telecommunications Engineers,2013.http://www.scte.org/documents/pdf/standards/ANSI_SCTE%20201%202013.pdf

DCAS Terminal Design based on TrustZone

HAO Yong-gang1,LI Wang-wei2,WEI An-ming2,XIAO Hui2,HUANG Zheng1,GUO Jie1
(1School of Information Security Engineering,Shanghai Jiaotong University,Shanghai 200240,China;2Planning Institute of Radio and Television,SAPPRFT,Beijing 100045,China)

TP309

A

1009-8054(2016)02-0099-07

2015-09-22

郝舅钢(1990—),男,硕士,研究生,主要研究方向为可信计算,事件挖掘;

李汪蔚(1985—),女,硕士,工程师,主要研究方向为广播电视数字化、信息安全;

韦安明(1975—),男,博士,高级工程师,主要研究方向为广播电视数字化、网络化的标准、科研和测试工作;

肖 辉(1977—),男,硕士,广播电视规划院广播电视中心所制播网络实验室主任,主要研究方向为制播网络、信息安全、应用软件、测试测量等;

黄 征(1975—),男,博士,副教授,主要研究方向为人工智能、安全多方计算和数字取证信息的收集与分析;

郭 捷(1980—),女,博士,副研究员,主要研究方向为图象处理与视频通信。

猜你喜欢
公钥解密密钥
幻中邂逅之金色密钥
炫词解密
解密“一包三改”
密码系统中密钥的状态与保护*
炫词解密
一种基于混沌的公钥加密方案
TPM 2.0密钥迁移协议研究
神奇的公钥密码
一种对称密钥的密钥管理方法及系统
P2X7 receptor antagonism in amyotrophic lateral sclerosis