什么是授权USB密钥的最佳方式

时间:2010-04-13 19:20:40

标签: installer usb authorize

我们的软件自动更新通过USB密钥安装(自动运行)。如果我想确保只使用授权的USB密钥,那么最好的方法是什么?

我们的安装程序已经签名,否则将无法运行。但我更想检查已签名安装程序的USB密钥,如果不存在,只需忽略,甚至“弹出”USB设备。

我应该能够分辨出USB存储设备与相机或键盘之间的区别(代码中)。

我只想禁用未经授权的存储设备。

感谢您的想法。

3 个答案:

答案 0 :(得分:4)

非授权存储设备?这取决于您希望它的安全程度。对于最安全的级别,它将包括:

  • 写入闪存驱动器的特殊固件以获取额外的“元信息”(阅读:昂贵的闪存驱动器定制制造)
  • 特殊的Windows驱动程序,用于从闪存驱动器中读取元信息
  • 您的程序与该设备驱动程序通话以确认其已获得授权。

或者,对于最不安全的级别,您有以下选项:

  • 使用隐藏文件和特殊键(可能是最后一次文件系统修改的散列时间?)(dd易碎)
  • 降低到文件系统级别以下并重新创建自己非常简单的文件系统..(通过默默无闻提高安全性,而dd可能会破坏它)

此外,对于“最安全”选项,您确实需要一种更安全的方式来运行程序,而不是自动运行和设备驱动程序(这可能是半生不熟的,以使任何东西看起来都是授权的)。为什么要让它只从授权的闪存驱动器更新?

答案 1 :(得分:2)

您可能能够读取USB驱动器的序列号(假设您的USB驱动器具有序列号;不是全部都可以)。然后您的应用程序可以打电话回家获取最新的授权序列号列表,并检查是否匹配。

答案 2 :(得分:0)

Earlz的反应很好,虽然我认为你不需要定制闪存驱动器......你只需要带有某种独特固件加密标识符的闪存驱动器。也许Kingston Data Traveler Line中的某些东西可能会成功。 (我从来没有真正使用过这些加密的usb棒之一,所以我对实际的实现细节有点模糊)。