基于Diffie-Hellman协议的iSCSI协议安全增强方法与流程

文档序号:14304978阅读:225来源:国知局
基于Diffie-Hellman协议的iSCSI协议安全增强方法与流程

本发明涉及数据安全技术领域,特别涉及一种基于diffie-hellman协议的iscsi协议安全增强方法。



背景技术:

当前,iscsi协议多采用chap认证协议来对存储资源进行访问控制。但在chap认证中,用户名、密码是以明文形式存储在目标端,存在被内部人员或入侵黑客非法获取的风险。此外,该认证方法采用周期性认证来抵御信道插入攻击,但在选择具体周期间隔时通常会遇到困难,周期间隔过长会给入侵者留下机会;周期间隔过短会增加认证双方的计算量。与此同时,当要针对每个始发端实现细粒度访问控制时,管理员需要为每个始发端手动创建一个用户名、密码,这种集中授权方式会极大增加系统管理复杂度。此外,当发现始发端被人为操纵非法窃取数据时,系统无法立即收回始发端对于已登陆存储资源的访问权限。

为了增强iscsi协议中的访问控制管理,当前普遍做法是对iscsi协议中支持的访问控制机制进行扩展。文献[1]朱坷.iscsi存储系统中的安全性研究[d].上海:上海交通大学硕士学位论文,2007:18-22.采用一种由公钥密钥体制改进的kerberos协议扩展了iscsi协议中支持的访问控制机制。文献[2]刘明.基于iscsi协议的网络存储安全技术研究[d].郑州:解放军信息工程大学硕士学位论文,2007:25-34.为iscsi协议扩展了一种基于权限证书的访问控制机制。上述两种为iscsi协议扩展的访问控制机制虽然解决了chap认证中存在的口令泄露问题,但这两种机制在目标端都需要进行多次加解密操作才能判断是否允许始发端的登陆请求。此外,这两种机制均无法收回始发端对于已登陆存储资源的访问权限,并且都难以针对每个始发端实现细粒度访问控制。



技术实现要素:

本发明的目的在于提供一种基于diffie-hellman协议的iscsi协议安全增强方法,用于解决上述现有技术的问题。

本发明的目的在于提供一种iscsi协议安全增强方法,其中,包括:始发端将自己的公钥证书、请求以及数字签名发送给认证服务器;认证服务器通过对始发端进行身份认证以及对请求进行授权;认证服务器将始发端公钥对证书私有部分加密后的密文与证书由公开部分一同发送给请求的始发端;始发端计算消息认证码,并与证书由公开部分一同发送指定的目标端;目标端收到认证码和证书由公开部分后对始发端请求进行授权认证;目标端根据授权认证结果响应始发端请求;定期逐个刷新所使用的共享密钥。

根据本发明的iscsi协议安全增强方法的一实施例,其中,认证服务器通过对始发端进行身份认证以及对请求进行授权包括:

①利用始发端的公钥kpub对数字签名进行解密:其中,表示用密钥kpub对消息sign进行解密;

②判断plain是否等于x.509_cred|req,若相同,则身份认证通过;

③根据uid在访问控制列表中查找其是否有权登陆req中指定的资源,若认定为有权登陆,认证服务器需要为始发端准备权能证书cred,该证书由公开部分和私有部分组成,私有部分由公开部分确定,并如下赋值运算:

pub_cred=req|uid|cid|expiry;

akey=pri_part=hmack(pub_cred);

cred=pub_cred|pri_cred;

其中,

uid为公钥证书中指定的始发端用户名;

cid为权能证书的唯一性标识符;

expiry为权能证书的有效截止时间;

hmac为依赖密钥的哈希函数;

k为认证服务器与相应目标端之间共享的密钥,不同目标端与认证服务器之间共享的密钥不同;

kpub为始发端公钥;

secret为使用始发端公钥对证书私有部分加密后的密文;

x.509_cred为公钥证书;

req为请求;

sign为数字签名;

符号“|”表示字符连接运算;

pub_cred为证书由公开部分;

pri_cred为证书私有部分。

根据本发明的iscsi协议安全增强方法的一实施例,其中,始发端计算消息认证码,并与证书由公开部分一同发送指定的目标端包括:

mac=hmacakey(pub_cred);

其中,mac为消息认证码,为利用用密钥kpri对secret进行解密,akey为认证密钥。

根据本发明的iscsi协议安全增强方法的一实施例,其中,目标端收到认证码和证书由公开部分后对始发端请求进行授权认证包括:

