文章目录

  • [XJTU计算机网络安全与管理]——第八讲密钥管理和分发
    • 一、密钥管理概述
      • 密钥管理结构解决的问题
    • 二、利用对称加密的第三方密钥分发
      • KDC
      • 密钥的层次
      • 密钥分配
      • 对称密钥分配的基本方法
      • 密钥分配实例——重点
      • KDC的分层
      • 分布式密钥分配
    • 三、公钥加密体制的密钥分配
      • 简单密钥分发——重点
      • 确保保密性和认证的密钥分发——重点
    • 四、公钥的分配
      • 公开发布
      • 公用目录表
      • 公钥授权
      • 公钥证书
        • CA
          • CA的功能
    • 五、X.509——认证服务框架
      • 证书
        • 证书的获取
        • 证书的吊销
      • X.509的层次结构
      • 主要内容
      • 认证协议——简单认证过程
      • 认证协议——强认证程序
    • 六、公钥基础设施PKI
      • 要求
      • 构成
      • PKI的结构
      • CA系统结构
    • 参考资料

[XJTU计算机网络安全与管理]——第八讲密钥管理和分发

一、密钥管理概述

如何对密钥进行分发与管理是制约密码应用的重要因素

密钥分为两类:

短期密钥:数据加密

长期密钥:用于认证,签名,访问控制,保护短期密钥等

对于中介的需要:可信第三方

对称加密:密钥分发中心(KTC,KDC)

证书中心:CA

密钥管理结构解决的问题

密钥的生成与分发

密钥的可靠存储

若发生密钥泄露,能够及时撤销或更新

二、利用对称加密的第三方密钥分发

**密钥转换中心(KTC)**为两个实体中间的未来通信传输对称密钥,其中至少有一个实体具有自行生成或获取的。

KDC生成并分发会话密钥

KTC:密钥是A生成的,交给KTC,KTC转发

KDC:密钥由KDC生成的

判断题

KDC

KDC生成并分发会话密钥

会话密钥

临时的密钥

适用于两用户间的加密

一次逻辑会话后抛弃

主密钥

加密会话密钥

由用户与KDC共享

密钥的层次

对称加密的密钥是分级的.有普通密钥、长期密钥、短期密钥等.

密钥分配

典型的两类自动密钥分配途径:

集中式分配方案利用网络中的密钥分配中心(key distribution center,KDC)来集中管理系统中的密钥,密钥分配中心接收系统中用户的请求,为用户提供安全地分配密钥的服务。

分布式分配方案:分布式分配方案是指网络中各主机具有相同的地位,它们之间的密钥分配取决于它们自己的协商,不受任何其他方面的限制。

通常采取两种方案的混合:主机采用分布式方式分配密钥,而主机对于终端或它所属的通信子网中的密钥可采用集中方式分配。

对称密钥分配的基本方法

①密钥由A选取并通过物理手段发送给B;

②密钥由第三方选取并通过物理手段发送给A和B;

③如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方;

④如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。

密钥分配实例——重点

假定两个用户A、B分别与密钥分配中心有一个共享的主密钥KA和KB,A希望与B建立一个逻辑连接,并希望有一个一次性会话密钥来保护该连接上的数据传送,分配过程见下图:

可通过以下几步来完成:

1️⃣ A向KDC发出会话密钥请求

表示请求的消息由两个数据项组成:Request||N1

Request是A和B的身份,

N1是这次业务的惟一识别,N1是一次性随机数,可以是时间戳、计数器或随机数

每次请求所用的N1都应不同,且为防止假冒,应使敌手对N1难以猜测,因此用随机数作为这个识别符最为合适。

2️⃣ KDC为A的请求发出应答

应答是由KA加密的消息,因此只有A才能成功地对这一消息解密,并且A可相信这一消息的确是由KDC发出的。消息中包括A希望得到的两项:

①一次性会话密钥Ks

