如何从USB设备读取证书并将其发送到Firefox等浏览器



我想编写一个 c++ dll,从我的 USB 设备读取证书并将其发送到 Firefox 等浏览器。我应该提到,我已经用具有 2K EEPROM 的 ATMega32A 构建了我的 USB 设备,并在其上存储了一个示例证书。
我已经阅读了一些关于PKCS#11标准的信息,但我不知道从哪里开始。谁能帮我解决这个问题?

听起来您正在创建 PKI 硬件设备。我认为您最大的障碍将是访问ATMega32。由您在 ATMega 端实现接口,无论是 RS232-USB 桥接器、USB 大容量存储还是带有自定义驱动程序的专有接口。

一个简单的解决方案可能是使用 USB 大容量存储接口将证书显示为伪磁盘上的文件。

采用自定义驱动程序路线,Firefox(和其他Mozilla产品)使用具有PKI硬件接口的库。请参阅 NSS 和 OpenSC。猜测有可能有一个PKI/PKCS11驱动程序API的Windows可以实现。

你不能"添加到 Firefox",但你可以将你的数据暴露给 Firefox 并使它们可供使用。为此,您需要实现 PKCS#11 API 并创建所谓的 PKCS#11 驱动程序(实现 PKCS#11 API 中定义的 70 个左右函数的用户模式 DLL)。这些功能将与硬件设备通信以执行某些操作。然后你把这个PKCS#11 DLL插入火狐,火狐可以在你的设备上使用证书。

第 1 步:编写一个可以从 USB 设备读取数据的 dll。 你可以使用 Winusb。 这将需要固件来支持它。

第 2 步:编写一个可以向 Firefox 添加证书的 dll

步骤 3:将前面的步骤合并到一个 dll 中

如果您遇到特定问题,请写一个新问题并向我们展示您到目前为止所做的工作。

最新更新