为什么swarm-node.key有两个键

时间:2018-04-01 14:40:18

标签: docker encryption docker-swarm

关于this文章,我了解到该文件正在保存私钥,该私钥用于加密Raft日志并确保节点之间的安全TLS通信。

这是档案:/var/lib/docker/swarm/certificates/swarm-node.key
查看其内容:
enter image description here

它似乎有两个部分 第一个(标有绿色)是筏子 根据{{​​3}}文章:

  

在管理员主机上,秘密总是在加密时加密。默认情况下   加密这些秘密的密钥(称为数据加密密钥,    DEK )也以明文形式存储在磁盘上。

第二把钥匙是什么?它是负责加密Raft日志的关键吗?

是否,此文件包含两个键:

  1. 加密秘密
  2. 将数据加密到Raft

1 个答案:

答案 0 :(得分:0)

有两种数据需要加密:

  1. 节点之间的一般流量数据。
  2. 敏感的秘密。
  3. 节点之间的流量数据由TLS加密。该群使用MTLS来保护节点之间的通信。

    敏感秘密由DEK加密。

    swarm-node.key文件只包含一个私钥,这是TLS中使用的密钥。该文件由两部分构成:标题部分和正文部分。正文部分携带实际的私钥。标题部分可以携带额外的信息。在这种情况下,DEK位于标题部分。

    Source code

    // the raft DEK (data encryption key) is stored in the TLS key as a header
    // these are the header values
    pemHeaderRaftDEK              = "raft-dek"
    ...