网络安全系列 之 密钥安全管理

最近涉及到安全相关的知识,这里对安全秘钥管理要点做简单记录:

加密技术 是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

0. 基本概念

加密包括两个元素:算法密钥。一个加密算法是将消息与密钥(一串数字)结合,产生不可理解的密文的步骤。
密钥是结合密码算法一起使用的参数,拥有它的实体可以加密或恢复数据。

密钥可以分对称密钥和非对称密钥。

对称密钥: 加/解密使用相同密钥。 -- AES等算法
非对称密钥:需要两个密钥来进行加密和解密。(公钥和私钥) -- RSA等算法

1. 密钥分层管理结构

工作密钥 (WK/WorkKey)

密钥加密密钥 (KEK或MK/MasterKey)

根密钥(RK/RootKey)

  • 密钥分层管理至少选择两层结构进行管理:根密钥和工作密钥。

2. 密钥生命周期安全管理

密钥生命周期 由于不良设计可能导致的安全问题
生成: 生成算法随机性差,导致密钥可被预测,或攻击者可以自己生成密钥。
分发: 密钥明文分发,导致密钥存在被攻击者截获的风险。
更新: 密钥从不更新,导致攻击者更容易获取密钥,从而能够轻易获取敏感数据的明文。
存储: 密钥明文存储在数据库中,导致攻击者容易读取出密钥,从而能够轻易获取敏感数据的明文。
备份: 如果重要密钥从不备份,一旦密钥丢失,将导致原有加密的数据不能解密,大大降低了系统可靠性。
销毁: 密钥仅被普通删除,导致攻击者有可能恢复出密钥。

密钥的建立包括密钥的生成和分发。

2.1 生成

  1. 基于安全的随机数发生器
  2. 基于密钥导出函数
     

