确定证书状态的方法转让专利

申请号 : CN201810976472.9

文献号 : CN110858804A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李飞朱锦涛何承东白涛

申请人 : 华为技术有限公司

摘要 :

为满足车联网通信中实时性和安全性的需求,本申请提出一种能够使消息接收端快速确认证书状态的方法。通过在证书的约定字段中包含证书的分类信息,并在证书吊销列表的约定字段中包含被吊销证书的分类信息,接收端能够根据发送端证书中携带的分类信息,在证书吊销列表海量的记录中快速缩小搜索或匹配的范围,以提高确定证书状态的速度和效率。

权利要求 :

1.一种确定证书状态的方法,其特征在于,

接收端接收发送端发送的消息,所述消息中包括所述发送端证书,所述发送端证书中包含分类信息;

所述接收端根据所述分类信息,在保存的证书吊销列表中确定吊销标识的集合,所述吊销标识用于在所述证书吊销列表中标识被吊销证书,所述吊销标识包含被吊销证书的分类信息,所述集合中的吊销标识包含的分类信息与所述发送方证书的分类信息相同;

所述接收端提取所述发送端证书的特征信息,与所述集合中吊销标识对应的被吊销证书的特征信息进行匹配,并根据匹配结果确定所述发送端证书的状态。

2.根据权利要求1所述的方法,其特征在于,所述吊销标识包含的特征信息为所述吊销标识对应的被吊销证书的第一约定字段包含的N个字节的随机数,N为大于0的正整数;

所述接收端提取所述发送端证书的特征信息,具体包括:

所述接收端从所述发送端证书的第一约定字段截取N个字节的随机数作为所述发送端证书的特征信息。

3.根据权利要求1所述的方法,其特征在于,所述吊销标识包含的特征信息为对所述吊销标识对应的被吊销证书进行哈希运算后得到的M个字节的哈希值,M为大于0的正整数;

所述接收端提取所述发送端证书的特征信息,具体包括:

所述接收端对所述发送端证书进行所述哈希运算后,得到的M个字节的哈希值作为所述发送端证书的特征信息。

4.根据权利要求1-3任一所述的方法,其特征在于,所述发送端证书的分类信息包含在所述发送端证书的第二约定字段中。

5.根据权利要求4所述的方法,其特征在于,所述第二约定字段为所述发送端证书的证书标识字段,或所述证书的区域字段,或所述证书的证书吊销系列字段。

6.根据权利要求1-5任一所述的方法,其特征在于,所述分类信息包含第一级分类信息和第二级分类信息。

7.根据权利要求6所述的方法,其特征在于,

所述接收端根据所述分类信息,在保存的证书吊销列表中确定吊销标识的集合,具体包括:所述接收端根据所述发送端证书的第一级分类信息,在所述证书吊销列表中确定第一吊销标识的集合,所述第一吊销标识的集合中的吊销标识包含的的第一级分类信息与所述发送端证书的第一级分类信息相同;

所述接收端根据所述发送端证书的第二级分类信息,在所述第一吊销标识的集合中确定第二吊销标识的集合,所述第二吊销标识的集合中的吊销标识包含的的第二级分类信息与所述发送端证书的第二级分类信息相同。

8.根据权利要求1-7任一所述的方法,其特征在于,所述接收端根据所述分类信息,在保存的证书吊销列表中确定吊销标识的集合之前,所述方法还包括,所述接收端从证书吊销服务器获取证书吊销列表。

9.根据权利要求8所述的方法,其特征在于,所述接收端从证书吊销服务器获取证书吊销列表具体包括,所述接收端从证书吊销服务器获取全量证书吊销列表;

所述接收端从证书吊销服务器获取差分证书吊销列表,所述差分证书吊销列表包括一个新增证书吊销列表和一个删除证书吊销列表,所述新增证书吊销列表中包括相比所述全量证书吊销列表,增加的吊销标识,所述删除证书吊销列表中包括相比所述完整的证书吊销列表,删除的吊销标识;

所述接收端根据所述差分证书吊销列表,刷新保存的所述全量证书吊销列表。

10.根据权利要求1-9任一所述的方法,其特征在于,所述接收端根据匹配结果确定所述发送端证书的状态,具体包括,所述接收端在通过匹配,确定所述集合中吊销标识对应的被吊销证书的特征信息中,存在与所述发送端证书的特征信息相同的特征信息,则所述接收端确定所述发送端证书已被吊销。

11.根据权利要求1-9任一所述的方法,其特征在于,所述接收端根据匹配结果确定所述发送端证书的状态,具体包括,所述接收端通过匹配,确定所述集合中吊销标识对应的被吊销证书的特征信息中,不存在与所述发送端证书的特征信息相同的特征信息,则所述接收端确定所述发送端证书未被吊销。

12.根据权利要求1-11任一所述的方法,其特征在于,所述接收端或发送端为车载通信单元或路侧通信单元。

13.一种确定证书状态的方法,其特征在于,

接收端接收发送端发送的消息,所述消息中包括所述发送端证书;

所述接收端确定证书吊销指纹库中存在与所述发送端证书的指纹信息匹配的被吊销证书的指纹信息,所述发送端证书的指纹信息为所述接收端根据所述发送端证书计算获得;

所述接收端向证书吊销服务器发送所述发送端证书,请求所述证书吊销服务器验证所述发送端证书的状态;

