如何在Linux上最妥善地管理加密密钥?(2)

这就是为什么你把公钥放在自己的服务器上,用来通过SSH登录进入到服务器。私钥是你贴身带着的。你不允许那些私钥落到别人手里。

但是仍然有问题。以我的git服务器为例。我要做几个决定。有时候,我登录进入到托管在别处的开发服务器。在那台开发服务器上,我需要连接到我的那台git服务器。开发服务器如何才能连接到git服务器?通过使用私钥。而这里就存在问题。这种场景需要我把私钥放在托管在别处的服务器上,这么做可能很危险。

现在看看进一步的场景:如果我使用单一密钥登录进入到多台服务器,会怎样?如果入侵者设法弄到了这样一把私钥,他有了该私钥后可以进而访问整个服务器虚拟网络,准备搞一些严重的破坏。这可不是什么好事。

而这当然引出了另一个问题:我是否应该对另外那些服务器使用同一把密钥?就像我刚才描述的那样,这可能很危险。

最后,这听起来一团糟,不过有一些简单的解决办法。不妨逐一介绍。

(注意:除了仅仅登录进入到服务器外,还有许多地方要用到密钥,不过我介绍这一种场景是为了表明你在处理密钥时面临的问题。)

  重视通行码

你在创建密钥时,可以选择添加通行码(passphrase),使用私钥时需要通行码。有了这个通行码,私钥文件本身使用通行码来加密。比如说,如果你将公钥存储在服务器上,使用私钥登录进入到该服务器,就会看到输入通行码的提示。要是没有通行码,密钥就没法使用。另外,你可以配置私钥,一开始没有通行码。那样,你只需要登录进入到服务器的密钥文件。

对用户来说通常不用通行码更容易,但是我强烈建议在许多情况下使用通行码,一个理由是,如果私钥文件被偷,偷走文件的人还是没法使用它,除非他能查明通行码。从理论上来说,这可以为你赢得时间,因为你可以在攻击者发现通行码之前将公钥从服务器上删除,因而保护系统。使用通行码还有其他理由,不过光这个理由就值得我在许多情况下使用它。(举例说,我在安卓平板电脑上装有VNC软件。平板电脑存有我的私钥。如果平板电脑被偷了,我可以立即从平板电脑登录进入的服务器废除公钥,让私钥毫无用处,有没有通行码都没有关系。)不过在一些情况下,我并不使用通行码,因为我登录进入的服务器可能没有太多的宝贵数据在上面。这要看具体情况。

  服务器基础设施

你如何设计服务器基础设施将影响到如何管理密钥。比如说,如果你有多个用户要登录,就需要确定每个用户是否获得单独的密钥。(通常来说,他们应该获得单独的密钥;你不希望用户共享私钥。那样一来,如果某个用户离开了企业或者失去了信任,你就可以废除该用户的密钥,没必要为另外每个用户生成新密钥。同样,如果共享密钥,他们就能以彼此的身份登录进去,这同样不好。)但是另一个问题是,你如何分配服务器。比如说,你使用某种工具(比如Puppet)来分配许多服务器吗?是否基于自己的映像来创建多台服务器?如果你复制服务器,每台服务器是否需要有同样的密钥?不同的云服务器软件让你可以配置这方面,具体看你怎么选择了。可以让服务器获得同一密钥,也可以为每台服务器生成新的密钥。

如果你处理的是复制的服务器,要是用户需要使用不同的密钥登录进入到两台其他方面相似的不同服务器,就会让人犯晕。但是另一方面,让几台服务器共享同一密钥存在安全风险。或者另一方面,如果你的密码需要用于登录之外的用途(比如挂载加密的驱动器),那么你就需要同一密钥在多个地方。正如你所见,是否需要在不同的服务器上使用同一密钥不是我可以为你做出的决定;有一些地方需要取舍,你要自行决定什么最合适。

最后,你可能会有:

·需要登录进入的多台服务器;

·登录进入不同服务器的多个用户,每个用户有各自的密钥;

·每个用户有多把密钥,以便登录进入到不同的服务器。

(如果你在其他情况下使用密钥――你可能会这样,说到如何使用密钥,需要多少密钥,是否共享密钥以及你如何处理密钥的公共部分和私密部分,同样的基本概念仍会适用。)

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

网络安全:互联网安全 如何防范木马及病毒

网络安全:互联网安全 如何防范木马及病毒的攻击

一、计算机中毒有哪些症状? 人生病了,会有各种各样的症状,同样,电脑中毒了也会有...[详细]

加强网站服务器安全维护的技巧

加强网站服务器安全维护的技巧

计算机系统服务器的维护工作十分重要,稍有不慎就会使整个网络陷入瘫痪。目前,网络经...[详细]

电脑离线就安全?这个软件一样能远程窃取数

电脑离线就安全?这个软件一样能远程窃取数据

以色列的一个研究团队已改良了窃取离线电脑数据的方法。人们一直认为这种离线电脑在面...[详细]

如何在Linux上最妥善地管理加密密钥?

如何在Linux上最妥善地管理加密密钥?

存储SSH加密密钥和牢记密码可能是一件让人很头痛的事儿。不过遗憾的是,在如今恶意黑...[详细]

如何在 Linux 上运行命令前临时清空 Bash

如何在 Linux 上运行命令前临时清空 Bash 环境变量

我是个 bash shell 用户。我想临时清空 bash shell 环境变量。但我不想删除或者 unset...[详细]

返回首页 返回顶部