PBKDF2是一个基于口令的密钥导出函数,导出密钥的计算公式:
DK = PBKDF2(HashAlg, Password, Salt, count, dkLen)
PBKDF2 :密钥导出函数名
输入:
HashAlg :哈希算法(推荐使用SHA256)
Password :用户输入的口令或者读取的一串字符串
Salt :盐值,为安全随机数,至少为8字节
count :迭代次数,正整数
dkLen :导出密钥的字节长度,正整数。
输出:
DK :导出的密钥,长度为dkLen个字节的字符串。
```
PBKDF2 (6.0 API Documentation)
3. 基于标准的密钥协商机制
4. 基于安全的密钥生成工具等

2.2 分发

密钥的分发是将密钥通过安全的方式传送到被授权的实体,一般通过安全传输协议或者使用数字信封等方式来完成。

数字信封是对称密码体制和非对称密码体制的一种混合应用,即解决了非对称密码体制加解密效率的问题,又妥善解决了密钥传送的安全问题。

  • 在密钥的分发过程中,对于对称密钥和非对称密钥的私钥而言,应保证其完整性和机密性;

    推荐产品开发人员使用安全的加密传输协议(如SSL、IPSec、SSH)来传输这些敏感数据。
    当产品的应用场景中不具备建立安全传输协议的条件时,也可以使用数字信封来完成密钥的分发。

数字信封加解密接口

接口iPSIOpenSSL
加密CRYPT_sealInit()EVP_SealInit()
加密CRYPT_sealUpdate()EVP_SealUpdate()
加密CRYPT_sealFinal()EVP_SealFinal()
解密CRYPT_openInit()EVP_OpenInit()
解密CRYPT_openUpdate()EVP_OpenUpdate()
解密CRYPT_openFinal()EVP_OpenFinal()

对于非对称密钥的公钥而言,应保证其完整性与真实性。

2.3 使用

  • 一个密钥只用于一个用途(如:加密、认证、随机数生成和数字签名等)。
  • 非对称加密算法私钥仅可被其拥有者掌握。

2.4 存储

  • 用于数据加解密的工作密钥不可硬编码在代码中。
  • 对称密钥、私钥、共享秘密等均属于敏感数据,在本地存储时均需提供机密性保护。
       上层密钥的机密保护由下层密钥提供 --> 根密钥的安全管理。
    
  • 密钥组件方式生成根密钥时,密钥组件需要分散存储,当密钥组件存储于文件中时,须对文件名做一般化处理。

2.5 更新

当密钥已经达到其使用期限或者密钥已经被破解时,密码系统需要有密钥更新机制来重新产生新的密钥

  • 密钥须支持可更新,并明确更新周期。

2.6 备份

密钥丢失将导致密文数据无法解密,这样便造成了数据的丢失。
应依据具体场景,来评估是否需要对密钥提供备份与恢复机制

2.7 销毁

  • 不再使用的密钥应当立即删除。

2.8 可审核

  • 密钥管理操作需要记录详细日志。

密钥的生成、使用(作为管理用途,如加解密密钥、派生密钥必须记日志,作为业务用途,如加解密业务数据则不要求)、更新、销毁操作是重要的管理操作。
日志中需详细记录密钥的各项管理操作,包括但不限于记录操作的主体(人或设备)、时间、目的、结果等可用于事件追溯的信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python爬虫实战】深入解析 Scrapy:从阻塞与非阻塞到高效爬取的实战指南

🌈个人主页:易辰君-CSDN博客 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、阻塞和非阻塞 (一)阻塞 (二)非阻塞 二、Scrapy的工作…

计算(a+b)/c的值

计算(ab)/c的值 C语言代码C语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 给定3个整数a、b、c,计算表达式(ab)/c的值,/是整除运算。 输入 输入仅一行&…

技术文档的高质量翻译对俄罗斯汽车推广的影响

进入新市场需要的不仅仅是一个伟大的产品;它要求深入了解当地消费者的期望、法规和文化差异。对于希望在俄罗斯取得成功的国际汽车制造商来说,技术文件的质量是一个关键因素。手册、规范和服务指南在产品和用户之间形成了直接的桥梁,影响着客…

docker启动kafka、zookeeper、kafdrop

1、启动zookeeper docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper2、启动kafka docker run -d --name kafka --publish 9092:9092 --link zookeeper:zookeeper -e KAFKA_BROKER_ID1 -e HOST_IP127.0.0.1 -e KAFKA_ZOOKEEPER_CONNECTzookeeper:2181…

网络安全事件管理

一、背景 信息化技术的迅速发展已经极大地改变了人们的生活,网络安全威胁也日益多元化和复杂化。传统的网络安全防护手段难以应对当前繁杂的网络安全问题,构建主动防御的安全整体解决方案将更有利于防范未知的网络安全威胁。 国内外的安全事件在不断增…

c++:面向对象三大特性--继承

面向对象三大特性--继承 一、继承的概念及定义(一)概念(二)继承格式1、继承方式2、格式写法3、派生类继承后访问方式的变化 (三)普通类继承(四)类模板继承 二、基类和派生类的转换&a…

【C语言】web workers

请解释一下什么是Web Workers,以及它在哪些场景下会被使用。 Web Workers是一种HTML5技术,它允许在浏览器后台线程中运行脚本,从而实现了JavaScript的异步处理。Web Workers创建了独立于主线程的执行上下文,可以执行计算密集型任…

关于网络安全攻防知识

DNS 劫持 什么是DNS劫持? DNS劫持又叫域名劫持,(劫持了路由器或域名服务器等),篡改了域名的解析结果,使得指向该域名的IP指向IP,你想访问正经网站结果给你跳到一个不正经的网站,实现…

基于Boost库的搜索引擎

本专栏内容为:项目专栏 💓博主csdn个人主页:小小unicorn ⏩专栏分类:基于Boots的搜索引擎 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学习编程知识…

Pgsql:json字段查询与更新

1.查询json字段的值 SELECT attribute_data->>设施类别 mycol, * FROM gis_coord_data WHERE attribute_data->>设施类别阀门井 查询结果如下: 2.更新json字段中的某个属性值 UPDATE gis_coord_data SET attribute_data(attribute_data::jsonb ||{&quo…

【eNSP】动态路由协议RIP和OSPF

动态路由RIP(Routing Information Protocol,路由信息协议)和OSPF(Open Shortest Path First,开放式最短路径优先)是两种常见的动态路由协议,它们各自具有不同的特点和使用场景。本篇会对这两种协…

Linux——基础命令(1)

目录 一、认识Linux 终端命令格式 查阅命令帮助信息 -help 辅助操作 自动补全 清屏和查看当前工作目录 二、基本命令 文件和目录常用命令 1.ls-查看文件与目录 2.cd切换目录 (1)touc创建文件或修改文件时间 (2)mkdir创…

leetcode - LRU缓存

什么是 LRU LRU (最近最少使用算法), 最早是在操作系统中接触到的, 它是一种内存数据淘汰策略, 常用于缓存系统的淘汰策略. LRU算法基于局部性原理, 即最近被访问的数据在未来被访问的概率更高, 因此应该保留最近被访问的数据. 最近最少使用的解释 LRU (最近最少使用算法), 中…

数据工程流程

** 数据工程流程图** #mermaid-svg-ArT55xCISSfZImy3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ArT55xCISSfZImy3 .error-icon{fill:#552222;}#mermaid-svg-ArT55xCISSfZImy3 .error-text{fill:#552222;stroke…

如何提升爬虫的效率和稳定性?

提升Java爬虫的效率和稳定性可以从以下几个方面进行: 限制请求频率与休眠时间:为了避免触发网站的反爬虫机制,合理的请求频率控制至关重要。通过引入time.sleep()等方式设定间隔,可以模拟人工浏览的行为,避免过快的请求…

基于springboot的HttpClient、OKhttp、RestTemplate对比

HttpClient详细 Httpclient基础&#xff01;&#xff01;&#xff01;&#xff01;实战训练&#xff01;&#xff01;&#xff01;&#xff01;-CSDN博客 OKhttp使用 OKhttp导包 <!-- ok的Http连接池 --><dependency><groupId>com.squareup.okhttp3</g…

【Python】九大经典排序算法:从入门到精通的详解(冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、基数排序、桶排序)

文章目录 1. 冒泡排序&#xff08;Bubble Sort&#xff09;2. 选择排序&#xff08;Selection Sort&#xff09;3. 插入排序&#xff08;Insertion Sort&#xff09;4. 归并排序&#xff08;Merge Sort&#xff09;5. 快速排序&#xff08;Quick Sort&#xff09;6. 堆排序&…

网络协议之DNS

一、DNS概述 域名系统&#xff08;Domain Name System&#xff0c;缩写&#xff1a;DNS&#xff09;是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便地访问互联网。DNS使用TCP和UDP端口53&#xff0c;通过递归查询请求的方式来…

Z-score标准化简单理解

目录 归一化解决量纲问题 一个组里排名第一的特征是100.另一个里排名第一的特征是10,不进行归一化两组合并后特征偏向1组; 归一化后两组特征都会体现出来 Z-score标准化 Z-score标准化举例说明 归一化解决量纲问题 一个组里排名第一的特征是100.另一个里排名第一的特征…

常用docker应用部署,wordpress、mysql、tomcat、nginx、redis

案例一、 wordpress 创建网络 docker network create wordpress-network创建容器 docker volume create --name mariadb_data docker run -d --name mariadb --restartalways \-p 3306:3306 \--env MARIADB_ALLOW_EMPTY_ROOT_PASSWORDyes \--env ALLOW_EMPTY_PASSWORDyes \--…