② A在第1步中发出的请求,包括一次性随机数,目的是使A将收到的应答与发出的请求相比较,看是否匹配。

因此A能验证自己发出的请求在被KDC收到之前,未被他人篡改。而且A还能根据一次性随机数相信自己收到的应答不是重放的对过去的应答。

此外,消息中还有B希望得到的两项:

①一次性会话密钥;

② A的身份(例如A的网络地址)IDA

这两项由KBK_BKB​加密,将由A转发给B,以建立起A、B之间的连接,并向B证明A的身份

3️⃣ A存储密钥并向B转发EKB[KS∣∣IDA]E_{KB}[K_S||ID_A]EKB​[KS​∣∣IDA​]

因为转发的是加密后的密文,所以转发过程不会被窃听。B收到后,可得到会话密钥Ks,并从IDA可知另一方是A,而且还从EKB知道的确来自KDC。

这一步完成后,会话密钥就安全地分配给了A、B。然而还能继续以下两步。

4️⃣ B用会话密钥KS加密另一个一次性随机数N2,并将加密结果发送给A。

5️⃣ A以f(N2)f(N_2)f(N2​)作为对B的应答,其中fff是对N2N_2N2​进行某种变换(例如:加1)的函数,并将应答用会话密钥加密后发送给B。

这两步可使B相信第3步收到的消息不是一个重放消息。

⚠️ 第3️⃣ 步已经完成了密钥分配,第4️⃣ 、5️⃣ 步结合第3️⃣ 步执行的是认证功能

KDC的分层

如果网络中的用户数目非常多且地域分布非常广,可采用分层结构:

在每个小范围(如一个LAN或一个建筑物)内建立一个本地KDC,负责该范围内的密钥分配;

如果两个不同范围的用户想获得共享密钥,需要通过各自的本地KDC,并由两个本地KDC经过一个全局KDC完成密钥分配。这样就建立了两层KDC结构。

好处:

可减少主密钥的分布,因为大多数主密钥是在本地KDC和本地用户之间共享;

可将虚假KDC的危害限制到一个局部区域内。

分布式密钥分配

不借助第三方,两个人必须认识

过程有如下三步:

1️⃣ A向B发出建立会话密钥的请求和一个一次性随机数N1

2️⃣ B用与A共享的主密钥MKm对应答的消息加密,并发送给A。应答的消息中有B 选取的会话密钥、B的身份IDB、f(N1)f(N_1)f(N1​)和另一个一次性随机数N2

3️⃣ A使用新建立的会话密钥KS对f(N2)f(N_2)f(N2​)加密后返回给B。

三、公钥加密体制的密钥分配

包括两方面内容:

公钥密码体制所用的公钥的分配;

如何用公钥体制来分配对称密钥密码体制中使用的密钥。

简单密钥分发——重点

如果A想要和B通信,需要以下几步:

1️⃣ A生成公钥对{PUa,PRa}\{PU_a,PR_a\}{PUa​,PRa​},然后发送包含PUaPU_aPUa​和A的标识i符IDAID_AIDA​的消息给B

2️⃣ B生成KsKsKs,并用A的公钥加密后发给A。

3️⃣ A计算D(PRa,E(PUa,KS))D(PR_a,E(PU_a,K_S))D(PRa​,E(PUa​,KS​))从而恢复密钥,因为只有A能解密该信息,所以只有A和B
知道KsK_sKs​。

4️⃣ A丢弃PUaPU_aPUa​和PRaPR_aPRa​,B丢弃PUaPU_aPUa​

在对手控制了中间的通信信道时,协议是不安全的,可能受到中间人攻击.

确保保密性和认证的密钥分发——重点

1️⃣ A 用B 的公钥加密包含A 的标识符IDA 和一个临时交互号N1 的消息并发给B,其中临时交互号被用来唯一的标识该次消息传递;

