网络安全系列 之 密钥安全管理 - eaglediao - 博客园

标签: | 发表时间:2019-10-11 15:53 | 作者:
出处:https://www.cnblogs.com

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

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

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个字节的字符串。
    http://javadoc.iaik.tugraz.at/iaik_jce/current/iaik/pkcs/pkcs5/PBKDF2.html
  3. 基于标准的密钥协商机制
  4. 基于安全的密钥生成工具等

2.2 分发

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

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

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

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

数字信封加解密接口

接口 iPSI OpenSSL
加密 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 可审核

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

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

关于密钥管理的几个设计原则
网络安全有赖于密钥管理的有效性,即保证密码的产生,存储,传输和使用的安全性,这就要求对密钥进行有效的管理。



1,任何密码不以明文的方式进行存储,除非是放在足够安全的密码装置内。人工分配的密钥必须以密钥分量方式分别由不同的多个可信任的实体保管,不得直接以明文方式由单个实体掌握,对密码装置的任何操作均无法使得密钥以明文方式出现于密码装置之外;


2,保证密钥的分离性,不同通信实体之间使用不同的密钥,且这些密钥不能存在相关性,即一对通信实体之间的安全通信出现问题,不应引起另一对实体的安全通信,包含这四个实体中有两个实体相同的情况;


3,密钥需要具备一定的备份机制,当系统出现故障导致密钥的丢失,应该能通过对密钥备份的回复,来确保系统是可修复的,但密钥的备份不应该降低密钥管理的安全性。


4,密钥必须具备有效期,当旧密钥过期时,需要及时进行密钥的替换,同时,新密钥安全性和旧密钥的安全性应该分离,即旧密钥即使泄漏也不应该引起新密钥的安全性出现问题.


5,密钥管理需要具备层次性。
       网络要求每次交易的PIN保密.MAC的计算以及其它信息的加密所使用的密钥互不相同,作到一次一密.而为了保证交易的延续性,这些密钥均要由一个实体产生并安全地传输到另一个与之通信的实体, 这就要求通信双方必须共同使用一个加密密钥(KEK),以加密上述的各种工作密钥,KEK不能通过网络进行传输,而只能在系统使用前装入,或者通过两个实体各自分别产生一个相同的密钥作为KEK,有了KEK,便解决了会话密钥的传输问题。



       在网络中,商户、发卡行均需要与为数众多的实体进行安全通信,这就要求系统中具有大量的密钥(会话密钥和KEK),这些密钥无法全部保存在安全密码装置中,因此需要使用主密钥(MFK)对这些密钥加密存储于密码装置之外的主机数据库中。



   一级:MFK,主密钥,存储于密钥装作中,用于加密KEK和SK,以保存在密码装作外。
   二级:KEK,密钥加密密钥,用于SK的加密传送,每对通信实体都有一相同的KEK。
   三级:SK,会话密钥,用于加密PIN,产生MAC和验证MAC等。



6,密钥和密钥属性

       KEK和SK都具有密钥属性,用于功能分离和使用合法性检验,以提高系统的逻辑安全.密钥的属性包含此密钥的层次(标识KEK或SK).使用有效次数.MFK序号.密钥用途和密钥校验值等内容,密钥属性与密钥一起使用,密码装置根据密钥属性校验密钥使用的合法性.控制密钥的误用.密钥校验值由相应密钥值与属性在MFK的加密下产生.密钥属性仅与相应密钥的明文保存在主机中,也仅用于主机安全密码装置,不进行传输。

相关 [网络安全 系列 密钥] 推荐:

网络安全系列 之 密钥安全管理 - eaglediao - 博客园

- -
最近涉及到安全相关的知识,这里对安全秘钥管理要点做简单记录:. 加密技术 是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密). 一个加密算法是将消息与密钥(一串数字)结合,产生不可理解的密文的步骤. 密钥是结合密码算法一起使用的参数,拥有它的实体可以加密或恢复数据.

网络安全

