3

如果您的应用程序需要加密/解密数据(出于各种原因),您是否有任何理由使用硬件设备(例如 USB 加密设备 - 如马克思 CryptoBox)而不是使用软件加密库(如 .net Cryptography或自己编写)并将您的密钥保存在安全的密钥库中?

我正在就此事寻求一些客观的看法。


缩小提出的问题范围: 如果使用 USB 加密加密狗的系统安装在物理安全的服务器保险库中,并且只有一个系统存在(即它不是分发和运行的软件产品),您会怎么看?许多台式机)?用非常简单的术语来说,上述系统的目的是验证(解密和比较)一段传入的加密数据。


到目前为止,感谢您的出色回答!

4

4 回答 4

3

这不是关于什么更安全,因为没有什么是 100% 防弹的。这是一个关于“如何使其尽可能困难”的问题

您可以从这一点看出:如果您将密钥存储在计算机上,它们会 24/7 全天候存在。如果我的一对密钥在外部设备上,则只有在连接到设备时才能访问这些密钥。==>您减少了其他人可以复制您的密钥的时间范围。如果不需要物理访问,访问某些东西会容易得多。

想想网上银行:许多银行都添加了“外部”身份验证方式,例如 Tan / Tac / tanSMS/ tokengenerators 等。这些都不是安全的:我可以偷你的登录密码,我可以偷你的手机,我可以窃取你的 Tac/Tan 列表等等。但是机会非常低,我可以一次窃取所有必要的元素 => 拼图的所有部分共同创造了一个非常安全的解决方案。

还要考虑这些因素:

  • 金钱:你真的需要为你的 100 美元应用程序提供 70 美元的基于令牌的保护吗?
  • 时间:我会说基于软件的系统更快
  • 相关性:为我的应用程序提供如此复杂的保护系统是否有意义
于 2009-07-29T13:41:15.187 回答
1

是的,有。

一方面,这允许您通过安全通道物理传输私钥,而不是信任网络。

另一方面,如果您必须在许多不一定都联网的系统之间移动,那么 USB 密钥就更方便了。这就是为什么军方使用非常类似的系统(EKMS)。他们不使用 USB,但他们使用看起来像大塑料钥匙的小加密狗。想法是一样的,但在 90 年代初期,当他们开发 USB 时,USB 并不存在。

替代文字

(注意:维基百科文章的完整程度有点吓人。当我在编写 KP 时,有人告诉我,我们可以在简历上放FIREFLY之类的首字母缩略词,但我们不能告诉任何人他们的意思。)

于 2009-07-29T13:42:08.743 回答
1

硬件密钥允许使用将软件的使用限制在插入密钥的机器上。

使用软件加密,将软件复制到多台机器并并行运行多次会更容易。

于 2009-07-29T13:44:12.363 回答
1

我认为这取决于您的应用程序的目的/用途。如果您正在开发满足高安全需求的产品,例如银行或政府,那么在您的解决方案中添加硬件可能是完全合适的。您必须考虑硬件解决方案会给项目增加的额外成本。不仅在最初的开发中,而且在开发完成后所需的持续硬件维护成本。从我的角度来看,过去曾在银行业工作过,我们认为硬件解决方案值得付出额外成本的解决方案非常非常少。

于 2009-07-29T14:07:10.667 回答