2️⃣ B 用PUa 加密包含A 的临时交互号N1及B 产生的新的临时交互号N2的消息发送给A.因为只有 B 可以解密消息(1),故N1 在消息(2)中出现可以使A 确定该消息来自于B.

3️⃣ A 使用的B 的公钥加密后返回N2,使B 确定消息来自于A.

4️⃣ A 选择密钥KS 后发送M=E(PUB,E(PRA,KS))M=E(PU_B,E(PR_A,K_S))M=E(PUB​,E(PRA​,KS​))给B。用B 的公钥加密确保只有B 可以读取该消息,用A 的私钥加密保证只有A 可以发送该消息.

5️⃣ B 计算D(PUA,D(PRB,M))D(P U_A, D(P R_B , M ))D(PUA​,D(PRB​,M))从而恢复密钥KS .

该方案可以保证交换密钥过程中的保密性和身份验证.

四、公钥的分配

人们已经提出了集中公钥分配方法,所有这些方法本质上都可以归结为以下几种方法:

1️⃣ 公开发布。

2️⃣ 公用目录表。

3️⃣ 公钥管理机构。

4️⃣ 公钥证书。

公开发布

指用户将自己的公钥发给每一其他用户,或向某一团体广播;

比较简单;

缺陷:任何人都可伪造这种公开发布,即发布伪造的公钥 。

公用目录表

建立一个公用的公钥动态目录表,目录表的建立、维护以及公钥的分布由某个可信的实体或组织承担。

公用目录表的建立过程如下:

1)管理员为每个用户都在目录表中建立一个目录,目录中有两个数据项,一是用户名,二是用户的公开钥。

2)每个用户都亲自或以某种安全的认证通信在管理者那里注册自己的公开钥。

3)用户如果由于自己的公开钥用过的次数太多或由于与公开钥相关的秘密钥己被泄露,则可随时用新公开钥替换现有的公开钥。

4)管理员定期公布或定期更新目录表。例如,像电话号码本一样公布目录表或在发行量很大的报纸上公布目录表的更新。

5)用户可通过电子手段访问目录表,这时从管理员到用户必须有安全的认证通信

公钥授权

在公钥目录表的基础上,由一个公钥管理机构对公钥的分配进行更严密的控制。该方案假定中心管理员负责维护通信各方公钥的动态目录 。此外每个通信方都可靠的知道该目录管理员的公钥并只有管理员知道相应的私钥。

公钥证书

上述方案存在的问题在于公钥管理员成为了系统的瓶颈

公钥证书包含公钥和公钥拥有者的ID,整个数据块由可信第三方签名。用户以可靠方式将公钥提交给可信第三方,获得证书并公布,需要公钥的人可以借由证书获得公钥

CA

在公钥体系中,关键问题是要保证公钥要与拥有公钥的实体绑定起来。我们把这样的绑定关系信息称为证书

对证书进行管理的机构成为证书机构(CA)

公钥证书产生过程

CA的功能

保证证书拥有实体与证书的对应关系

生成证书

管理维护证书

撤销证书

证书的表示——了解

CA给A颁发的证书:

五、X.509——认证服务框架

X.509是X.500系列中定义目录服务的一部分。这里目录指管理用户信息数据库的服务器,用户信息包括从用户名到网络地址的映射和其他属性

X.509定义了用户目录的一个认证服务框架,这个目录可作为公钥证书的存取库,另外

X.509还定义了基于公钥证书的一个认证协议:X.509是关于证书结构和认证协议的一个重要标准。

证书

CA生成的证书具有以下的特点

任何可以访问CA公钥的用户均可获得证书中的用户公钥

只有CA可以修改证书而不被发现。(可以被直接存在目录中而不需要保护)

用户很多时更可取的方法时设置多个CA互相间能安全交换公钥比如X1给X2签发的证书)——掌握

