基于用户区分的数据安全传输协商方法与流程

文档序号:21038039发布日期:2020-06-09 20:31阅读:182来源:国知局
基于用户区分的数据安全传输协商方法与流程

本发明属于计算机网络安全领域,涉及客户/服务器基于双向身份认证技术的应用,特别涉及服务器端使用apache+openssl部署的一种基于用户区分的数据安全传输协商方法。



背景技术:

信息的安全传输是计算机网络信息安全中的一部分,主要涉及密码学的知识。安全传输主要解决三个部分的问题:信息的机密性、真实性和完整性。所有连接到互联网的设备都使用安全套接字层(securesocketlayer,ssl)和传输层安全(transportlayersecurity,tls)协议对信息传输进行安全保护。ssl/tls在网络层次上位于传输层和应用层之间,使用ssl/tls协议的http协议也叫做https协议。

使用https协议前,需要在服务器端需进行相关的部署,一种典型的部署方案是apache+openssl。openssl是一个开放源代码的ssl/tls实现。包括三个主要的功能部分:ssl协议库、应用程序和密码算法库,用户可以基于openssl实现安全的信息系统设计。apache服务器是世界上使用最为广泛的web服务器,可通过mod_ssl模块与openssl交互,实现客户端与web服务器间信息的安全传输。为了在客户和服务器间使用https协议进行安全通信,必须先在客户和服务器间建立ssl/tls连接。ssl/tls连接的建立首先要确认客户端、服务器端的身份,可以使用单向身份认证或双向身份认证技术,两种身份认证技术均依赖数字证书。数字证书的内容包括:公钥用户信息、电子签证机关的信息、公钥、权威机构的数字签名和有效期等。单向身份认证中客户端需要确认服务器端的数字证书,而在双向身份认证中,服务器端还需要进一步确认客户端的数字证书。其次客户端和服务器端协商用于加解密数据的ssl加密套件,最后使用协商好的ssl加密套件成功建立ssl/tls连接。

相比于传统的信息传输,基于ssl/tls的安全信息传输需要引入额外的控制开销,安全控制开销与安全控制的强度是紧密相关的,较低的控制开销往往意味着低强度的安全控制,同样,高强度的安全控制需要较高的控制开销。为了在安全控制开销和安全控制强度间达到平衡,可针对用户类型提供多种级别的安全信息传输,但是目前的apache服务器并没有对安全信息传输的分级控制提供相关的支持。因此,根据用户的类型提供不同强度的安全信息传输已成为低功耗服务器和绿色计算必须要解决的关键问题。



技术实现要素:

针对上述现有技术存在的缺陷和不足,本发明的目的在于,提供一种基于用户区分的数据安全传输协商方法。本发明对客户端无任何特殊需求,用户也无需改变原有的使用习惯,只需服务器端设置用户的类别,便可高效灵活地实现基于用户区分的数据安全传输。

本发明所采用的技术方案包括以下步骤:

基于用户区分的数据安全传输协商方法,其特征在于,包括以下步骤:

步骤1.用户在服务器端成功注册后,允许其访问服务器上的资源;

步骤2.用户通过客户端访问服务器,客户端发送其支持的加密套件列表,服务器端获取客户端的连接信息;

步骤3.客户端发送用户数字证书,服务器从接收到的用户数字证书中获取用户信息,进一步确定用户的安全传输级别,并根据用户的安全传输级别更新与客户端协商的加密套件列表;

步骤4.服务器端向客户端发送重新协商指令,重新与客户端协商建立ssl安全连接;服务器端跳转到步骤2等待接收客户端的重新协商;

步骤5.根据用户的安全传输级别,服务器端与客户端成功建立ssl安全传输。

作为本发明的进一步改进,步骤1中,用户注册的具体步骤如下:

1.1)每个用户对应一个合法的数字证书,用u=(n,e,s,v)表示一个用户,其中n、e、s和v分别表示数字证书中的用户名称、电子邮件、签发单位信息和证书有效期;

1.2)用z={1,2,…,t}表示服务器端支持的安全传输级别的集合,其中t表示最高的安全传输级别。对于任意的i∈z,用表示安全传输级别为i的所有用户的集合,ui,m表示安全传输级别为i的用户集合中的第m个用户,m∈{1,2,…,ni},ni表示安全传输级别为i的所有用户的数量;

1.3)服务器端使用特定的规则确定用户u所属的安全传输级别i,并将其加入到用户组gi中,更新后的其中表示更新前的用户组gi;

