基于TLS协议的秘钥管理与传输

1,秘钥管理

加密系统最重要的环节——如何保证秘钥的安全,本方案的设计思想主要是,解密程序不进行秘钥的存储,而且是向秘钥管理中心进行申请。

秘钥管理中心存储了整个平台的核心**,所有的**都在这里经过存储**加密进行存储。配有管理页面,可以对接入的系统信息进行管理。

管理中心采用多节点部署,秘钥不落地,保存在内存中。各节点相互认证通信,当有一个节点重启,可向其他节点申请存储秘钥,各节点之间的通信采用加密传输。

如何保证管理中心各个节点的互信、及秘钥向服务端的传输呢?

TLS协议为方案的需求提供了支持!!

 

2,TLS介绍

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。

该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

TLS协议采用主从式架构模型,用于在两个应用程序间透过网络创建起安全的连线,防止在交换数据时受到窃听及篡改。

TLS协议的优势是与高层的应用层协议(如HTTPFTPTelnet等)无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。

TLS协议是可选的,必须配置客户端和服务器才能使用。主要有两种方式实现这一目标:一个是使用统一的TLS协议通信端口(例如:用于HTTPS的端口443);另一个是客户端请求服务器连接到TLS时使用特定的协议机制(例如:邮件、新闻协议和STARTTLS)。一旦客户端和服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手,客户端和服务器协商各种参数用于创建安全连接:

  • 当客户端连接到支持TLS协议的服务器要求创建安全连接并列出了受支持的密码组合(加密密码算法和加密哈希函数),握手开始。

  • 服务器从该列表中决定加密和散列函数,并通知客户端。

  • 服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构(CA)和服务器的公钥。

  • 客户端确认其颁发的证书的有效性。

  • 为了生成会话**用于安全连接,客户端使用服务器的公钥加密随机生成的**,并将其发送到服务器,只有服务器才能使用自己的私钥解密。

  • 利用随机数,双方生成用于加密和解密的对称**。这就是TLS协议的握手,握手完毕后的连接是安全的,直到连接(被)关闭。如果上述任何一个步骤失败,TLS握手过程就会失败,并且断开所有的连接。

  • 基于TLS协议的秘钥管理与传输

3、总结

TLS协议的安全性,很好的完成了秘钥管理中心节点之间的互信传输、以及与服务端的秘钥传输。各节点之间一直保持着连接、防止伪造节点接入获取信息或者篡改信息,由于各节点均握有秘钥,只篡改一台机器的秘钥 是不能影响真个系统的,被篡改的机器也会被修正回正确的秘钥,是不是有点区块链的感觉呢。