现在,假设A获得了签证机构X1的证书,而B获得了签证机构X2的证书,如果A无法安全地获得X2的公钥,则由X2发放的B的证书对A而言就无法使用,A只能读取B的证书,但无法验证其签名,然而,如果两个CA之间能安全地交换它们的公钥,则A可以通过下述过程获得B的公钥:

1️⃣ A从目录中获得由X1签名的X2的证书,由于A知道X1的公钥,A可从证书中获得X2的公钥,并用X1的签名来验证证书。

2️⃣ A再到目录中获 取由 X2颁发的B的证书,由于A已经得到了 X2的公钥,A即可利用它验证签名,从而安全地获得B的公钥。

A使用了一个证书链来获得B的公钥,在X.509,该链表示如下:
X1<<X2>>X2<<B>>X_1<<X_2>>X_2<<B>> X1​<<X2​>>X2​<<B>>
B可以逆向获得A的公钥
X2<<X1>>X1<<A>>X_2<<X_1>>X_1<<A>> X2​<<X1​>>X1​<<A>>
CA链可以任意长X1<<X2>>X2<<X3>>...XN<<B>>X_1<<X_2>>X_2<<X_3>>...X_N<<B>>X1​<<X2​>>X2​<<X3​>>...XN​<<B>>

在这种情况下,链中的每对CA(Xi,Xi+1)必须互相发放证书

证书的获取

CA为用户产生的证书应有以下特性:

(1) 其他任一用户只要得到CA的公开密钥,就能由此得到CA为该用户签署的公开密钥。

(2) 除CA以外,任何其它人都不能以不被察觉的方式修改证书的内容。

因为证书是不可伪造的,因此无需对存放证书的目录施加特别的保护。

证书的吊销

有些证书还未到截止日期就会被发放该证书的CA吊销

用户的秘密密钥已被泄漏;

该用户不再由该CA来认证;

CA为该用户签署证书的秘密密钥已经泄露。

每一CA还必须维护一个证书吊销列表CRL(Certificate Revocation List),其中存放所有未到期而被提前吊销的证书,包括该CA发放给用户和发放给其它CA的证书。CRL还必须由该CA签字,然后存放于目录中以供他人查询。

X.509的层次结构

前向证书:其它CA生成的X的证书

后向证书:X生成其它CA的证书

例如,用户A可以通过创建一条到B的路径获得相关证书

X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>>X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>>X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>>

当A获得相关证书后,可以通过顺序展开证书路径来获得B的公钥,用该公钥,A可将加密消息送往B,如果A想得到B返回的加密消息或对发往B的消息签名,则B需要按照下述证书路径来获得A的公钥

Z<<Y>>Y<<V>>V<<W>>W<<X>>X<<A>>Z<<Y>>Y<<V>>V<<W>>W<<X>>X<<A>>Z<<Y>>Y<<V>>V<<W>>W<<X>>X<<A>>

B可以获得目录中的证书集,或A可在它发给B的初始消息中将其包含进去。

主要内容

X.509主要内容

简单认证(Simple Authentication)程序

强认证(Strong Authentication)程序

密钥及证书管理

证书扩充及证书吊销列表扩充(Certificate and CRL Extensions)

认证协议——简单认证过程

根据每位用户所提供的用户名以及一个只有收、发双方知道的用户密码来实现安全程度较低的认证程序的。

三种运行方式——记住

1️⃣ 用户将其口令及用户ID未做任何加密保护,直接以明文方式传送给接收端。

2️⃣ 用户将其个人口令、用户ID、一个随机数和/或时间戳在经过一单向函数保护后,传送至接收瑞。

3️⃣ 用户用上面第(2)种方式所述的方法,先经一次单向函数保护所有数据,然后再连同另一组随机数和/或时间戳,再经过第二次的单向函数保护后,传送至接收端。

方式一的主要缺陷在于明文传输用户代号和口令。在第二及第三两种认证方式中,发方A送至收方B的信息内容都经过单向函数运算的杂凑值,将此杂凑值经网络传给对方,密码的明文不会出现在网络上,如图所示。