①重新计算认证密钥akey’:

akey'=hmack(pub_cred);

②重新计算消息认证码mac’:

mac'=hmacakey'(pub_cred);

③判断mac'与mac是否相同,若相同,则授权认证通过,说明始发端已经通过了认证服务器的身份认证,并且认证服务器已经对请求进行了授权。

根据本发明的iscsi协议安全增强方法的一实施例,其中,还包括:通过密钥交换协议来定期逐个刷新所使用的共享密钥。

根据本发明的iscsi协议安全增强方法的一实施例,其中,通过密钥交换协议来定期逐个刷新所使用的共享密钥包括:

假设大素数q及其本原根a是diffie-hellman协议中的两个公开参数,k0是当前共享密钥;

认证服务器选择一个随机整数xa(xa<q),计算公开的ya:

将ya发送给目标端;

目标端选择一个随机整数xb(xb<q),计算公开的yb:

将yb发送给认证服务器;

认证服务器收到yb后,计算新的共享密钥ka和消息认证码maca:

maca=h(ka);

其中,h(ka)为计算共享密钥ka的hash函数,modq为对q取模;

将maca发送给目标端;

目标端收到ya和maca后,计算新的共享密钥kb和消息认证码macb:

macb=h(kb);

其中,h(kb)为计算共享密钥kb的hash函数;

新的密钥为k1,之后将macb发送给认证服务器。

根据本发明的iscsi协议安全增强方法的一实施例,其中,还包括:目标端收到ya和maca后,判断macb是否等于maca,相等则说明认证服务器已掌握新的共享密钥;否则向认证服务器发送密钥更新失败消息。

根据本发明的iscsi协议安全增强方法的一实施例,其中,还包括:认证服务器收到macb后,判断判断macb是否等于maca,相等则说明目标端已掌握新的共享密钥为否则向目标端发送密钥更新失败消息。

根据本发明的iscsi协议安全增强方法的一实施例,其中,还包括:当一该目标端与认证服务器之间共享密钥更新成功后,该目标端会立即要求已经登陆其存储资源的所有始发端重新进行认证.

根据本发明的iscsi协议安全增强方法的一实施例,其中,还包括:当目标端成功对请求进行授权认证并响应后,该目标端会把请求中的消息认证码和有效截止时间作为一条记录保存下来,此后,当该目标端收到新的请求后,首先将新请求中的消息认证码和有效截止时间取出,与之前保存的记录进行对比,若无相同记录则认定该请求是最新的,继而开始进行请求授权认证。

根据本发明的iscsi协议安全增强方法的一实施例,其中,还包括:该目标端对于留存的所有记录,一旦发现某条记录有效截止时间过期,立即将该条记录删除。

综上,本发明针对iscsi协议增强访问控制管理的需求,提出一种基于改进diffie-hellman协议的iscsi协议安全增强方法,采用专用认证服务器,在同时存在多个iscsi始发端、目标端的典型应用场景中实现了目标端对始发端应用请求的安全访问控制。该方法针对每个始发端实现了细粒度访问控制,并在目标端实现了简单高效的授权认证,极大降低了访问控制服务对目标端性能的影响。同时,该方法实现了对始发端已授权访问权限的立即回收。

附图说明

图1所示为本发明的iscsi协议安全增强方法中访问控制详细流程图;

图2所示密钥交换协议流程图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本发明基于改进diffie-hellman协议的iscsi协议安全增强方法包含基于公钥证书的身份认证和基于权能证书的授权认证共两次认证。在进行第一次认证时,始发端首先将请求和公钥证书发送给认证服务器,认证服务器利用公钥证书完成对始发端的身份认证,并在此基础上根据其存储的访问控制列表判断请求为合法后,向始发端颁发权能证书。在进行第二次认证时,始发端将收到的权能证书发送给目标端,目标端根据权能证书完成对始发端请求的授权认证并响应请求。

图1所示为本发明的iscsi协议安全增强方法中访问控制详细流程图,如图1所示,其中,符号“|”表示字符串连接。iscsi协议安全增强方法包括:

ⅰ.基于公钥证书的身份认证

1.始发端将自己的公钥证书x.509_cred、请求req、以及数字签名sign发送给认证服务器。在此,

x.509_cred为x.509格式的公钥证书;

req=iqn;

其中,

iqn为iscsi协议中存储资源的标识符;

kpri为始发端的私钥;

ek(m)表示用密钥k对消息m进行加密。

2.认证服务器通过以下步骤对始发端进行身份认证以及对请求进行授权。

