使用硬件加密设备是否有正当理由(例如USB 加密狗/密钥库)优于使用软件库吗?

StackOverflow https://stackoverflow.com/questions/1200319

  •  05-07-2019
  •  | 
  •  

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

我正在寻找对此事的一些客观看法。


为了缩小所提出的问题的范围: 如果使用 USB 加密狗的系统位于物理安全的服务器库中并且仅存在一个系统(即,它不是一个在许多桌面上分发和运行的软件产品)?简而言之,上述系统的目的是验证(解密和比较)传入的加密数据。


到目前为止,感谢您的精彩回答!

有帮助吗?

解决方案

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

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

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

还要考虑这些因素:

  • 钱:您真的需要为 100 美元的应用程序提供 70 美元的基于代币的保护吗?
  • 时间:我想说基于软件的系统更快
  • 关联:为我的应用程序提供如此复杂的保护系统是否有意义

其他提示

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

通过软件加密,可以更轻松地将软件复制到多台计算机并多次并行运行。

是的,有。

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

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

(注意:维基百科文章的完整性有点可怕。当我在KP工作时,我被告知我们可以输入像 FIREFLY ,但我们不允许告诉任何人他们的意思。)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top