【密码学】密钥管理

文章目录

  • 1. 前言
  • 2. 概念
  • 3. 原则
    • 3.1. 区分密钥管理的策略和机制
    • 3.2. 全程安全原则
    • 3.3. 最小权利原则
    • 3.4. 责任分离原则
    • 3.5. 密钥分级原则
    • 3.6. 密钥更换原则
  • 4. 传统密码的密钥管理
    • 4.1. 密钥组织
      • 4.1.1. 初级密钥
      • 4.1.2. 二级密钥
      • 4.1.3. 主密钥
    • 4.2. 密钥产生
      • 4.2.1. 主密钥
      • 4.2.2. 二级密钥
      • 4.2.3. 初密钥
      • 4.2.4. 伪随机数
    • 4.3. 密钥分配
    • 4.4. 密钥存储
      • 4.4.1. 安全存储
      • 4.4.2. 存储形态
      • 4.4.3. 密钥的存储
    • 4.5. 密钥更新
    • 4.6. 密钥终止和销毁
  • 5. 公钥密码密钥管理
    • 5.1. 概念
    • 5.2. 密钥产生
    • 5.3. 密钥分配
    • 5.4. 公钥证书
      • 5.4.1. 概念
      • 5.4.2. 原理
      • 5.4.3. X.509证书
    • 5.5. 公钥基础设施PKI
      • 5.5.1. 概念
      • 5.5.2. CA
      • 5.5.3. RA
      • 5.5.4. 证书签发
      • 5.5.5. 证书目录
      • 5.5.6. 证书的撤销
      • 5.5.7. 信任模型

1. 前言

参考《密码学引论》

2. 概念

密码的公开设计原则:密码体制的安全应当只取决于密钥的安全,而不取决于对密码算法的保密

密钥管理包括密钥的产生、存储、分配、组织、使用、停用、更换、销毁等一系列技术问题。

每个密钥都有其生命周期,要对密钥的整个生命周期的各个阶段进行全面管理;密码体制不同,密钥的管理方法也不同

3. 原则

3.1. 区分密钥管理的策略和机制

  • 策略是密钥管理系统的高级指导,策略重在原则指导,而不重在具体实现。策略通常是原则的、简单明确的
  • 机制是实现和执行策略的技术机构和方法。机制是具体的、复杂繁琐的

3.2. 全程安全原则

  • 必须在密钥的产生、存储、分配、组织、使用、停用、更换、销毁的全过程中对密钥采取妥善的安全管理。只有各个阶段都是安全时,密钥才是安全的
  • 密钥从一产生到销毁的全过程中除了在使用的时候可以以明文形式出现外都不应当以明文形式出现

3.3. 最小权利原则

  • 应当只分配给用户进行某一事务处理所需的最小的密钥集合

3.4. 责任分离原则

  • 一个密钥应当专职一种功能,不要让一个密钥兼任几个功能

3.5. 密钥分级原则

  • 对于一个大的系统,应当采用密钥分级的策略
  • 根据密钥的职责和重要性,把密钥划分为几个级别
  • 高级密钥保护低级密钥,最高级密钥由物理、技术和管理安全保护

3.6. 密钥更换原则

  • 密钥必须按时更换,否则,即使是采用很强的密码算法,时间越长,被破译的可能性就越大
  • 理想情况是一个密钥只使用一次,但是完全的一次一密不现实
  • 一般,初级密钥采用一次一密,中级密钥更换的频率低些,主密钥更换的频率更低些
  • 密钥更换的频率越高,越有利于安全,但是密钥的管理就越麻烦

4. 传统密码的密钥管理

4.1. 密钥组织

密钥分为三级:初级密钥、二级密钥、主密钥(高级密钥)

4.1.1. 初级密钥

  1. 概念:
    1. 直接用于加解密数据(通信、文件 通信、文件)的密钥为初级密钥,记为 K K K
    2. 而用于通信保密的初级通信密钥,记为 K c K_c Kc
    3. 用于保护会话的初级密钥为会话密钥(Session Key),记为 K s K_s Ks
    4. 用于文件保密的初级密钥为初级文件密钥(File Key),记为 K f K_f Kf
  2. 安装:初级密钥可通过硬件或软件方式自动产生,也可由用户自己提供
  3. 生存周期:
    1. 初级密钥必须受更高一级的密钥保护,直到他们的生存周期结束为止
    2. 初级通信密钥的生存周期很短
    3. 初级文件密钥与所保护的文件的生存周期一样长。
  4. 重要知识:
    1. 初级通信密钥和初级会话密钥原则上采用一个密钥只使用一次的一次一密方式

