140 likes | 305 Views
第七章 密钥建立. 密钥建立协议是为两方或多方提供共享的秘密,在其后作为对称密钥使用,已达到加密、消息认证、实体认证的目的。 密钥建立大体分成两类:密钥传送( Key Transport ) 和密钥协商( Key Agreement )。 密钥传送是由一方建立(或得到)一个秘密值安全地传送给另一方。密钥协商是由双方(或多方)形成的共享秘密。该秘密是参与各方提供消息的函数。任何一方都不能事先预定所产生的秘密数值。 在设计和选择密钥建立技术时,重要的事搞清楚使用中需要哪些性质。可能包括的性质有:.
E N D
第七章 密钥建立 密钥建立协议是为两方或多方提供共享的秘密,在其后作为对称密钥使用,已达到加密、消息认证、实体认证的目的。 密钥建立大体分成两类:密钥传送(Key Transport)和密钥协商(Key Agreement)。密钥传送是由一方建立(或得到)一个秘密值安全地传送给另一方。密钥协商是由双方(或多方)形成的共享秘密。该秘密是参与各方提供消息的函数。任何一方都不能事先预定所产生的秘密数值。 在设计和选择密钥建立技术时,重要的事搞清楚使用中需要哪些性质。可能包括的性质有:
1)提供哪些认证:实体认证(Entity Authentication)、密钥认证(Key Authentication)、密钥确认(Key Confirmation)。实体认证是指在某种程度上一方相信“与之通信的对方”的身份。密钥认证又叫隐含密钥认证(Implicit Key Authentication),它是指除了所期望的对方之外没有人能获得这个共享的秘密。密钥确认是指一方相信对方确实掌握了特定的共享秘密。密钥认证加上密钥确认就是明显密钥认证(Explicit Key Authentication)。 2)认证是否互惠:提供的实体认证、密钥认证、密钥确定是单方的还是双方的。 3 密钥的新鲜性(Key Freshness):如果可以保证产生的密钥是新的而不是过去用过的旧密钥,则称密钥是新鲜的。
4)密钥控制:密钥是由一方选定还是有由各方提供的信息推导出来的;是否其中一方能控制或预先知道或预先测出产生的密钥值。4)密钥控制:密钥是由一方选定还是有由各方提供的信息推导出来的;是否其中一方能控制或预先知道或预先测出产生的密钥值。 5)有效性:遍数(各方需要交换信息的次数)、带宽(需要传送信息的总位数)、各方计算的复杂性、是否可以预先计算以减少在线计算。 6)是否需要第三方:需要(实时)在线第三方、或离线第三方、或不需要第三方。对第三方可信程度的要求。 7)使用证件的类型。 8)不可拒绝性:是否要求在交换共享数据时提供某种类型的收据。
在密钥建立的协议中总是假设 : 1)所使用的基本密码学机制是安全的,如加密算法、 签名方案等。 2)协议中交互信息是在没有保护的开放网络上传输的。 3)对手能完全控制网上的数据(记录、改写、删除、 插入、改变方向、重新排序、重用当前或过去的消 息、注入新的消息等)
7.1 密钥建立的模式 • 1)点到点机制:涉及的双方直接通信, • K • 密钥分配中心(Key Distribution Center) • KDC KDC • K • A K B A B
用户A, B分别与KDC有共享主密钥 ,KDC为用户A, B生成并分配会话密钥。上图中A将(A,B)发送给KDC。KDC将 返回给用户A。此外,如左图所示将 经过A传送给B,或如右图所示直接将 直接传送给B。 3) 密钥转换中心(Key Translation Center) 与2)不同的是由A生成A, B之间的会话密钥K,KTC只起转送的作用。首先A将(A,B,) 发送给KTC。KTC求出后将生成的 经过A传送给B,或直接传送给B。
7.2 密钥传送 前面我们讲过,私钥密码系统的安全性完全建立在密钥的安全性上。要防止密钥为他人窃取并且定期更换密钥以使对手知道密钥的情况下尽量少泄露数据。如果是链路加密,每个链路加密设备都只和该链路的另一端的设备交换数据,可以采取由一方选定以后物理地另一方或由第三方物理地送给两方。如果端到端加密是在网络或IP级,那么网络上每一对要通信的主机之间都必须有密钥。如果有N个结点共需要N*(N-1)/2个密钥。如果端到端加密是在应用级进行,那么每一对要通信的用户或进程都需要一个密钥。
我们用一个密钥分配中心KDC负责分配每一对要通信的用户(主机、进程、应用程序)需要的密钥。每个用户必须与KDC共享(唯一)一个主密钥(Master Key),它以物理传递方式分配给用户。端系统之间的通信使用临时的密钥,称之为会话密钥(Session Key)。主密钥在分配会话密钥时使用。 当网络规模较大时可能涉及多个KDC,可以建立具有层次结构的一批KDC,如:单位的、本地区的、全国的等等。属于不同KDC的用户间建立会话密钥,必须通过共同的上级KDC进行沟通。这种结构使得主密钥分配工作量达到最小。
会话密钥更换越频繁给对手提供可分析的密文就越少。而会话密钥分配影响信息交互并且增加网络负担。一般,对面向连接的协议在一次连接中使用一个会话密钥。对无连接协议最好规定会话密钥生命期或使用一个密钥的数据交换量。 假定以面向连接的X.25或TCP协议进行通信,加密在网络层进行。每个端系统上的用户和应用程序将使用相同加密算法和相同密钥。为此我们在主机前端放置前端处理器(Frond-End Processor称为FEP),代理主机获取密钥并完成端到端加密。具体步骤如下:
1) 请求方主机想与另一个主机通信时发送一个连接 请求分组; 2) 请求方的FEP保存该分组。FEP使用自己的主密钥 向KDC申请此连接的会话密钥,KDC将生成的会 话密钥发送给该连接涉及的双方FEP。 3)请求方的FEP把连接请求分组发送出去,两个端系 统建立一个连接。 4) 端系统间所有用户数据交换均使用得到的会话密 钥加密传送。 这是一种透明的密钥控制方案,对端系统影响最小。
7.2.1 Kerberos 方案 Kerberos 方案是基于私钥密码系统的密钥服务系统。用户U向可信中心TA申请与用户V通信的会话密钥。TA负责生成和传输会话密钥。为了安全,TA要保证密钥的新鲜性 (Key Freshness)。 每个用户U的身份信息是ID(U), U与TA共享一个主密钥 (DES加密密钥),传输信息均采用CBC模式进行加密. 1) 用户U向TA申请与用户V通信的会话密钥 2) TA随机选择密钥K,时间戳T,生存期L。计 算 并传送给用户U,其中
3) 用户U解密 求出K, ID(U), T, L。计算 • ,将传送给用户V • 用户V解密 求出K, ID(V), T, L。解密再次得 • 到ID(U), T。计算 并发送给用户 • U。 • 5) 用户U解密 求出T+1验证之. • 其中时间戳T和生命期L是为了防止主动攻击(旧密钥重发), 用于传送会话密钥的安全性, • 用于用户U,V双方确认对方掌握同样的会话密钥。实施该方案的网络中应该有同步时钟,以便确认会话密钥是否在生命期内。
7.2.2 X.509 X.509是基于公钥密码系统的私钥传送方案。下面是一种两遍的强认证方案,它具有相互实体认证和密钥认证功能。用户A的公钥证书 ,公钥加密算法 ,签名算法 。 1) 用户A选取时间戳和从未使用过的随机数 以及会话密钥 。计算 和 向用户B发送 , , .
用户B确认 中的相关项( ),验证A的公钥证书 及对 的签名 。验证成功后用私钥解密求出 并保存。用户B选取自己的 • 及 ,向用户A发送 , , • 3)用户A验证工作与2)中相同,保存 .