我正在询问有关与 HSM 的会话的问题。
我知道,如果您为要加密/解密的每个文件初始化和最终确定 cryptoki api,则会产生开销。
我的疑问是,
为每个文件打开和关闭单独的会话是否有开销,您想要加密/解密。(C_Initialize/C_Finalize)
在不影响性能的情况下,我可以同时为 HSM 拥有多少个最大会话数?
打开和关闭会话以处理单个文件是最佳方法,还是打开会话并处理多个文件然后关闭会话是最佳方法?
谢谢
我正在询问有关与 HSM 的会话的问题。
我知道,如果您为要加密/解密的每个文件初始化和最终确定 cryptoki api,则会产生开销。
我的疑问是,
为每个文件打开和关闭单独的会话是否有开销,您想要加密/解密。(C_Initialize/C_Finalize)
在不影响性能的情况下,我可以同时为 HSM 拥有多少个最大会话数?
打开和关闭会话以处理单个文件是最佳方法,还是打开会话并处理多个文件然后关闭会话是最佳方法?
谢谢
首先,PKCS#11 规范在关于线程、应用程序和会话的一般概述下具有相当广泛的文档。
其次,它取决于您的 HSM 硬件和 PKCS#11 模块实现。您的 PKCS#11 提供商如何表示插槽?您是否一直使用相同的密钥?密钥的身份验证机制是什么?
尝试单个会话。您确定您的瓶颈将是会话处理吗?
打开和关闭会话有开销(来自我的实验)。最好不要为每个文件打开单独的会话。
更新:来自我的供应商:
您可以在令牌上打开的会话没有限制或指定数量,但它可能是数千个。
这取决于您在做什么以及它如何消耗设备的 RAM。打开太多会话并创建太多会话对象达到 RAM 可以容纳的限制肯定会影响设备的性能。
谢谢
最好的方法绝对是在每次应用程序启动时打开一次会话。即,没有理由在您的应用程序工作时关闭会话——会话对您的应用程序是私有的,如果您打开会话,则没有其他应用程序可以使用它来访问和使用设备。