所述接收端接收所述证书吊销服务器的验证结果,并根据所述验证结果确定所述发送端证书的状态。

14.根据权利要求13所述的方法,其特征在于,所述证书吊销指纹库为初始化为0的长度为N的二进制数组,所述指纹信息为长度为N的二进制数组中取值为1的比特位信息,N为大于0的正整数。

15.根据权利要求13或14所述的方法,其特征在于,所述接收端对所述发送端证书进行哈希运算,对哈希运算后的取值截取其中M个字节,M为大于0的正整数,对所述M个字节的数值进行哈希运算并对N取模,获得所述发送端证书的指纹信息。

16.根据权利要求13-15任一所述的方法,其特征在于,所述接收端接收发送端发送的消息之前,所述方法还包括,所述接收端从证书吊销服务器或第三车联网通信单元获取所述证书吊销指纹库。

17.根据权利要求16所述的方法,其特征在于,所述接收端从证书吊销服务器或第三车联网通信单元获取所述证书吊销指纹库,具体包括,所述接收端从证书吊销服务器或第三车联网通信单元获取全量证书吊销指纹库,所述全量证书吊销指纹库中包括所有被吊销证书的指纹信息;

所述接收端从证书吊销服务器或第三车联网通信单元获取差分证书吊销指纹位置库,所述差分证书吊销指纹位置库记录所述全量证书吊销指纹库发生变化的比特位信息;

所述接收端根据所述差量证书吊销指纹库,将所述全量证书吊销指纹库中发生变化的比特位对应的取值进行取反运算。

18.根据权利要求13-17任一所述的方法,其特征在于,所述接收端确定所述发送端证书被吊销的情况下,所述方法还包括,所述接收端丢弃所述发送端发送的消息。

19.根据权利要求13-18任一所述的方法,其特征在于,所述接收端或发送端或第三车联网通信单元为车载通信单元或路侧通信单元。

20.一种确定证书状态的方法,其特征在于,

证书吊销服务器接收请求吊销证书的消息,所述请求吊销证书的消息中包括证书,所述证书中包含所述证书的分类信息;

所述证书吊销服务器提取所述证书的分类信息和特征信息,并在证书吊销列表中记录所述证书的分类信息和特征信息。

21.根据权利要求20所述的方法,其特征在于,所述证书的特征信息为所述证书的第一约定字段包含的N个字节的随机数,N为大于0的正整数;

所述证书吊销服务器提取所述证书的特征信息,具体包括:

所述证书吊销服务器在所述证书的第一约定字段截取N个字节的随机数作为所述证书的特征信息。

22.根据权利要求20所述的方法,其特征在于,所述证书的特征信息为对所述证书进行哈希运算后得到的M个字节的哈希值,M为大于0的正整数;

所述证书吊销服务器提取所述证书的特征信息,具体包括:

所述证书吊销服务器对所述证书进行所述哈希运算后,得到的M个字节的哈希值作为所述证书的特征信息。

23.根据权利要求20-22任一所述的方法,其特征在于,所述证书的分类信息包含在所述证书的第二约定字段中;

所述证书吊销服务器提取所述证书的分类信息,具体包括:

所述证书吊销服务器在所述证书的第二约定字段截取所述证书的分类信息。

24.根据权利要求23所述的方法,其特征在于,所述第二约定字段为所述证书的证书标识字段,或所述证书的区域字段,或所述证书的证书吊销系列字段。

25.根据权利要求20-24任一所述的方法,其特征在于,所述证书吊销服务器在所述证书吊销列表中的吊销标识字段记录所述证书的分类信息。

26.根据权利要求20-25任一所述的方法,其特征在于,所述证书吊销服务器在所述证书吊销列表中的吊销标识字段记录所述证书的特征信息。

27.根据权利要求20-26任一所述的方法,其特征在于,所述证书吊销服务器将所述证书的分类信息和所述证书的特征信息进行连接运算,并在所述证书吊销列表中的吊销标识字段记录所述连接运算后得到的值。

28.一种确定证书状态的方法,其特征在于,

证书吊销服务器接收车联网服务器发送的请求吊销证书的消息,所述请求吊销证书的消息中包括证书;

所述证书吊销服务器计算获得所述证书的指纹信息,并在证书吊销指纹库记录所述证书的指纹信息;

所述证书吊销服务器比较证书吊销指纹库记录所述证书的指纹信息前后发生变化的比特位信息,并将发生变化的比特位信息记录到差分证书吊销指纹位置库。

29.根据权利要求28所述的方法,其特征在于,所述证书吊销指纹库中包括被吊销证书的指纹信息,所述证书吊销指纹库为初始化为0的长度为N的二进制数组,所述指纹信息为长度为N的二进制数组中取值为1的比特位信息,N为大于0的正整数。

30.根据权利要求28或29所述的方法,其特征在于,所述方法还包括,所述证书吊销服务器向车联网通信单元发送所述差分证书吊销指纹位置库。

31.一种确定证书状态的方法,其特征在于,

车联网服务器接收第一车联网通信单元发送的消息,所述消息中包括第二车联网通信单元发送给所述第一车联网通信单元的消息,所述第二车联网通信单元发送给所述第一车联网通信单元的消息中包括所述第二车联网通信单元的证书,所述证书中包括所述证书的分类信息;

所述车联网服务器提取所述的证书的分类信息和特征信息;