4.1.2. 二级密钥

  1. 概念:
    1. 二级密钥(Secondary Key)用于保护初级密钥,记作 K N K_N KN,这里N表示节点,源于它在网络中的地位
    2. 而用于初级通信密钥时称为二级通信密钥,记为 K N C K_{NC} KNC
    3. 用于保护初级文件密钥时称为二级文件密钥,记为 K N F K_{NF} KNF
  2. 安装:
    1. 可经专职密钥安装人员批准,由系统自动产生
    2. 也可由专职密钥安装人员提供并安装
  3. 生存周期:二级密钥的生存周期一般较长,它在较长的时间内保持不变
  4. 保护:二级密钥必须接受高级密钥的保护

4.1.3. 主密钥

  1. 概念:主密钥(Master Key)是密钥管理方案中的最高级密钥,记作 K M K_M KM
  2. 保护:
    1. 必须采用安全的物理、技术、管理措施对主密钥进保护!
    2. 主密钥用于对二级密钥和初级密钥进行保护
    3. 主密钥只能以明文形式存储
  3. 安装:主密钥由密钥专职人员产生,并妥善安装。
  4. 生存周期:主密钥的生存周期很长

4.2. 密钥产生

4.2.1. 主密钥

主密钥应当是高质量的真随机序列;真随机数应该从自然界的随机现象中提取,而且要经过严格的随机性测试

  • 基于力学噪声源
  • 基于电子学噪声源
  • 基于量子力学噪声源

4.2.2. 二级密钥

  • 可以象产生主密钥那样产生真随机的二级密钥;
  • 在主密钥产生后,可借助于主密钥和一个强的密码算法来产生二级密钥。

4.2.3. 初密钥

  1. 为了安全和简便,通常总是把随机数RN直接视为受高级密钥加密过的初级密钥:

    R N = E ( K s , K M ) RN=E(K_s,K_M) RN=E(Ks,KM) R N = E ( K f , K M ) RN=E(K_f,K_M) RN=E(Kf,KM)

    R N = E ( K s , K N C ) RN=E(K_s,K_{NC}) RN=E(Ks,KNC) R N = E ( K f , K N F ) RN=E(K_f,K_{NF}) RN=E(Kf,KNF)

  2. 使用初级密钥时,用高级密钥将随机数RN解密:

    K s = D ( R N , K M ) K_s=D(RN,K_M) Ks=D(RN,KM) K f = D ( R N , K M ) K_f=D(RN,K_M) Kf=D(RN,KM)

    K s = D ( R N , K N C ) K_s=D(RN,K_{NC}) Ks=D(RN,KNC) K f = D ( R N , K N F ) K_f=D(RN,K_{NF}) Kf=D(RN,KNF)

4.2.4. 伪随机数

二级密钥和初级密钥的产生都需要伪随机数

伪随机性:随机、长周期、独立性、非线性

一般采用基于强密码算法的产生方法

4.3. 密钥分配

  1. 主密钥:一般采用人工分配主密钥,由专职密钥分配人员分配并由专职安装人员妥善安装
  2. 二级密钥:
    1. 由专职密钥分配人员分配并由专职安装人员安装。虽然这种人工分配和安装的方法很安全,但是效率低,成本高。
    2. 直接利用已经分配安装的主密钥对二级密钥进行加密保护,并利用计算机网络自动传输分配
  3. 初级密钥:
    1. 通常总是把一个随机数直接视为受高级密钥(主密钥或二级密钥,通常是二级密钥)加密过的初级密钥,这样初级密钥一产生便成为密文形式。
    2. 发端直接把密文形式的初级密钥通过计算机网络传给收方,收端用高级密钥解密便获得初级密钥

4.4. 密钥存储

4.4.1. 安全存储

密钥的安全存储就是要确保密钥在存储状态下的秘密性、真实性和完整性。

安全可靠的存储介质是密钥安全存储的物质条件, 安全严密的访问控制是密钥安全存储的管理条件。

密钥安全存储的原则是不允许密钥以明文形式出现在密钥管理设备之外。