1.4)对于任意的用户u∈gi,如果将u的安全传输级别调整为j,j∈z,则需要同时更新gi和gj,更新后

作为本发明的进一步改进,对于任意的用户u∈gi,若要将该用户从服务器端删除,则需要更新gi,更新后

作为本发明的进一步改进,步骤2具体包括以下步骤:

2.1)ssl/tls位于tcp层之上,在客户端与服务器端建立ssl安全连接期间,客户端与服务器端之间的tcp连接保持不变,用c=(ip,port)表示ssl安全连接建立阶段的客户端信息,其中ip和port分别表示客户端的ip地址和tcp端口信息;

2.2)对于任意的i∈z,用表示等待重新协商的安全传输级别为i的所有客户端连接的集合,ci,k表示安全传输级别为i的客户端连接集合中的第k个客户端连接,k∈{1,2,…,mi},mi表示安全传输级别为i的所有客户端连接的数量。

作为本发明的进一步改进,步骤3具体包括以下步骤:

3.1)从客户端发送的数字证书中提取用户信息,用u表示;

3.2)若对于任意gi,都有说明用户u未在服务器端注册,属于未知用户,跳转到用户注册提示页面,并终止ssl安全连接的建立;

3.3)若u∈gt,则用户u可使用最高的安全传输级别t,若对于任意oi,都有则当前客户端是第一次与服务器端建立ssl安全连接,直接跳转到步骤5完成ssl安全连接的建立;

3.4)若存在一个oi,满足c∈oi,则表示当前客户端是与服务器端重新协商的安全传输级别为i的用户,更新若u∈gi,则直接跳转到步骤5完成ssl安全连接的建立。

3.5)若存在一个gi,满足u∈gi,则用户u的安全传输级别为i,更新表示客户端c的安全传输级别需要重新协商为第i级;

3.6)用li表示安全传输级别i所对应的ssl加密套件集合,ni={l|l∈lj,i≥j,j∈z}表示安全传输级别为i的用户使用的ssl加密套件集合;用ec和es分别表示客户端和服务器端所支持的ssl加密套件集合,用e={e|e∈ni∧e∈ec∧e∈es}表示适用于当前用户u的ssl加密套件集合;

3.7)若用户u对应的ssl加密套件集合e为空,表示该用户为黑名单用户,更新后,跳转到用户注册提示页面,并终止ssl安全连接的建立;

3.8)若ssl加密套件集合e不为空,选择emax∈e作为正在建立的ssl安全连接的ssl加密套件,其中emax表示e中安全强度最大的ssl加密套件。

本发明具有以下有益效果:

本发明的基于用户区分的数据安全传输协商方法,使用双向身份认证技术,通过客户端发送的数字证书确定用户的身份信息,根据用户的类别提供不同级别的数据安全传输方法。首先使用用户的数字证书在服务器端进行注册,服务器端根据特定的规则将用户划分为不同的类别。其次在客户端与服务器端协商安全连接的过程中,根据客户端连接信息和用户信息,选择一种最适合当前用户的ssl加密套件,并要求客户端重新与服务器端进行安全连接的协商。最后在客户端和服务器端间成功建立一条ssl安全连接,在保证数据安全传输的同时降低了服务器端加解密的计算开销。本发明对客户端无任何特殊需求,用户也无需改变原有的使用习惯,只需服务器端设置用户的类别,便可高效灵活地实现基于用户区分的数据安全传输协商。

附图说明

图1为本发明基于用户区分的数据安全传输协商流程。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

下面结合附图对本发明的实施作进一步详细说明,但本发明的保护范围不局限于以下所述。

如图1所示,基于用户区分的数据安全传输协商方法的具体过程包含以下5个主要步骤:

步骤1,用户管理,用户只有在服务器端成功注册后才有权限访问服务器上的资源,用户管理包括用户注册和更新用户类别。具体步骤如下:

(1-1)每个用户都有一个合法的数字证书,用u=(n,e,s,v)表示一个用户,其中n、e、s和v分别表示数字证书中的用户名称、电子邮件、签发单位信息和证书有效期。

(1-2)用z={1,2,…,t}表示服务器端支持的安全传输级别的集合,其中t表示最高的安全传输级别。对于任意的i∈z,用表示安全传输级别为i的所有用户的集合,ui,m表示安全传输级别为i的用户集合中的第m个用户,m∈{1,2,…,ni},ni表示安全传输级别为i的所有用户的数量。