所述车联网服务器向证书吊销服务器发送消息,请求吊销所述证书,所述消息中包括所述证书的分类信息和特征信息。

32.根据权利要求31所述的方法,其特征在于,所述证书的特征信息为所述证书的第一约定字段包含的N个字节的随机数,N为大于0的正整数;

所述车联网服务器提取所述第二车联网通信单元的证书的特征信息,具体包括:所述车联网服务器在所述证书的第一约定字段截取N个字节的随机数作为所述证书的特征信息。

33.根据权利要求31所述的方法,其特征在于,所述证书的特征信息为对所述证书进行哈希运算后得到的M个字节的哈希值,M为大于0的正整数;

所述车联网服务器提取所述第二车联网通信单元的证书的特征信息,具体包括:所述车联网服务器对所述证书进行所述哈希运算后,得到的M个字节的哈希值作为所述证书的特征信息。

34.根据权利要求31-33任一所述的方法,其特征在于,所述证书的分类信息包含在所述证书的第二约定字段中;

所述车联网服务器提取所述第二车联网通信单元的证书的分类信息,具体包括:所述车联网服务器在所述证书的第二约定字段截取所述证书的分类信息。

35.根据权利要求34所述的方法,其特征在于,所述第二约定字段为所述证书的证书标识字段,或所述证书的区域字段,或所述证书的证书吊销系列字段。

36.根据权利要求31-35任一所述的方法,其特征在于,所述分类信息包含第一级分类信息和第二级分类信息。

37.根据权利要求31-36任一所述的方法,其特征在于,所述第一车联网通信单元或第二车联网通信单元为车载通信单元或路侧通信单元。

38.一种车联网通信单元,其特征在于,包括:通信接口、存储器和处理器,所述通信接口用于与车联网通信单元外部的装置或设备进行通信;

所述存储器用于存储程序;

所述处理器用于执行所述存储器中存储的程序,当所述程序被执行时,所述车联网通信单元执行如权利要求1-19任一所述的方法。

39.一种证书吊销服务器,其特征在于,包括:通信接口、存储器和处理器,所述通信接口用于与证书吊销服务器外部的装置或设备进行通信;

所述存储器用于存储程序;

所述处理器用于执行所述存储器中存储的程序,当所述程序被执行时,所述证书吊销服务器执行如权利要求20-30任一所述的方法。

40.一种车联网服务器,其特征在于,包括:通信接口、存储器和处理器,所述通信接口用于与车联网服务器外部的装置或设备进行通信;

所述存储器用于存储程序;

所述处理器用于执行所述存储器中存储的程序,当所述程序被执行时,所述车联网服务器执行如权利要求31-37任一所述的方法。

41.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1至37中任一项所述的方法。

说明书 :

确定证书状态的方法

技术领域

[0001] 本申请涉及通信领域,尤其涉及车联网领域设备间通信时,确定证书的状态的方法、装置和系统。

背景技术

[0002] V2X(Vehicle to Everything)车联网指的是车辆之间,或者车辆与行人或骑行者之间以及车辆与基础设施之间的通信系统。车联网通信具有消息量大且消息收发频率高的特点,如车载通信单元(on-board unit,OBU)或路侧通信单元(road side unit,RSU)周期性(如10赫兹)发送描述车辆运行状态(速度、朝向、方位)的协作感知消息(cooperative awareness message,CAM),或当发生特殊事件时,发送描述事件类型的分散环境通知信息(Decentralized Environmental Notification Message,DENM)。
[0003] 出于安全性考虑,通信系统中通常使用证书进行数据源认证,如发送端在发送的消息中携带证书,接收端对消息中携带的证书进行验证,其中包括验证证书是否已被吊销。在传统互联网通信领域使用OCSP方案,即客户端使用在线证书状态协议(Online Certificate Status Protocol,OCSP)到OCSP服务器实时查询证书是否被吊销。
[0004] 在车联网通信中,同样需要使用证书进行数据源认证,但传统的OCSP方案并不适用于车联网通信的场景。以CAM消息为例,车辆每秒广播10条CAM消息,理论上以车辆为中心半径1千米内的全部车辆都会受到广播的CAM消息,如果采用OCSP方案,每辆接收到CAM消息的车辆都需要对每条CAM消息中的证书进行实时查询,不仅会对OCSP服务器的性能和网络带宽造成巨大负担,而且车辆与OCSP服务器间的通信,会额外增加车联网通信的时延。
[0005] 因此,为满足车联网通信中实时性和安全性的需求,亟需一种效率更高的判断证书是否被吊销的方法。

发明内容