4.4.2. 存储形态

  • 明文形态:明文形式的密钥
  • 密文形态:被密钥加密密钥加密过的密钥
  • 分量形态:密钥分量不是密钥本身,而是用于产生密钥的部分参数

4.4.3. 密钥的存储

  1. 主密钥

    1. 主密钥是最高级的密钥,所以它只能以明文形态存储,否则便不能工作
    2. 通常是将其存储在专用密码装置
  2. 二级密钥

    1. 二级密钥可以以明文形态存储,也可以以密文形态存储
    2. 通常采用以高级密钥加密的形式存储二级密钥。这样可减少明文形态密钥的数量,便于管理。
  3. 初级密钥

    1. 初级文件密钥一般采用密文形态存储,通常采用以二级文件密钥加密的形式存储初级文件密钥
    2. 初级会话密钥按“一次一密”的方式工作,使用时动态产生,使用完毕后即销毁,生命周期很短。因此,初级会话密钥的存储空间是工作存储器,应当确保工作存储器的安全

4.5. 密钥更新

  1. 高级密钥
    1. 必须重新产生并安装,其安全要求与其初次产生安装一样
    2. 高级密钥的更新将导致受其保护的中级密钥和初级密钥都要更新
  2. 二级密钥
    1. 安全要求与其初次产生安装一样
    2. 中级密钥的更新也将要求受其保护的初级密钥也更新。
  3. 初级密钥
    1. 初级会话密钥采用一次一密的方式工作,因此更新是极容易的
    2. 初级文件密钥更新时,必须将原来的密文文件解密并用新的初级文件密钥重新加密

4.6. 密钥终止和销毁

  1. 终止使用的密钥,并不立即销毁,而需要再保留一段时间然后再销毁。这是为了确保受其 保护的其他密钥和数据得以妥善处理。只要密钥尚未销毁,就必须对其进行保护
  2. 密钥销毁要彻底清除密钥的一切存储形态和相关信息,使得恢复这一密钥成为不可能

5. 公钥密码密钥管理

5.1. 概念

传统密码只有一个密钥,加密钥等于解密钥 传统密码只有一个密钥,加密钥等于解密钥( K e = K d K_e=K_d Ke=Kd)因此,密钥的秘密性、真实性和完整性都必须保护

公开密钥密码有两个密钥,加密钥与解密钥不同( K e ≠ K d K_e\not =K_d Ke=Kd),而且由加密钥在计算上不能求出解密钥,所以加密钥的秘密性不用确保,但其完整性和真实性却必须严格保护。

5.2. 密钥产生

  1. RSA密码的密钥
  2. 椭圆曲线密码的密钥

5.3. 密钥分配

  • 因为公钥是公开的,因此不需确保秘密性
  • 公钥的真实性和完整性
  • 解密钥的秘密性、真实性和完整性

5.4. 公钥证书

5.4.1. 概念

经过可信实体签名的一组信息的集合被称为证书( Certificate Certificate),而可信实体被称为签证机构 CA(Certification Authority Certification Authority)。

一般地讲,证书是一个数据结构,是一种由一个可信任的权威机构签署的信息集合

公钥证书PKC是一种包含持证主体标识、持证主体公钥等信息,并由可信签证机构(CA)签署的信息集合;主要用于确保公钥及其与用户绑定关系的安全。这个公钥就是证书所标识的那个主体的合法的公钥

5.4.2. 原理

任何一个用户只要知道签证机构的公钥,就能检查对证书签名的合法性。如果检查正确,那么用户就可以相信那个证书所携带的公钥是真实的,而且这个公钥就是证书所标识的那个主体的合法的公钥。

由于公钥证书不需要保密,可以在网络上分发,从而实现公钥的安全网络分配。又由于公钥证书有CA的签名,攻击者不能伪造合法的公钥证书。因此,只要CA是可信的,公钥证书就是可信的,其公钥就是可信的。

5.4.3. X.509证书

目前应用最广泛的证书格式是国际电信联盟ITU(International Telecommunication Union)提出的X.509版本3格式。

INTERNET工程任务组(IETF)针对X.509在INTERNET环境的应用,颁布了一个作为X.509子集的RFC2459。从而使X.509在INTERNET环境中得到广泛应用

5.5. 公钥基础设施PKI

5.5.1. 概念

公钥证书、证书管理机构、证书管理系统围绕证书服务的各种软硬件设备以及相应的法律基础共同组成公开密钥基础设施PKI(Public Key Infrastructure Public Key Infrastructure)