①利用始发端的公钥kpub对数字签名进行解密:

其中,

表示用密钥kpub对消息sign进行解密。

②判断plain=x.509_cred|req?若相同,则身份认证通过,说明始发端是公钥证书中指定的用户。

③根据uid在访问控制列表中查找其是否有权登陆req中指定的资源,若认定为有权登陆,认证服务器需要为始发端准备权能证书cred,该证书由公开部分(pub_cred)和私有部分组成(pri_cred),私有部分由公开部分确定,也称为认证密钥akey:

pub_cred=req|uid|cid|expiry;

akey=pri_part=hmack(pub_cred);

cred=pub_cred|pri_cred;

其中,

uid为公钥证书中指定的始发端用户名;

cid为权能证书的唯一性标识符;

expiry为权能证书的有效截止时间;

hmac为依赖密钥的hash函数;

k为认证服务器与相应目标端之间共享的密钥,不同目标端与认证服务器之间共享的密钥不同。这些共享密钥会按照稍后介绍的密钥交换协议定期逐个被刷新;

kpub为始发端公钥;

secret为使用始发端公钥对证书私有部分加密后的密文。

3.认证服务器将secret与pub_cred一同发送给请求的始发端。

ⅱ.基于权能证书的授权认证

4.始发端计算消息认证码mac,并与公开的权能证书pub_cred一同发送指定的目标端:

mac=hmacakey(pub_cred);

5.目标端收到mac和pub_cred后通过以下步骤对始发端请求进行授权认证:

①重新计算认证密钥akey’:

akey'=hmack(pub_cred)

②重新计算消息认证码mac’:

mac'=hmacakey'(pub_cred)

③判断mac'?=mac,若相同,则授权认证通过,说明始发端已经通过了认证服务器的身份认证,并且认证服务器已经对请求进行了授权。

6.目标端根据授权认证结果响应始发端请求,即决定是否允许始发端登陆req中指定的资源。

若始发端成功登陆存储网关中的存储资源,此后每隔一段时间(灵活设定),双方都需要重复上述过程重新进行认证。在后续目标端与始发端之间的数据传递过程中,可以将认证密钥akey作为密钥对数据进行加密传输。

从上述流程中可以看出,目标端只需进行两次低开销的哈希运算,实现了授权认证的简单高效。

图2所示密钥交换协议流程图,如图2所示,系统的安全性主要依赖于认证服务器与每个目标端之间共享密钥的安全,因此,为了确保系统安全,在基于改进diffie-hellman协议的iscsi协议安全增强方法中还设计了本发明的密钥交换协议来定期逐个刷新这些共享密钥,该密钥交换协议在diffie-hellman协议基础上进行了改进,通过将当前共享密钥参与运算消除了diffie-hellman协议无法抵御中间人攻击的缺点。

假设大素数q及其本原根a是diffie-hellman协议中的两个公开参数,k0是当前共享密钥。

1.认证服务器选择一个随机整数xa(xa<q),计算公开的ya:

将ya发送给目标端。

2.目标端选择一个随机整数xb(xb<q),计算公开的yb:

将yb发送给认证服务器。

3.认证服务器收到yb后,计算新的共享密钥ka和消息认证码maca:

maca=h(ka)

其中,h()为hash函数,modq为对q取模。

将maca发送给目标端。

4.目标端收到ya和maca后,计算新的共享密钥kb和消息认证码macb:

macb=h(kb)

判断macb?=maca,相等则说明认证服务器已掌握新的共享密钥之后将macb发送给认证服务器;否则向认证服务器发送密钥更新失败消息。

5.认证服务器收到macb后,判断maca?=macb,相等则说明目标端已掌握新的共享密钥为否则向目标端发送密钥更新失败消息。

至此,单个目标端与认证服务器之间的共享密钥更新成功,新的密钥为k1。

在基于改进diffie-hellman协议的iscsi协议安全增强方法中规定,当某个目标端与认证服务器之间共享密钥更新成功后,该目标端会立即要求已经登陆其存储资源的所有始发端重新进行认证。

本发明基于改进diffie-hellman协议的iscsi协议安全增强方法的针对重放攻击进行的设计包括:

基于改进diffie-hellman协议的iscsi协议安全增强方法使用了类似随机数方法来抵御重放攻击,具体做法如下:当目标端成功对请求进行授权认证并响应后,该目标端会把请求中的消息认证码和有效截止时间作为一条记录保存下来,此后,当它收到新的请求后,首先将新请求中的消息认证码和有效截止时间取出,与之前保存的记录进行对比,若无相同记录则认定该请求是最新的,继而开始进行请求授权认证。对于留存的所有记录,一旦发现某条记录有效截止时间过期,立即将该条记录删除,以此来避免记录留存数量无限增长。