- - CSDN博客系统运维推荐文章
1、防止入侵者对主机进行ping探测,可以禁止Linux主机对ICMP包的回应.  iptables 防火墙上禁止ICMP应答.  关闭不必要的端口,时常检查网络端口情况.  nmap  可以扫描端口.  关闭不必要的服务和端口.  为网络服务指定非标准的端口.  开启防火墙,只允许授权用户访问相应的服务端口.

http网络安全

- - CSDN博客推荐文章
每天都会用到http协议,也听说http协议的安全的重要性,却一直很少真的去模拟攻击. 特意通过一篇博客整理下http可能遇到的安全问题,用脚本语言php去模拟和处理. 1 http为什么会存在安全问题. http是没有状态和加密的协议,如果不使用(ssl)https协议,很多信息都是透明的,传输的数据很容易被捕获.

网络安全-常见网络安全攻击

- - 互联网 - ITeye博客
主要介绍比较常见的3种网络安全攻击手段,分别是:跨站脚本攻击(XSS)攻击、跨站请求伪造(CSRF)攻击、SQL注入攻击. 1、XSS攻击:应该算是最普遍的应用程序层攻击之一,攻击的目的是盗走客户端 cookies,或者任何可以用于在 Web 站点确定客户身份的其他敏感信息. 用这三种方式可以保护站点不受 XSS 攻击:.

8个网络安全开源框架

- - HTML5资源教程
能帮助构建、操作安全系统的开源项目多到数不清,尤其是随着对工具的安全监控和事件反应的要求不断加强的情况下,开源安全软件不得不提高自己的性能. 下面为你介绍10款开源的安全软件. Bro 是一款很强大的框架,用于网络分析和安全监控,它和常见的IDS有所不同. 与通用的网络传输分析工具相比它侧重于网络安全监控和提供一个完整的平台化工具.

使用 Cilium 增强 Kubernetes 网络安全

- - IT瘾-dev
在本篇,我们分别使用了 Kubernetes 原生的网络策略和 Cilium 的网络策略实现了 Pod 网络层面的隔离. 不同的是,前者只提供了基于 L3/4 的网络策略;后者支持 L3/4、L7 的网络策略. 通过网络策略来提升网络安全,可以极大降低了实现和维护的成本,同时对系统几乎没有影响. 尤其是基于 eBPF 技术的 Cilium,解决了内核扩展性不足的问题,从内核层面为工作负载提供安全可靠、可观测的网络连接.

宣传网络安全,谷歌新广告不走寻常路

- tossking - 爱范儿 · Beats of Bits
2bon2btitq 这串密码也许比你现在用的要强些,况且它还真不难记. 问题是你是否想到了这种创建密码的方式. Google 正在和 Citizens Advice Bureau 广告公司发起一场广告活动:宣传网络安全. 谷歌曾发布过不少优质的广告:实验室里的科学怪人 (Wave);教室里的定格动画(Chrome).

SecTools 2011年的Top125款网络安全工具排行榜

- - 服务器运维与网站架构|Linux运维|X研究
PS:美帝知名网络安全网站SecTools在2011年年底对目前最流行的网络安全工具做了排名,这些工具里有部分也是我本人常用的,有开源的也有商业的. 详细榜单请看:(本人没空翻译了,英文不好的童鞋查查翻译工具.

Nmap 6.40 发布,网络安全审计工具

- - 开源中国社区最新新闻
Nmap 6.40 发布了,包含 14 个新的 NSE 脚本,大量的新操作系统和服务检测的签名,新增 --lua-exec 来执行脚本等等,详情请看 发行说明. 下载地址: http://nmap.org/download.html. nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.

网络安全课堂:“中间人攻击”(MITM)

- - 煎蛋
你拿着刚买的咖啡,连上了咖啡店的WiFi,然后开始工作,这样的动作在之前已经重复了无数遍,一切都和谐无比. 但你不知道的是有人正在监视你,他们监视着你的各种网络活动,盗取你的银行凭证,家庭住址,个人电子邮件和联系人,当你发现的时候,已经晚了. 现在的小偷已经不仅仅是简单的在地铁上偷你的钱包,更高级的是使用网络攻击获取你的各种信息,当你在咖啡馆上网检查你的账户信息的时候,也许黑客就拦截了你电脑和WiFi之间的通信,监视着你的一举一动.