双向认证的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及数字电视技术领域,尤其是涉及一种双向认证的方法、装置及系统。
【背景技术】
[0002]目前数字电视领域中,基于单、双向网络的业务及内容保护系统的终端(例如机顶盒)的安全芯片均采用《ETSI TS103162V1.1.1 (2010-10)》标准。其生产安全芯片的通用做法如下:
[0003]1、有线运营商向当地的业务及内容方案提供商提出采购安全芯片需求,业务及内容方案商提供给运营商已经与方案商集成的安全芯片厂商列表;
[0004]2、有线运营商选择安全芯片厂商后,向安全芯片厂商提出定制与当地业务及内容方案提供商匹配的安全芯片;
[0005]3、业务及内容方案提供商在每个已集成的安全芯片厂商放置一个黑盒子,业务及内容方案提供商将运营商定制安全芯片的安全密钥(SCK)发送给黑盒子,其中,安全芯片的安全密钥(SCK)也称为终端根密钥。
[0006]4、黑盒子将安全密钥(SCK)写入安全芯片,安全芯片厂商生产安全芯片;
[0007]5、安全芯片厂商将生产的安全芯片发给业务及内容方案提供商同时返还安全芯片的安全密钥(SCK);
[0008]6、业务及内容方案提供商将采购的安全芯片和安全密钥(SCK)提供给有线运营商。
[0009]由上述过程可知,现有技术中,每个终端的安全芯片在生产时都要预埋安全密钥(SCK),而安全密钥(SCK)需要业务及内容方案提供商来提供,并且每个业务及内容方案提供商的安全密钥(SCK)都不相同,这就导致了终端只能匹配自己的密钥提供商,也就是说,只有采用了密钥提供商方案的数字运营商才能使用这些终端,从而导致了终端的通用性差。
[0010]此外,按照《ETSI TS103162V1.1.1 (2010-10)》标准,系统认证过程只需前端服务器产生随机数,终端将随机数作为nonce (认证因子)送入自身的安全芯片,终端的安全芯片产生nonce response (认证因子响应)返回前端服务器即完成认证。在这种认证过程中,只要克隆者获取前端服务器下发的随机数,破解nonce应答机制就可完成对终端的克隆,因此,现有终端的安全性不高,存在被截取克隆的风险。
【发明内容】
[0011]本发明的目的在于提供一种双向认证的方法、装置及系统,以提高终端的安全性。
[0012]为达到上述目的,本发明提供了一种终端认证方法,包括以下步骤:
[0013]向服务器发起认证请求;
[0014]接收所述服务器发送的随机数Random和加密的认证密钥EK3 (K2);
[0015]根据所述Random、所述EK3 (K2)、终端根密钥SCK和上一次认证的认证因子响应1^_Nonce Response值获取本次认证的认证因子响应Nonce Response值;
[0016]将所述Nonce Response值上传至所述服务器。
[0017]本发明的终端认证方法,所述根据所述Random、所述EK3 (K2)、所述SCK和所述L_Nonce Response值获取所述Nonce Response值,具体包括:
[0018]根据所述Random和所述L_Nonce Response值并采用认证因子生成算法计算得到本次认证的认证因子Nonce值;
[0019]根据所述SCK生成运营商根密钥K3 ;
[0020]用所述K3解密所述EK3 (K2)得到认证密钥K2 ;
[0021]根据所述Nonce值和所述K2并采用认证因子响应生成算法计算得到所述NonceResponse 值。
[0022]本发明的终端认证方法,所述SCK通过以下方式获得:
[0023]在预先注册过程中,终端接收所述服务器下发的加密的终端根密钥ESCK,将所述ESCK解密后得到所述SCK并将其写入自身的只读存储器内。
[0024]本发明的终端认证方法,所述在预先注册过程中,终端接收所述服务器下发的ESCK,具体为:
[0025]向所述服务器发起注册申请,所述注册申请包含终端ID和根加密机签发的第一终端证书;
[0026]接收所述服务器在验证所述第一终端证书合法后发送的运营商证书、所述ESCK和运营商加密机签发的第二终端证书。
[0027]为达到上述目的,本发明还提供了一种服务器认证方法,包括以下步骤:
[0028]接收终端发起的认证请求;
[0029]产生随机数Random,并根据所述Random、认证密钥K2和上一次认证的认证因子响应L_Nonce Response值获取本次认证的认证因子响应Nonce Response值;
[0030]将所述Random和加密的认证密钥EK3 (K2)下发给所述终端;
[0031]接收所述终端发送的Nonce Response值;
[0032]将所述终端发送的Nonce Response值与自身计算出的Nonce Response值进行比较,如果匹配,则通过认证。
[0033]本发明的服务器认证方法,所述根据所述Random、所述K2、所述SCK和所述L_Nonce Response值获取所述Nonce Response值,具体包括:
[0034]根据所述Random和所述L_Nonce Response值并采用认证因子生成算法计算得到本次认证的认证因子Nonce值;
[0035]根据所述Nonce值和所述K2并采用认证因子响应生成算法计算得到所述NonceResponse 值。
[0036]本发明的服务器认证方法,所述K2和所述EK3(K2)通过以下方式获得:
[0037]根据认证密钥KeyID生成所述K2 ;
[0038]用运营商根密钥K3加密所述K2,生成所述EK3 (K2)。
[0039]为达到上述目的,本发明还提供了一种双向认证方法,包括以下步骤:
[0040]终端向服务器发起认证请求;
[0041]所述服务器产生随机数Random,并根据所述Random、认证密钥K2和上一次认证的认证因子响应L_Nonce Response值计算本次认证的认证因子响应Nonce Response值,并将所述Random和加密的认证密钥EK3(K2)下发至所述终端;
[0042]所述终端根据所述Random、所述EK3 (K2)、终端根密钥SCK、和所述L_NonceResponse值计算出Nonce Response值,并将其上传至所述服务器;
[0043]所述服务器将所述终端发送的Nonce Response值与自身计算出的NonceResponse值进行比较,如果匹配,则通过认证。
[0044]为达到上述目的,本发明还提供了一种终端,包括:
[0045]请求发送模块,用于向服务器发起认证请求;
[0046]数据接收模块,用于接收所述服务器发送的随机数Random和加密的认证密钥EK3 (K2);
[0047]认证计算模块,用于根据所述Random、所述EK3 (K2)、终端根密钥SCK和上一次认证的认证因子响应L_Nonce Response值获取本次认证的认证因子响应Nonce Response值;
[0048]响应发送模块,用于将所述Nonce Response值上传至所述服务器。
[0049]本发明的终端,所述SCK通过以下方式获得:
[0050]在预先注册过程中,终端接收所述服务器下发的加密的终端根密钥ESCK,将所述ESCK解密后得到所述SCK并将其写入自身的只读存储器内。
[0051]为达到上述目的,本发明还提供了一种服务器,包括:
[0052]请求接收模块,用于接收终端发起的认证请求;
[0053]认证处理模块,用于产生随机数Random,并根据所述Random、认证密钥K2和上一次认证的认证因子响应L_Nonce Response值获取本次认证的认证因子响应NonceResponse 值;
[0054]数据下发模块,用于将所述Random和加密的认证密钥EK3 (K2)下发给所述终端;
[0055]响应接收模块,用于接收所述终端发送的Nonce Response值;
[0056]认证比较模块,用于将所述终端发送的Nonce Response值与自身计算出的NonceResponse值进行比较,如果匹配,则通过认证。
[0057]本发明的服务器,所述SCK通过以下方式获得:
[0058]在预先注册过程中,所述服务器向所述终端下发加密的终端根密钥ESCK ;
[0059]所述终端将所述ESCK解密后得到所述SCK并将其写入自身的只读存储器内。
[0060]为达到上述目的,本发明还提供了一种双向认证系统,包括:
[0061]至少一个上述的终端以及上述的服务器。