本质上,PKI是一种标准的公钥密码的密钥管理平台

公钥证书是PKI中最基础的组成部分,此外PKI还包括签发证书的机构(CA),注册登记证书的机构( RA),存储和发布证书的目录,密钥管理,时间戳服务,管理证书的各种软件和硬件设备,证书管理与应用的各种政策和法律,以及证书的使用者。所有这些共同构成了PKI 。

5.5.2. CA

负责签发证书、管理和撤销证书,是所有注册用户所信赖的权威机构

CA在给用户签发证书时要加上自己的签名,以确保证书信息的真实性。为了方便用户对证书的验证,CA也给自己签发证书。这样,整个公钥的分配都通过证书形式进行

不同的CA服务于不同的范围,履行不同的职责

5.5.3. RA

专门负责受理用户申请证书的机构,即对证书申请人的合法性进行认证,并决定是批准或拒绝证书申请。

5.5.4. 证书签发

  1. 用户向CA提交RA的注册批准信息及自己的身份等信息(或由RA向CA提交);
  2. CA验证所提交信息的正确性和真实性;
  3. CA为用户产生密钥(或由用户自己产生并提供密钥),并进行备份;
  4. CA生成证书,并施加签名;
  5. 将证书存档入库,并将证书的一个副本交给用户。

5.5.5. 证书目录

CA采用证书目录的式集中存储和管理证书。通常采用建立目录服务器证书库的方式为用户提供证书服务

为了应用方便,证书目录不仅存储管理用户的证书,还同时存储用户的相关信息(如,电子邮件地址,电话号码等)。因为证书本身是非保密的,因此证书目录也是非保密的。

用于INTERNET环境的目录存取协议,并称为轻型目录存取协议LDAP(Lightweight Directory Access Protocol)。LDAP协议在目录模型上与 协议在目录模型上与X.500 兼

容,但比X.500更简单,实施更方便

5.5.6. 证书的撤销

和证书的签发一样,证书的撤销也是一个复杂的过程。证书的撤销要经过申请、批准、撤销三个过程。

5.5.7. 信任模型

证书用户、证书主体、各个CA之间的证书认证关称为PKI的信任模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12511.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

将webserver部署到公网(使用阿里云服务器)