在第二及第三两种认证方法中,因为用户的口令并不直接送到网络上,而是经单向函数f1及f2的运算后,再送到网络,所以即使在网络上被攻击者拦截到,因为有单向函数的保护,仍然很难反推出用户口令。且在以单向函数保护的运算过程中,又加入了时间戳和随机数一起运算,所以攻击者若将信息重发,虽然可以通过验证,但因“时间戳”是记录送方送出的时间,若是与收方收到的时间相差得太多,可以确定是攻击者的重发,欲假冒合法用户,应该予以拒绝,如此可以防止重放攻击。

第三种方法中使用两次单向函数运算,是用以增加秘密信息的隐蔽度和增加攻击者破解的困难度的。

简单认证程序在安全性的考虑上比较简单,只可以让收方B认证发方A为合法用户,无法让发方A也可以认证收方B,达到收发双方相互认证的安全程度。

认证协议——强认证程序

X.509以公开密钥密码的技术能够让通信双方容易共享密钥的特点,并利用公钥密码系统中数字签名的功能,强化网络上远程认证的能力,定义出强认证程序,以达到所谓“强认证”的目的。

X.509中定义的“强认证”程序包含了三种不同信赖程度的认证

1️⃣ “单向认证”(One-way Authentication)

2️⃣ “双向认证”(Two-way Authentication)

3️⃣ “三向认证”(Three-way Authentication)

单向认证:A 给B 发送一个证书;

双向认证:除了前述“单向认证”的发送方送出的信息之外, 收方还需产生一道回复信息给发方;

三向认证:除了前述“双向认证”的信息之外,发方还需要再发送一道应答信息给收方

六、公钥基础设施PKI

公钥基础设施PKI(public key Infrastructure)定义为一组用于管理证书和公私钥对的策略、流程、服务器平台、软件和工作站、功能包括颁发、维护和撤销公钥证书。开发的目的在于确保安全,方便和有效的获取公钥

要求

任何参与者都可以阅读证书以确定证书所有者的名称和公钥

任何参与者都可以验证证书源自证书颁发机构而不是伪造的

只有证书颁发机构可以创建和更新证书

任何参与者都可以验证证书的时效性

构成

CA

RA(证书注册机构)

终端实体

证书存储库

信赖方

PKI的结构

层次化的

非层次化的

在应用程序中装入不同的CA的证书

CA彼此做交叉认证

CA系统结构