本发明基于改进diffie-hellman协议的iscsi协议安全增强方法的安全性分析包括:基于改进diffie-hellman协议的iscsi协议安全增强方法的总体目标是确保攻击者在任何情况下都不能假冒合法用户越权访问存储资源,并且在确认或怀疑某个始发端被人为操纵非法窃取数据时,能够立即收回该始发端的所有访问权限。由于该方法的安全性依赖认证服务器与目标端之间共享密钥的安全,因此,本节首先对该方法中密钥交换协议的安全性进行分析,然后再对该方法总体安全性进行分析。

本发明基于改进diffie-hellman协议的iscsi协议安全增强方法的密钥交换协议安全性分析包括:密钥交换协议主要被用来周期性刷新单个目标端与认证服务器之间的共享密钥,该协议建立在diffie-hellman协议之上,保留了原协议具有前向安全性的特点,同时解决了原协议易遭受中间人攻击的问题。

(1)协议可抵御中间人攻击

假设中间人伪装成目标端与认证服务器进行密钥交换,选择了随机数xb*,并使用k0*作为当前共享密钥。

按照协议流程:

认证服务器计算:并将ya发送给目标端途中被中间人截取。

中间人计算:并发送给认证服务器。

随后,

认证服务器计算:maca=h(ka),并将maca发送出去。

中间人计算:macb=h(kb),并将macb发送给认证服务器。

在认证服务器判断maca?=macb的过程中,由于k0*是随机选择的,显然,ka≠kb,进而maca≠macb,由此,认证服务器认定本轮密钥更新失败。

(2)协议具备前向安全性

每轮密钥更新协议产生的新密钥都是由不同随机数xa,xb生成的,即使攻击者在一轮密钥更新后得到了新的共享密钥并监听得到了但是他将仍然无法计算得到原始共享密钥k0。

这是因为,假设攻击者能够由k1、ya、yb计算出k0,那么通过进一步推倒可得此时由于k1并不是q的本源根,因此xb是可以算术求解的。但这与由k1、ya、yb计算出xb本身是一个离散对数难题(diffie-hellman协议安全性就建立在离散对数难问题之上)相矛盾。因此,攻击者无法计算出k0。

本发明基于改进diffie-hellman协议的iscsi协议安全增强方法的总体安全性分析包括:确保攻击者在任何情况下都不能假冒合法用户越权访问存储资源,并且在确认或怀疑某个始发端被人为操纵窃非法取数据时,能够立即收回该始发端的所有访问权限。由于该方法在设计过程中已经针对重放攻击进行了特别设计,并且通过访问控制列表更新的访问权限回收方式实现了对任意始发端访问权限的立即回收。因此,攻击者只可能通过伪造证书公开部分以及消息认证码来达到越权访问的目的。

假设攻击者通过伪造手段,发送给目标端的请求(pub_cred*,mac*)成功通过了方法流程第5步的授权认证,即消息认证码mac*验证成功。由该方法访问控制流程第5.①和5.②可知,验证mac*的认证密钥akey*由共享密钥k对攻击者伪造的证书公开部分pub_cred*计算得到,即akey*=hmack(pub_cred*)。由于攻击者并不知道共享密钥k的信息,因此攻击者得到新的认证密钥akey*意味着攻击者攻破了hmac算法。但是,当前hmac算法被成功破解的概率是能够忽略不计的,由此可以认定基于改进diffie-hellman协议的iscsi协议安全增强方法是安全的。

综上,本发明针对iscsi协议增强访问控制管理的需求,提出一种基于改进diffie-hellman协议的iscsi协议安全增强方法,采用专用认证服务器,在同时存在多个iscsi始发端、目标端的典型应用场景中实现了目标端对始发端应用请求的安全访问控制。该方法针对每个始发端实现了细粒度访问控制,并在目标端实现了简单高效的授权认证,极大降低了访问控制服务对目标端性能的影响。同时,该方法实现了对始发端已授权访问权限的立即回收。该方法的安全性依赖每个目标端与认证服务器之间共享密钥的安全,鉴于长时间使用相同密钥会增加攻击者成功破解该密钥的概率,采用采用一种改进的diffie-hellman协议(密钥交换协议)对共享密钥进行周期性刷新。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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