阿里云轻量应用服务器介绍 这里我是用的是阿里云进行部署,阿里云推出的相关产品包括 云服务器 ECS 和轻量应用服务器。阿里云的指引和说明我觉得还是比较清楚详细的,适合新手。 先来介绍相关的一些名词: 云服务器 ECS(Elastic …

【JavaEE进阶】Spring 事务和事务传播机制

目录 1.事务回顾 1.1 什么是事务 1.2 为什么需要事务 1.3 事务的操作 2. Spring 中事务的实现 2.1 Spring 编程式事务(了解) 2.2 Spring声明式事务 Transactional 对比事务提交和回滚的日志 3. Transactional详解 3.1 rollbackFor 3.2 Transactional 注解什么时候会…

Python 实现阿里滑块全攻略

阿里划块技术为开发者提供了高精度的视觉分割能力,而 Python 作为一种简洁高效的编程语言,可以轻松调用阿里划块接口,实现各种场景下的图像分割需求。 Python 调用阿里云分割抠图 - 商品分割接口的步骤如下:首先,开通…

[ComfyUI]Flux:繁荣生态魔盒已开启,6款LORA已来,更有MJ6写实动漫风景艺术迪士尼全套

今天,我们将向您介绍一款非常实用的工具——[ComfyUI]Flux。这是一款基于Stable Diffusion的AI绘画工具,旨在为您提供一键式生成图像的便捷体验。无论您是AI绘画的新手还是专业人士,这个工具都能为您带来极大的便利。 在这个教程中&#xff…

阿里云CDN稳定吗?

在互联网服务中,CDN(内容分发网络)扮演着至关重要的角色,它能够加速网站加载速度,提升用户体验。那么,作为市场上的领先者之一,阿里云的CDN到底稳定吗?九河云来和你说一说吧。 一、…

Matlab实现鹈鹕优化算法(POA)求解路径规划问题

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 鹈鹕优化算法(POA)是一种受自然界鹈鹕捕食行为启发的优化算法。该算法通过模拟鹈鹕群体在寻找食物时的协作行为,如群飞、潜水和捕鱼等,来探索问题的最优解。POA因其…

C++builder中的人工智能(22):在C+++中读取WAV格式的音频文件

在这篇文章中,我们将探讨如何在C中读取WAV格式的音频文件。音频文件是计算机科学和编程中的一个重要组成部分,正确使用音频可以为娱乐应用程序增添乐趣,或者在业务应用程序中提醒用户重要事件或状态变化。在这篇文章中,我们将解释…

.NET Core 应用程序如何在 Linux 中创建 Systemd 服务 ?

.NET Core 和 Linux 已经成为一个强大的组合,为开发人员提供了一个灵活、高性能的平台来构建和运行应用程序。在 Linux 上部署 .NET Core 应用程序的一个关键方面是利用 systemd 服务来确保应用程序顺利运行,在开机时自动启动,并在失败后重新…

@RestController 源码解读:解决 Web 开发中 REST 服务的疑难杂症

目录 一、RestContrller注解 1.1 查看底层源码 1.2 AliasFor注解说明 1.2.1 注解别名 1.2.2 元数据别名 1.3 value() 方法的作用 一、RestContrller注解 1.1 查看底层源码 首先编写如下内容: RestController public class TestController {} 按住 Ctrl &am…

vs2019托管调试助手 “ContextSwitchDeadlock“错误

错误描述 托管调试助手 "ContextSwitchDeadlock":“CLR 无法从 COM 上下文 0xd183e0 转换为 COM 上下文 0xd18328,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长…

H.264/H.265播放器EasyPlayer.js RTSP播放器关于webcodecs硬解码H265的问题

EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、Mp3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方式&#xff0c…

免费在线图片翻译工具:PicTech

文章目录 简介编辑功能 简介 PicTech是一款免费的在线图片翻译工具。图片翻译,顾名思义就是把图片中的文字翻译成另外一种语言,并以图片的形式输出。这种功能在手机的词典软件中似乎还挺常见的,但作为一种在线工具我还是第一次见。 其使用过…

【Vue】Vue3.0(二十)Vue 3.0 中mitt的使用示例

上篇文章 【Vue】Vue3.0(十九)Vue 3.0 中一种组件间通信方式-自定义事件 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年11月11日12点23分 文章目录 一、mitt 在…

搭建监控系统Prometheus + Grafana

公司有个技术分享会,但是业务忙,没时间精心准备,所以就匆匆忙忙准备分享一下搭建(捂脸哭)。技术含量确实不多,但是分享的知识确实没问题。 以下是搭建过程: 一、讲解 Prometheus Prometheus 最…

蓝桥杯真题——班级活动

目录 题目链接:1.班级活动 - 蓝桥云课 题目描述 输入格式 输出格式 样例输入 样例输出 样例说明 评测用例规模与约定 解法一:Map集合处理 举个例子 Java写法: C写法: 运行时间 时间复杂度和空间复杂度 时间复杂度…

Win10下使用Anaconda安装GPU版本PyTorch

一、判断是否有Nvidia(英伟达)显卡 右键开始菜单,在弹出选项中选择任务管理器。 点性能选项,然后点GPU。在右上方会显示GPU名称,只有带NVIDIA的英伟达显卡的电脑才能安装GPU版本,否则其他的就只能安装CPU版本。 二、安装CUDA 首…

精品案例PPT | 企业架构及典型设计方案

本文全面介绍企业架构的理论和实践,包括企业架构的概述、元模型、视图、业务架构、应用架构、数据架构、技术架构以及企业架构管控等内容,有助于企业管理者理解和设计企业级的IT架构,确保架构的全局性、整体性、关联性、可控制性、可实现性和…

java--泛型

欢迎来到我的博客~~欢迎大家对我的博客进行指导~点击进入我的博客主页 目录 一、什么是泛型二、包装类2.1基本数据类型和对应的包装类2.2装箱和拆箱2.3 自动装箱和自动拆箱 三、引出泛型四、泛型类的使用4.1 语法4.2示例 五、泛型如何编译的六、泛型的上界6.1语法6.2 示例 七、…

【CentOS】中的Firewalld:全面介绍与实战应用(下)

🐇明明跟你说过:个人主页 🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、iptables 时代 2、firewalld 时代 二、服务管…

【新人系列】Python 入门(九):数据结构 - 中

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…