[XJTU计算机网络安全与管理]——第八讲密钥管理和分发相关推荐

  1. [XJTU计算机网络安全与管理]——第七讲消息认证码和数字签名

    文章目录 [XJTU计算机网络安全与管理]--第七讲消息认证码和数字签名 一.消息认证码 消息认证--MessageAuthentication 消息认证函数 消息加密 内部错误控制与外部错误控制(附 ...

  2. [XJTU计算机网络安全与管理]——第六讲 伪随机数,流密码,哈希

    文章目录 [XJTU计算机网络安全与管理]--第六讲 伪随机数,流密码,哈希 一.随机数 随机数 TRNG.PRNG和PRF 伪随机数生成器PRNG 线性同余生成器Linear Congruentia ...

  3. [XJTU计算机网络安全与管理]——第九讲 无线网络安全

    文章目录 [XJTU计算机网络安全与管理]--第九讲 无线网络安全 一.无线局域网的发展 二.无线局域网的标准 IEEE 802.11 MAC层 802.11 安全体系 802.11的认证问题--重点 ...

  4. [XJTU计算机网络安全与管理]第一讲 网络安全概述

    文章目录 [XJTU计算机网络安全与管理]第一讲 网络安全概述 KEY POINTS 一.安全威胁 违反安全性的例子 关键性的安全概念:CIA triad--考点 二.网络安全相关概念--了解即可 三 ...

  5. [XJTU计算机网络安全与管理]第三讲 密码技术[二]

    文章目录 [XJTU计算机网络安全与管理]第三讲 密码技术[二] KEY POINTS 一.块加密(分组加密) 块加密vs流加密 块加密的设计准则 Feistel密码结构的设计动机 Claude Sh ...

  6. [XJTU计算机网络安全与管理]——第十三讲 攻击与病毒

    文章目录 [XJTU计算机网络安全与管理]--第十三讲 攻击与病毒 一.缓冲溢出 缓冲溢出防御 编译时加固 运行时加固 二.协议漏洞攻击 三.拒绝服务攻击 四.用户认证 生物学特征 Kerberos ...

  7. 税务大厅计算机网络安全与管理,峡江县税务局多措并举加强网络安全和保密管理...

    在2019年国家网络安全宣传周期间,峡江县税务局紧紧围绕"网络安全为人民,网络安全靠人民"主题扎实开展网络安全宣传活动,多点着力,多措并举,编织网络安全保障网,加强保密教育管理,确 ...

  8. 【互联网及其应用】第7章计算机网络安全及管理技术

    一.计算机网络安全 计算机网络安全是指通过采取各种技术和管理措施,确保网络数据的可用性.完整性和保密性,其目的是确保经过网络传输和交换的数据不会发生增加.修改.丢失和泄露等. 1.1 网络系统安全介绍 ...

  9. 内核知识第八讲,PDE,PTE,页目录表,页表的内存管理

    内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了 ...

  10. 计算机组成原理尾数的求法,计算机组成原理第八讲(运算办法).ppt

    计算机组成原理第八讲(运算办法) 浮点加减运算 设浮点数字长16位,其中阶码8位,尾数8位,且均为双符号位的补码.求A±B=? (1)A= 11/16 ×2-4 , B= 13/16 ×2-3 (2) ...

最新文章

  1. 昨夜,5G R16标准正式冻结!5G物联网扬帆起航
  2. Android 表格HorizontalScrollView+ListView
  3. java awt 初始化_Java awt项目开发
  4. 《Artifact》的得与失:成功的游戏工业品,却与主流背道而驰
  5. Linux实用命令总结
  6. 数学知识点大集合!有了它学数学真的很简单!
  7. 前端学习(1433):vue是什么
  8. In和exists使用及性能分析(一):in的使用
  9. 全选 单选和反选的实现
  10. mysql 使用jdbctemplate_SpringBoot学习笔记-使用jdbcTemplate访问mysql
  11. matlab怎么找出奇数个数_用MATLAB绘制系统根轨迹和性能分析
  12. python显示多个图表
  13. 安装CentOS步骤
  14. 【三维路径规划】基于matlab蚁群算法水下潜器三维路径规划【含Matlab源码 043期】
  15. 搜狗输入法PC版 v10.5.0.4726 去广告精简版
  16. LWC 61:741. Cherry Pickup
  17. 奥克兰大学计算机领域优势,奥克兰大学三大优势专业,知道这些你就不会选错专业了!...
  18. 树莓派 android10,树莓派4使用AndroidTV 10系统
  19. windows2008 RD授权管理器下空的没服务器(授权管理器无法链接到许可证服务器)问题处理...
  20. [Python]根据ip地址计算子网掩码位数

热门文章

  1. 使用 HttpWatch 分析 HTTP 协议
  2. 通过蚁剑,利用eval与assert,登录目标网站
  3. html图片顺时针倾斜50度,【资源】纯CSS右上角倾斜四十五度封页角效果
  4. 互联网最新创新创业项目
  5. Kettle spoon 工具实战分享
  6. 基于SpringBoot的毕业设计选题系统
  7. 梁建章:我带领携程战胜所有竞争对手的方法论
  8. 为什么老外不看好Filecoin?
  9. js html 测反应速度游戏,利用JS测试目标网站的打开响应速度
  10. 用c加加创建c语言项目,如何使用visual studio 2017创建C语言项目