[0006] 为满足车联网通信中实时性和安全性的需求,本申请提出一种能够使消息接收端快速确认证书状态的方法。本申请中所述的证书状态指证书是否被吊销。
[0007] 本申请实施例提出一种基于证书吊销列表的方案,该方案中提出证书的分类信息和证书的特征信息两个概念。证书的分类信息指为证书颁发服务器在颁发证书时为证书分配的一个类别信息,用于对证书进行分类。证书的特征信息指可以唯一识别一个证书的信息,证书的特征信息可以是证书颁发服务器在颁发证书时为证书分配的一个n个字节的随机数,还可以是对该证书进行哈希计算后截取的n个字节的数值。
[0008] 本申请实施例提出在证书的约定字段中包含证书的分类信息,并在证书吊销列表的约定字段中包含被吊销证书的分类信息。另外,当证书的特征信息为证书颁发服务器在颁发证书时为证书分配的一个n个字节的随机数时,一种可能的实现方式中,证书的特征信息可以包含在证书的某一约定字段。证书吊销列表中除了记录被吊销证书的分类信息,还需要在某一约定字段包含被吊销证书的特征信息。
[0009] 证书吊销列表由证书吊销服务器生成并维护。车联网中的通信单元,如接收端和发送端,从证书吊销服务器获取证书吊销列表。接收端在接收到消息后,根据保存的证书吊销列表,对消息发送端证书进行验证,确定证书的状态。通过在证书的约定字段中包含证书的分类信息,并在证书吊销列表的约定字段中包含被吊销证书的分类信息,接收端能够根据发送端证书中携带的分类信息,在证书吊销列表海量的记录中快速缩小搜索或匹配的范围,以提高证书验证的速度和效率。具体的,接收端在证书吊销列表中,确定与发送端证书具有相同分类信息的被吊销证书的记录集合,并进而在该集合中确定与发送端证书具有相同特征信息的被吊销证书的记录,如果存在匹配的记录,则发送端证书已被吊销,如果不存在匹配的记录,则发送端证书未被吊销。
[0010] 另外,本申请实施例还提出一种基于证书吊销指纹库的方案。证书吊销服务器将被吊销证书的指纹信息录入证书吊销指纹库。车联网中的通信单元,如接收端和发送端,从证书吊销服务器获取证书吊销指纹库。接收端在接收到消息后,提取消息发送端证书的指纹信息,根据保存的证书吊销指纹库,对消息发送端证书进行验证,确定证书的状态。为提高通信效率,本申请实施例提出证书吊销服务器维护一个证书吊销指纹位置库,以保存一段时间内证书吊销指纹库中记录的变化情况,车联网通信单元获取证书吊销指纹位置库,就可以刷新保存的证书吊销指纹库。为了提高证书吊销指纹库方案的准确性,本申请实施例还提出发送端自验证书是否被吊销的方案,确保消息中携带的证书为证书吊销指纹库中无匹配记录的证书,以防止接收端误判。
[0011] 为配合本申请权利要求部分所述的方法,接收端也需要进行相应的改进,以支持本申请实施例中所述的确定证书状态的方法。
[0012] 证书吊销列表方案中,发送端向接收端发送的消息中包括发送端的证书,由于发送端的证书中包括分类信息,接收端可以根据发送端证书的分类信息,与证书吊销列表中被吊销证书的分类信息进行匹配,并根据匹配结果确定所述发送端的证书的状态。
[0013] 证书吊销指纹库方案中,发送端根据保存的证书吊销指纹库,在发送端的证书中确定一个证书吊销指纹库中没有匹配记录的证书,并在发送的消息中使用该选定的证书。
[0014] 一种可能的实现方式中,发送端计算获得发送端任一证书的指纹信息,如果发送端判断证书吊销指纹库中不存在与该证书的指纹信息匹配的指纹信息,则在发送的消息中使用该证书。
[0015] 另一种可能的实现方式中,发送端计算获得发送端任一证书的指纹信息,如果发送端判断证书吊销指纹库中存在与该证书的指纹信息匹配的指纹信息,则选择与该证书不同的第二证书,并继续计算第二证书的指纹信息,并判断证书吊销指纹库中是否存在与第二证书的指纹信息匹配的指纹信息。
[0016] 本申请实施例中所述的方法涉及接收端、发送端、证书吊销服务器和车联网服务器等装置。因此,本申请实施例还提供实现如上证书验证方法的装置和服务器。
[0017] 另外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述证书验证方法。
[0018] 最后,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述证书验证方法。

附图说明

[0019] 图1所示为本申请实施例提供的一种车联网系统架构图;
[0020] 图2所示为本申请实施例提供的一种车联网通信方法流程图;
[0021] 图3所示为本申请实施例提供的一种将证书进行分级分类的结构示意图;
[0022] 图4所示为本申请实施例提供的一种吊销证书的方法流程图;
[0023] 图5所示为本申请实施例提供的一种从证书吊销服务器获取被吊销证书信息的方法流程图;
[0024] 图6所示为一种证书吊销指纹库的数据结构示意图;
[0025] 图7所示为本申请实施例提供的一种自验证书的车联网通信方法流程图;
[0026] 图8所示为本申请实施例提供的一种确认证书状态的方法流程图;
[0027] 图9所示为本申请实施例中所述装置采用的装置结构示意图。

具体实施方式

