利用MQTT和SSL实现双向CA安全授权的方法与流程

文档序号:11207241阅读:2334来源:国知局
利用MQTT和SSL实现双向CA安全授权的方法与流程

本发明涉及ca安全授权技术领域,具体涉及一种利用mqtt和ssl实现双向ca安全授权的方法。



背景技术:

mqtt(messagequeuingtelemetrytransport):

由ibm开发的一个即时通讯协议,使用发布/订阅消息模式,提供一对多的消息发布。使用tcp/ip提供网络连接。有三种消息发布服务质量:至多一次,至少一次,只有一次。

ssl(securesocketslayer安全套接层):

提供网络通信安全及数据完整性的一种安全协议。tls与ssl在传输层对网络连接进行加密。

衍生算法:

采用用户的唯一的硬件设备id通过衍生算法衍生成用户的个性密钥,个性密钥被分散保存到终端。

设备证书:

根据用户设备id信息,运营商信息生成设备证书,证书由服务器私钥进行签名。

有线电视网络是未来社会发展中最重要的网络资源.处于世纪之交的有线电视网未来面对的是数字化,网络化,综合信息交互化的机遇和挑战;正处于从模拟转向数字,单向广播朝向双向互动转变;基本业务向扩展增值服务的拓展.数字化是调整传输信息的工具,网络化是达到信息资源全民共享,信息化就是开展增值扩展服务.其中有条件接收(ca)是达到这个目标的技术基础,也是我国文凭电视向高层次发展的一条必经之路。有条件接收是一种技术手段,它只容许被授权的用房使用某一业务,未经授权的用户不能使用这一业务.它可以确保有线电视增值业务的正常收益.有条件接收系统(cas)正是实现功能的系统.计算机代数。ca也被用在有线数字电视行业中的加密,对流媒体文件进行ca加密,并需要进行解密后用户才能正常收看,以此来对用户进行管理,并防止了信号的私自盗用。

为了实现ca的双向功能,需要在用户和服务器之间建立一种安全可靠的双向通讯链路,同时需要保证用户和服务器数据安全。



技术实现要素:

本发明克服了现有技术的不足,提供一种利用mqtt和ssl实现双向ca安全授权的方法。

为解决上述的技术问题,本发明采用以下技术方案:

一种利用mqtt和ssl实现双向ca安全授权的方法,所述的方法包括以下步骤:

授权推送流程:

服务端将用户的授权划分不同类型,分别为每种类型的授权设计一个主题,针对用户发送的授权主题设计为:

/userid/{用户id}/{授权类型},

其中消息体内容为授权内容;

mqtt支持定义通配符主题,对于这类主题,终端订阅的主题为:

/userid/{用户id}#

其中,用户id为当前用户自己的id,#表示订阅所有以/userid/{用户id}开头的主题;

链路安全认证过程:

采用标准的ssl双向认证流程,由终端公钥证书验证服务端合法性,由服务器使用终端对应的公钥证书验证客户端合法性;

数据安全性保护:

由设备id和运营商信息为每个设备衍生一个不同密钥,出厂时将该密钥写入到设备中,服务端和该设备通讯的数据采用该密钥进行加密,同时进行签名。

更进一步的技术方案是所述的授权推送流程还包括:

步骤1,为设备的每个授权定义一个序号,每个设备拥有自己的授权序号,这个序号在每次授权发生变更时加1;

步骤2,系统定义一个公共的主题,用于终端收到每类授权时上报自己的这类授权的序号;

步骤3,服务器为每个设备所有待推送授权存放到一个队列中;

步骤4,服务器首先推送一个授权,等待接收该终端上报这个授权的版本;

步骤5,服务器收到终端上报的该授权的序号时,如果授权不一致,再推送一次该授权;

步骤6,进行下一个授权的推送,形成一个迭代的过程,直到把所有的授权推送完成。

更进一步的技术方案是还包括:当服务器发现终端某个授权序号和服务端不一致时,触发该授权推送流程。

更进一步的技术方案是所述的数据安全性保护步骤中,出厂时将所述密钥通过烧写工具写入到otp或flash中。

更进一步的技术方案是如果将所述密钥写入到flash中,则采用分散算法将所述密钥分散为多组数据,然后分别存放到不同的地方,使用时通过还原算法还原出密钥使用。

与现有技术相比,本发明实施例的有益效果之一是:本发明采用mqtt作为通信基础,采用双向ssl保证链路安全,使用设备个性密钥保证数据安全来实现ca双向安全授权功能。

附图说明

图1为本发明一个实施例中一种触发授权推送流程图。

图2为本发明一个实施例中另一种触发授权推送流程图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

下面结合附图及实施例对本发明的具体实施方式进行详细描述。

在下面的详细描述中,出于解释的目的描述了许多具体描述以便能够彻底理解所公开的实施方案,然而,很明显一个或多个实施方式可以在不使用这些具体描述的情况下实施,在其他实例中,示意性地显示已知结构和装置,以便简化附图。

根据本发明的一个实施例,本实施例公开一种利用mqtt和ssl实现双向ca安全授权的方法,具体的,该利用mqtt和ssl实现双向ca安全授权的方法包括以下步骤:

授权推送流程:

服务端将用户的授权划分几种类型,分别为每种类型的授权设计一个主题,针对用户发送的授权主题设计为:

/userid/{用户id}/{授权类型}

其中消息体内容为授权内容。

mqtt本身是支持定义通配符主题的,对于这类主题,终端订阅的主题为:

/userid/{用户id}#

其中用户id为当前用户自己的id,#表示订阅所有以/userid/{用户id}开头的主题,这样设计后只要服务端向/userid/{用户id}/{授权类型}主题发送信息,该设备(且只有该设备,其他设备不会订阅其他设备的主题)立即就能收到发送的授权数据。从而实现授权过程。

进一步的,对于mqtt服务器,会持久化最后一条消息,这样会导致一个问题,当一个终端设备长期没有开机,在这个时期中可能针对该设备有多条授权,如果把所有的授权都发送给mqtt服务器会导致中间其他授权丢失。为了解决问题我们进行了如下设计:

步骤1,为设备的每个授权定义了一个序号,每个设备拥有自己的授权序号,这个序号在每次授权发生变更时加1。

步骤2,系统定义了一个公共的主题,用于终端收到每类授权时上报自己的这类授权的序号。

步骤3,服务器为每个设备所有待推送授权存放到一个队列中

步骤4,服务器首先推送一个授权,等待接收该终端上报这个授权的版本。

步骤5,服务器收到终端上报的该授权的序号,如果授权不一致,再推送一次该授权(出现这种情况是上一个授权推送的过程中用户的授权又发生了变更)。

步骤6,进行下一个授权的推送,形成一个迭代的过程,直到把所有的授权推送完成。

另外:终端上线时会主动上报一次所有授权的序号,服务器发现终端某个授权序号和服务端不一致触发该授权推送流程,如图1和图2所示。

链路安全认证过程:

采用标准的ssl双向认证流程,由终端公钥证书验证服务端合法性,由服务器使用终端对应的公钥证书验证客户端合法性。

数据安全性保护:

由设备id和运营商信息为每个设备衍生一个不同key,出厂时将该key(烧写工具,该工具不会对外提供)写入到设备中(otp或flash),如果写入到flash中的话采用分散算法将key分散为多组数据,然后分别存放到不同的地方,使用时通过还原算法还原出密钥使用。服务端和该设备通讯的数据采用该密钥进行加密,同时进行签名。

在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一个实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。

尽管这里参照发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1