(1-3)新用户注册。服务器端使用特定的规则确定用户u所属的安全传输级别i,并将其加入到用户组gi中,更新后的其中表示更新前的用户组gi。

(1-4)用户级别调整。对于任意的用户u∈gi,如果将u的安全传输级别调整为j,j∈z,则需要同时更新gi和gj,更新后gi=gi-{u},gj=gj∪{u}。

(1-5)删除已注册用户。对于任意的用户u∈gi,若要将该用户从服务器端删除,则需要更新gi,更新后gi=gi-{u}。

例如假设服务器端目前已注册用户数为0,此时有4个新用户要进行注册,分别用a、b、c和d表示。

(1)从用户的数字证书中可以得到各个用户的信息,分别用ua、ub、uc和ud表示。

(2)服务器端支持的安全传输级别集合z={1,2,3,4},即最高的安全传输级别是4级。

(3)服务器端根据特定的规则将用户a、b、c和d的类别分别确定为1级、2级、3级和4级。则当这4个用户完成注册后,用户组分别为g1={ua}、g2={ub}、g3={uc}和g4={ud}。

步骤2,服务器端获取客户端的连接信息。具体步骤如下:

2.1)ssl/tls位于tcp层之上,在客户端与服务器端建立ssl安全连接期间,客户端与服务器端之间的tcp连接保持不变,用c=(ip,port)表示ssl安全连接建立阶段的客户端信息,其中ip和port分别表示客户端的ip地址和tcp端口信息;进一步读取用户数字证书得到当前用户u;

2.2)对于任意的i∈z,用表示等待重新协商的安全传输级别为i的所有客户端连接的集合,ci,k表示安全传输级别为i的客户端连接集合中的第k个客户端连接,k∈{1,2,…,mi},mi表示安全传输级别为i的所有客户端连接的数量;

例如上述4个用户通过不同的客户端同时访问服务器,客户端的ip地址和tcp端口信息用c=(ip,port)。

(1)在服务器端可得到4个客户端信息,分别用ca、cb、cc和cd表示。

(2)等待重新协商的安全传输级别为1级、2级、3级和4级的所有客户端连接集合分别为o1={}、o2={}、o3={}和o4={}。

步骤3,获取用户信息,确定用户的安全传输级别。具体步骤如下:

3.1)从客户端发送的数字证书中提取用户信息,用u表示;

3.2)若对于任意gi,都有说明用户u未在服务器端注册,属于未知用户,跳转到用户注册提示页面,并终止ssl安全连接的建立;

3.3)若u∈gt,则用户u可使用最高的安全传输级别t,若对于任意oi,都有则当前客户端是第一次与服务器端建立ssl安全连接,直接跳转到步骤5完成ssl安全连接的建立;

3.4)若存在一个oi,满足c∈oi,则表示当前客户端是与服务器端重新协商的安全传输级别为i的用户,更新若u∈gi,则直接跳转到步骤5完成ssl安全连接的建立。

3.5)若存在一个gi,满足u∈gi,则用户u的安全传输级别为i,更新oi=oi∪{c},表示客户端c的安全传输级别需要重新协商为第i级;

3.6)用li表示安全传输级别i所对应的ssl加密套件集合,ni={l|l∈lj,i≥j,j∈z}表示安全传输级别为i的用户使用的ssl加密套件集合;用ec和es分别表示客户端和服务器端所支持的ssl加密套件集合,用e={e|e∈ni∧e∈ec∧e∈es}表示适用于当前用户u的ssl加密套件集合;

3.7)若用户u对应的ssl加密套件集合e为空,表示该用户为黑名单用户,更新oi=oi-{c}后,跳转到用户注册提示页面,并终止ssl安全连接的建立;

3.8)若ssl加密套件集合e不为空,选择emax∈e作为正在建立的ssl安全连接的ssl加密套件,其中emax表示e中安全强度最大的ssl加密套件。

实施例1

(1)通过接收客户端发送的用户数字证书,可提取到使用该客户端的用户信息,分别用ua、ub、uc和ud表示,即用户a、b、c和d分别通过客户端ca、cb、cc和cd访问服务器。

(2)确定4个用户所属的用户组别,可得ua∈g1,ub∈g2,uc∈g3,ud∈g4,进一步可知用户d可使用最高的安全传输级别(4级),且直接跳转到步骤5完成ssl安全连接的建立。