[0028] 为满足车联网通信中实时性和安全性的需求,本申请实施例提出一种相比现有技术,效率更高的判断证书是否被吊销的方法。需要说明的是,本申请实施例中所述的证书,指通信领域中使用的数字证书。
[0029] 图1所示为本申请实施例提出的一种车联网系统架构,其中包括证书颁发服务器,证书吊销服务器,车联网服务器和车联网终端。其中车联网终端也可以是车联网装置或设备,如车载通信单元或路侧通信单元或行人所携带的通信装置。车联网终端从证书颁发服务器获取证书,直接或间接从证书吊销服务器获取证书吊销列表(Certificate Revocation List,CRL)。CRL为证书吊销服务器生成的,用于记录已被吊销证书的信息。车联网终端向车联网服务器上报车联网终端的状态,运行信息和异常信息。车联网服务器可以直接向证书吊销服务器请求吊销某一车联网终端的证书,也可以通过证书颁发服务器向向证书吊销服务器请求吊销某一车联网终端的证书。
[0030] 图2所示为本申请实施例提出的一种车联网通信业务流程示意图。通信流程涉及两个车联网终端、装置或设备,根据通信角色的不同,分为发送端和接收端。
[0031] 发送端在101步骤发送的消息中携带发送端的证书。发送端发送的证书中包含分类信息。分类信息为证书颁发服务器在颁发证书时为证书分配的一个类别信息,用于对证书进行分类;分类的维度本申请不进行限定,可以以地理方位为维度,如将证书颁发服务器所在的地理方位作为分类信息,也可以以行政区域为维度,如将证书颁发服务器所在的行政区域作为分类信息。分类信息的格式和长度,本申请也不进行限定,分类信息可以是包含多个级别的多级分类信息,也可以是一级分类信息。分类信息可以通过多种方式携带,本申请实施例以IEEE 1609.2标准定义的车联网证书格式为例,列举几种可能的证书中携带分类信息的方式。
[0032]
[0033] 第一种方式:通过id证书标识字段携带分类信息。以二级分类信息为例。id的格式定义为“第一级分类信息|第二级分类信息|特征信息”,其中“|”为连接运算符。当采用证书颁发服务器的行政区域作为分类信息时,第一级分类信息可以是证书颁发服务器所在的省级信息,第二级分类信息可以是证书颁发服务器所在的地市信息。在第一种方式中,特征信息为为证书颁发服务器在生成证书时为证书分配的用于标识该证书的信息,特征信息可以记录在证书的任一约定字段中。一种可能的实现方式中,特征信息可以是使用随机数生成器生成的n个字节的二进制数字。第一种方式中,两个不同分类信息的证书,其特征信息可以相同。假设第一级分类信息长度为1个字节,第二级分类信息长度为1个字节,n为1,则一个可能的证书的id的取值为“100010000001000111111110”,其中“10001000”为证书的第一级分类信息,“00010001”为第二级分类信息,“11111110”为随机数。
[0034] 第二种方式:通过region区域字段携带分类信息。Region的格式定义为“第一级分类信息|第二级分类信息”。
[0035] 第三种方式:通过crlSeries证书吊销系列字段携带分类信息,或通过cracaId证书吊销服务器标识和crlSeries字段携带分类信息。如crlSeries字段的格式定义为“第一级分类信息|第二级分类信息”;或通过cracaId字段携带第一级分类信息,通过crlSeries字段携带第二级分类信息。如cracaId字段记录负责对该证书进行吊销的证书吊销服务器的标识,以此作为第一级分类信息;crlSeries字段记录该证书一旦被吊销,所归属的CRL系列,以此作为第二级分类信息。
[0036] 接收端在处理消息之前,在102步骤首先根据本地保存的证书吊销列表CRL,验证证书是否被吊销,如果证书已被吊销,则直接丢弃消息。接收端在验证证书之前,直接或间接从证书吊销服务器获取CRL。与证书中包含的分类信息相对应,接收端本地保存的CRL中也需要记录被吊销证书的分类信息。此外,CRL中还需要记录被吊销证书的特征信息。CRL中记录被吊销证书的分类信息的字段可以是任意字段,本申请中为描述方便,统一将记录被吊销证书的分类信息的字段称之为吊销标识,吊销标识用于在CRL中唯一标识一个被吊销的证书。如下为IEEE 1609.2标准定义的CRL格式,假设承担吊销标识功能的字段为CRL中的id字段。同时,假设id字段记录被吊销证书的特征信息。当然,还可以选用不同于吊销标识字段的其它字段记录被吊销证书的特征信息。
[0037]
[0038] 以二级分类信息为例。CRL中id字段的格式定义为“第一级分类信息|第二级分类信息|被吊销证书的特征信息”,其中“|”为连接运算符,任一证书的特征信息可以是n个字节的随机数,还可以是对该证书进行哈希计算后截取的n个字节的数值,证书的特征信息用于唯一标识一个证书。当被吊销证书的特征信息为n个字节的随机数时,这n个字节的随机数可以是从被吊销证书中约定字段提取的信息,如与证书中包含分类信息的第一种方式相对应,截取被吊销证书标识中的n个字节的随机数。第一级分类信息可以是被吊销证书的证书颁发服务器所在的省级信息,第二级分类信息可以是被吊销证书的证书颁发服务器所在的地市信息。假设第一级分类信息长度为1个字节,第二级分类信息长度为1个字节,n为1,则一个可能的CRL中的id的取值为“100010000001000111111110”,其中“10001000”为被吊销证书的的第一级分类信息,“00010001”为第二级分类信息,“11111110”为被吊销证书标识中截取的随机数。
[0039] 基于如上的定义,接收端在图2中第102步验证证书的时候,就可以使用接收到的证书中包含的分类信息和提取的接收到的证书的特征信息,快速高效地与CRL中吊销标识进行匹配,以确定发送端的证书是否被吊销。如图3所示,CRL列表中记录的吊销标识可以根据分类信息归类在不同的集合和子集合中。假设接收端收到的证书中携带的id取值为“100010000001000111111110”;接收端本地保存的CRL中,吊销标识的第一级分类信息可以分为两大类,即第一级分类信息-1和第一级分类信息-2,其中第一级分类信息-1取值为“10001000”,则接收端验证证书是否被吊销时,只需要匹配查找第一级分类信息为第一级分类信息-1的吊销标识;然后,接收端根据接收到的证书中id包含的第二级分类信息“00010001”,继续缩小匹配查找的范围,第一级分类信息为“00010001”的吊销标识;当存在多级分类信息时,类似的,接收端根据不同级别的分类信息,逐级缩小需要匹配和查找的范围,最终确定一个需要根据证书的特征信息进行匹配查找的子集,并根据接收到的证书的特征信息和吊销标识中包含的特征信息进行匹配,如果存在匹配的记录,则确定接收到的证书已被吊销,如果没有匹配的记录,则确定接收到的证书未被吊销。如果CRL中根本不存在接收到的证书的分类信息,则可以直接确定该接收到的证书未被吊销。
[0040] 需要说明的是,本申请实施例中需要约定接收端接收到的证书的特征信息的定义,和CRL中吊销标识中记录的被吊销证书的特征信息定义保持一致。如果CRL中吊销标识中记录的被吊销证书的特征信息定义为被吊销证书标识中的指定位置的n个字节的随机数,则接收端在验证证书时从接收到的证书标识中提取指定位置的n个字节的随机数;如果CRL中吊销标识中记录的被吊销证书的特征信息定义为对被吊销证书进行哈希计算后截取指定位置的n个字节,则接收端在验证证书时对接收到的证书进行哈希计算后截取指定位置的n个字节。
[0041] 通过如上实施例中所述的方法可以看出,通过在证书和CRL中吊销标识中包含分类信息,接受方在验证证书是否被吊销的时候,可以通过分类信息缩小需要查找和匹配的范围,在CRL中保存的记录较多的情况下,可以极大的减少接收端验证证书的计算量,提升验证证书的速度和效率,满足车联网中实时性的业务需求。
[0042] 如图2实施例中所述,CRL是证书吊销服务器生成的,图4所示为证书吊销服务器吊销证书,并在CRL中增加包含分类信息的吊销标识的方法流程示意图。
[0043] 301-302、接收端接收车联网消息,其中包含消息发送端的证书,接收端判断存在异常情况,异常情况包括发送消息频率过快,消息中包含的签名信息验证错误,或证书不在有效期等,则将接收到的,包含证书的车联网消息发送给车联网服务器,请求车联网服务器做进一步安全性判断和处理。
[0044] 303、车联网服务器接收到包含证书的车联网消息,根据本地策略进行判断和决策,确定需要对证书进行吊销,发送消息到证书吊销服务器,请求证书吊销服务器吊销该证书,消息中携带证书。需要说明的是,车联网服务器可以直接向证书吊销服务器发送消息,请求吊销证书,也可以通过证书颁发服务器向证书吊销服务器发送消息,请求吊销证书。如,当车联网服务器没有被授予写入证书吊销服务器的权限时,车联网服务器需要通过证书颁发服务器向证书吊销服务器发送消息。
[0045] 304、证书吊销服务器根据车联网服务器的请求,在CRL中增加一条吊销标识记录,根据证书的格式,提取证书的分类信息和特征信息,并将该证书的分类信息写入新增的吊销标识。证书吊销服务器提取证书的分类信息的方式,与图2所示实施例中描述的携带分类信息的方式相对应。具体的,对应如图2所示实施例中描述的三种携带分类信息的方式,证书吊销服务器提取证书的id字段,或region字段,或crlSeries字段,中的分类信息,并将该分类信息作为CRL中新增的吊销标识字段的分类信息。证书吊销服务器提取证书的特征信息的方式,与图2所示实施例中描述的证书的格式相对应。当证书的某个约定字段,如id字段,中包含的n字节随机数作为证书的特征信息时,证书吊销服务器提取证书约定字段中的n字节随机数,作为被吊销证书的特征信息;其它情况下,或对证书进行哈希计算后截取n个字节,作为被吊销证书的特征信息。当吊销标识字段同时记录分类信息和特征信息时,按照“分类信息|被吊销证书的特征信息”的格式记录。
[0046] 需要说明的是,当证书的特征信息和CRL中记录的被吊销证书的特征信息为哈希值时,接收端和证书吊销服务器所使用的哈希算法要保持一致。具体的,接收端在102步骤对接收到的证书进行哈希计算时所使用的哈希算法,和证书吊销服务器在304步骤对被吊销的证书进行哈希计算时所使用的哈希算法,保持一致。
[0047] 可选的,证书吊销服务器在第304步执行的提取证书信息的方法,还可以由车联网服务器在第303步发送证书吊销请求之前执行,即作为第303步的替代方案,车联网服务器接收到包含证书的车联网消息,根据本地策略进行判断和决策,确定需要对证书进行吊销,车联网服务器提取证书的分类信息和特征信息,发送提取的证书的分类信息和特征信息到证书吊销服务器,请求证书吊销服务器吊销该证书。
[0048] 如上结合图4中的步骤描述了在CRL中新增被吊销证书的流程。由于被吊销证书的记录是不断变化的,因此车联网通信单元从证书吊销服务器获取CRL后,还需要从证书吊销服务器获取CRL变化的信息,并更新本地存储的CRL。
[0049] 图5所示为本发明实施例提供的车联网通信单元获取CRL的方法流程示意图。车联网通信单元可以根据预设的触发条件主动向证书吊销服务器请求获取CRL,如401步骤所示,还可以直接由证书吊销服务器根据预设的策略或规则向车联网通信单元广播或单播CRL,即402消息即可以是401消息的响应,也可以是证书吊销服务器主动推送的消息。需要说明的是,车联网通信单元还可以间接从其它车联网通信单元获取CRL,如403和404步骤所示,车联网通信单元2可以从已获取CRL的车联网通信单元1获取CRL,404消息可以是403请求的响应,也可以是车联网通信单元1主动通过广播或单播方式向车联网通信单元2推送的CRL。
[0050] 车联网通信单元主动请求获取CRL的触发条件可以是事件触发,如车辆点火启动,也可以是周期触发,如周期定时器超时,还可以是特定条件触发,如到达预订区域或预订速度阈值等。
[0051] 证书吊销服务器或车联网通信单元在402或404消息中携带的CRL可以是全量CRL,也可以是差分CRL。所谓全量CRL包含证书吊销服务器吊销的所有证书的信息,差分CRL包括新增CRL和删除CRL两个列表,其中新增CRL仅包括一个时间段内,时间段结束时间点对应的全量CRL相比时间段开始时间点对应的全量CRL,新增的被吊销证书的信息,删除CRL仅包括一个时间段内,时间段结束时间点对应的全量CRL相比时间段开始时间点对应的全量CRL,减少的被吊销证书的信息。如果采用差分更新的方案,则车联网通信单元在首次获取全量CRL后,后续在402或404消息中获取到的是差分CRL,车联网通信单元需要根据新增CRL和删除CRL两个列表,刷新本地保存的CRL;如果采用全量更新的方案,车联网通信单元在402或404消息中获取到的是全量CRL,车联网通信单元将接收到的全量CRL直接替换本地保存的CRL。
[0052] 如上所述实施例描述了证书吊销服务器如何生成包含被吊销证书分类信息和特征信息的CRL,车联网通信单元如何从证书吊销服务器获取包含被吊销证书分类信息和特征信息的CRL,以及车联网通信单元在收到消息时,如何提取消息中证书的分类信息和特征信息,并与CRL中的记录进行匹配,以确定消息中携带的证书是否被吊销的方法。
[0053] 由于车联网终端的数量巨大,车联网系统中颁发的证书数量也是海量的,相应的,被吊销证书的数量也相对较大。为降低保存被吊销证书的信息对车联网通信单元存储空间的影响,在上述CRL方案之外,本申请实施例进一步提出证书吊销指纹库方案。证书吊销指纹库为初始化为0的长度为N的二进制数组,证书吊销指纹库中记录了被吊销证书的指纹信息,被吊销证书的指纹信息为所述长度为N的二进制数组中取值为1的比特位信息,N为大于0的正整数。被吊销证书的指纹信息可以通过多种算法对被吊销证书进行计算而获得,如可以采用哈希计算获得被吊销证书的指纹信息。
[0054] 如图6所示,假设证书吊销指纹库为初始化为0,长度为16的二进制数组。在图4所示流程的304步骤,当证书吊销服务器需要记录一个被吊销证书的时候,证书吊销服务器使用3个哈希函数,分别对被吊销证书进行哈希计算和映射(如用哈希计算的结果对指纹库二进制数组的长度取余),每次映射都会产生一个数值,每个数值对应二进制数组的一个比特位,将对应的比特位置为1,这三个取值为1的比特位信息就是该被吊销证书的指纹信息。
[0055] 图2所示的方法流程中,接收端收到包含证书的车联网消息,计算证书的指纹信息,并在证书吊销指纹库中进行匹配,如果有相同的指纹信息,则该证书已被吊销。需要说明的是,证书的格式可以是本申请实施例中所述的包含分类信息的格式,也可以是其它格式。
[0056] 图5所示的方法流程中,车联网通信单元在402或404步骤获取到的是证书吊销指纹库。证书吊销指纹库可以是包含全部被吊销证书指纹信息的全量证书吊销指纹库,也可以是差分证书吊销指纹位置库,差分证书吊销指纹位置库记录了一个时间段内,时间段结束时间点对应的全量证书吊销指纹库相比时间段开始时间点对应的全量证书吊销指纹库,发生变化的比特位信息。
[0057] 比如,证书吊销服务器中记录的全量证书吊销指纹库中包含两个被吊销证书A和B的指纹,指纹长度为10,A的指纹为0010010001,B的指纹为0001110000,那么全量证书吊销指纹库为0011110001。如果在304步骤要新增一个被吊销证书C,假设C的指纹为1100001000,则与总体指纹库0011110001对比,发现从右数第4比特,第9比特和第10比特的取值由0变为1,则差分证书吊销指纹位置库中记录第4比特,第9比特和第10比特的取值发生变化,具体记录方式本申请不进行限定,可以以二进制数组的形式,将发生变化的比特位置为1,也可以以枚举或数组的形式,只记录发生变化的比特位的序号。如果要从全量证书吊销指纹库中将B证书的指纹删除,则更新后的全量证书吊销指纹库为0010010001,发生变化的比特位为从右数第6比特位和第7比特位,则差分证书吊销指纹位置库中记录第6比特和第7比特的取值发生变化。
[0058] 车联网通信单元如果收到差分证书吊销指纹位置库,则根据其中记录的比特位信息,将本地保存的证书吊销指纹库中对应的比特位的取值取反,就可以获得最新的证书吊销指纹库。如果收到全量证书吊销指纹库,则直接替换本地保存的证书吊销指纹库。
[0059] 由于证书吊销指纹库中的1没有和特定的被吊销证书进行绑定,因此车联网通信单元在第102步骤进行证书验证的时候,可能会存在误判。如在证书吊销指纹库中记录的指纹信息较多的情况下,证书吊销指纹库中,一个待确认证书的指纹信息所对应的比特位可能都已被置为1,而这些比特位并不一定对应同一个被吊销证书的指纹。
[0060] 作为发送端的车联网通信单元,在101步骤发送消息前,为防止接收端误判而丢弃自己发送的消息,首先使用本地保存的证书吊销指纹库,自行验证证书的指纹信息是否在证书吊销指纹库中有匹配的记录,确保在消息中携带一个在证书吊销指纹库中没有匹配记录的证书,如图7中100步骤所示。一般情况下,证书颁发服务器会一次颁发给车联网通信单元多个证书,车联网通信单元在这些证书中,选用一个在证书吊销指纹库中没有匹配记录的证书。如果本地没有可用的证书,则车联网通信单元重新向证书颁发服务器申请证书。
[0061] 作为接收端的车联网通信单元,在102步骤,如果确定消息中证书的指纹信息在证书吊销指纹库中存在,为了防止误判,请求证书吊销服务器验证证书,如图8中103步骤所示,请求消息中包含证书或证书的信息。由于证书吊销服务器不仅保存了被吊销证书的指纹信息,还保存了CRL等信息,因此证书吊销服务器的验证结果更加准确。接收端的车联网通信单元最终以证书吊销服务器在104步骤中返回的验证结果为准,对V2X消息进行处理。如果证书吊销服务器返回的验证结果为未吊销,则接收端继续处理V2X消息;如果证书吊销服务器返回的验证结果为已吊销,则接收端丢弃V2X消息。
[0062] 本申请实施例中所述的证书吊销列表方案和证书吊销指纹库方案,都是为了提升车联网通信中,车联网终端或车联网通信单元验证证书的效率和速度,以提升消息处理的实时性,并降低验证证书对车联网终端或车联网通信单元性能的影响。相比证书吊销列表方案,证书吊销指纹库方案对车联网终端或车联网通信单元存储空间的要求更低,车联网终端或车联网通信单元保存证书吊销指纹库只需要占用很少的存储空间,但另一方面,证书吊销指纹库方案可能存在一定的误判概率,因此除了接收端进行证书的验证,还需要额外的处理以提升证书验证的准确性。
[0063] 需要说明的是,证书吊销列表方案和证书吊销指纹库方案可以各自独立应用,也可以组合应用。两种方案组合应用时,证书的格式采用证书吊销列表方案中描述的包含分类信息的格式,证书吊销服务器同时保存CRL和证书吊销指纹库,车联网通信单元只保存证书吊销指纹库。两种方案组合应用的场景下:
[0064] 304步骤,证书吊销服务器同时根据证书吊销列表方案和证书吊销指纹库方案分别刷新CRL和证书吊销指纹库;
[0065] 402步骤或404步骤,车联网通信单元只获取并保存证书吊销指纹库,以减少对存储空间的消耗;
[0066] 102步骤,车联网通信单元采用证书吊销指纹库方案对证书进行验证;
[0067] 103-104步骤,为提高验证的准确性,车联网通信单元请求证书吊销服务器对证书进行验证,证书吊销服务器使用CRL列表对证书进行快速验证。
[0068] 上述主要从方法流程的角度对本发明实施例提供的方案进行了介绍。可以理解的是,车联网通信单元、车联网服务器和证书吊销服务器等实体为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。另外,本申请实施例中所描述的车联网服务器和证书吊销服务器可以是分离的物理设备,也可以是同一个物理设备中的不同逻辑功能实体,即本申请实施例中车联网服务器和证书吊销服务器所具备的功能可以在同一个物理设备中实现。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的方法流程,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0069] 例如,如上实施例中的车联网通信单元、车联网服务器和证书吊销服务器均可以由如图9所示的装置来实现。
[0070] 装置500包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
[0071] 处理器501可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
[0072] 通信总线502可包括一通路,在上述组件之间传送信息。
[0073] 通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。
[0074] 存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
[0075] 其中,存储器503用于存储执行本发明方案的应用程序代码,并由处理器501来控制执行。处理器501用于执行存储器503中存储的应用程序代码,从而实现本专利方法中车联网通信单元、车联网服务器和证书吊销服务器的功能。
[0076] 在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
[0077] 在具体实现中,作为一种实施例,装置500可以包括多个处理器,例如图6中的处理器501和处理器508。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
[0078] 在具体实现中,作为一种实施例,装置500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。
[0079] 当上述装置实现车联网服务器或证书吊销服务器的功能时,装置500可以是一个通用服务器或者是一个专用服务器。
[0080] 当上述装置实现本申请实施例中车联网通信单元的功能时,装置500可以是集成在车辆中的车载盒子(Telematics BOX,T-Box)或多域控制器(Multi-Domian Controller,MDC)。可选的,可选的,装置500还可以是集成在车辆中的芯片,那么通信接口504的功能/实现过程还可以通过管脚或电路等来实现;所述存储器为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是位于所述芯片外部的存储单元。
[0081] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0082] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,本领域技术人员应该理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。在权利要求中,“包括”一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能结合起来产生良好的效果。