(3)用户a、b和c的用户级别均小于4级,需要更新对应的oi,具体分别为o1={}∪{ca}={ca},o2={}∪{cb}={cb},o3={}∪{cc}={cc}。

(4)用li表示安全传输级别i所对应的ssl加密套件集合,令l1={},

l2={tls_ecdhe_ecdsa_with_chacha20_poly1305_sha256,tls_ecdhe_rsa_with_chacha20_poly1305_sha256,…},

l3={tls_ecdhe_ecdsa_with_aes_128_gcm_sha256,tls_ecdhe_rsa_with_aes_128_gcm_sha256,…},

l4={tls_ecdhe_ecdsa_with_aes_256_gcm_sha384,tls_ecdhe_rsa_with_aes_256_gcm_sha384,…}。

客户端支持的加密套件用ec表示,若客户端支持的ec均相同,并有服务器端支持的加密套件用es表示,有

其中,l1代表最弱加密套件集合,l2代表流加密套件集合,l3代表强度为128位的块加密套件集合,l4代表加密为256位的块加密套件集合,分别代表客户端和服务器端支持的除l1、l2、l3和l4之外的加密套件集合。由ni={l|l∈lj,i≥j,j∈z}可确定各个安全传输级别对应的加密套件集合,分别为n1=l1,n2=l2∪l1,n3=l3∪l2∪l1,n4=l4∪l3∪l2∪l1。进一步由e={e|e∈ni∧e∈ec∧e∈es}可得用户a、b和c的加密套件集合分别为n1、n2和n3。

(5)对于用户a,其对应的e为空集合,表示用户a为黑名单用户,跳转到用户注册提示页面,并终止ssl安全连接的建立。

(6)对于用户b和c,选择emax∈e作为正在建立的ssl安全连接的ssl加密套件,其中emax表示e中安全强度最大的ssl加密套件。

步骤4,客户端发送重新协商指令,客户端在接收到服务器端发送的重新协商指令后,重新与服务器端协商建立ssl安全连接。服务器端跳转到步骤2等待接收客户端的重新协商。

例如4个用户中,只有用户b和c需要进行重新协商,此处简要给出重新协商后服务器端步骤2和步骤3的过程:

(1)服务器端得到用户b和c的客户端信息和用户信息,分别用cb、cc和ub、uc表示。

(2)服务器端的o1={},o2={cb},o3={cc},o4={}。

(3)对于cb和cc,可知cb∈o2,cc∈o3,即cb和cc的用户安全传输级别分别为2级和3级,同时更新o2和o3,有o2=o2-{cb}={},o3=o3-{cc}={}。进一步确认若ub∈g2,uc∈g3,则直接跳转到步骤5完成重新协商后ssl安全连接的建立。

步骤5,根据用户b、c和d的安全传输级别,在客户端和服务器端成功建立ssl安全连接。

通过上述实施实例可以看出,使用基于用户区分的数据安全传输协商方法,用户a确定为黑名单用户,终止与服务器端建立安全连接,用户d为安全传输级别最高的用户,直接与服务器端建立ssl安全连接,用户b和c经过重新协商,分别与服务器端建立安全传输级别为2级和3级的ssl安全连接,最终实现了基于用户区分的数据安全传输。

故本发明方法使用双向身份认证技术,通过客户端发送的数字证书确定用户的身份信息,根据用户的类别提供不同级别的数据安全传输方法。首先使用用户的数字证书在服务器端进行注册,服务器端根据特定的规则将用户划分为不同的类别。其次在客户端与服务器端协商安全连接的过程中,根据客户端连接信息和用户信息,选择一种最适合当前用户的ssl加密套件,并要求客户端重新与服务器端进行安全连接的协商。最后在客户端和服务器端间成功建立一条ssl安全连接,在保证数据安全传输的同时降低了服务器端加解密的计算开销。本发明对客户端无任何特殊需求,用户也无需改变原有的使用习惯,只需服务器端设置用户的类别,便可高效灵活地实现基于用户区分的数据安全传输。

应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施例和许多应用对本领域技术人员来说都将是显而易见的。因此,本教导的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。出于全面之目的,所有文章和参考包括专利申请和公告的公开都通过参考结合在本文中。在前述权利要求中省略这里公开的主题的任何方面并不是为了放弃该主体内容,也不应该认为申请人没有将该主题考虑为所公开的发明主题的一部分。

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