【问题标题】:What is the reason for using "user_Id:password" for PKCS11 when it only accepts a pin?当 PKCS11 只接受一个 pin 时,为 PKCS11 使用“user_Id:password”的原因是什么?
【发布时间】:2011-01-07 17:16:43
【问题描述】:

关于使用 HSM 的 Oracle Database 11g 透明数据加密 (TDE),我了解以下命令用于设置主加密密钥。但是,当对应 HSM 的 PKCS#11 库只需要 PIN 时,为什么必须指定 user_Id

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "user_Id:password"

【问题讨论】:

    标签: database oracle security cryptography tde


    【解决方案1】:
    CK_DEFINE_FUNCTION(CK_RV, C_Login)(
                                           CK_SESSION_HANDLE hSession,
                                           CK_USER_TYPE userType,
                                           CK_UTF8CHAR_PTR pPin,
                                           CK_ULONG ulPinLen
                                       );
    

    C_Login 需要用户类型作为其输入之一?这就是你要问的吗?

    如果它是 UserID,那么应用程序将为许多具有各种访问权限的用户提供服务;这些访问权限将与用户绑定。它更像是 Windows 中的许多用户配置文件。因此,很少有用户拥有更少的访问权限,而很少有用户拥有更多的访问权限。这可能是一个原因。

    【讨论】:

    • 那么,当 PKCS#11 库仅提供带有 userType 而不是 user_id 作为其输入之一的 C_Login 函数时,Oracle 数据库 TDE 如何将 user_id 参数传递给 HSM。这是否意味着“user_id:password”参数作为单个字符串通过 C_Login 函数的 pPin 参数一起传递,或者是否有其他函数不在 Oracle 数据库用来传递的 PKCS#11 库范围内user_id 参数?
    • 我认为 Oracle 将定义他们的用户配置文件/ID,其中 PKCS#11 的 userType 将是一个属性;因此,当您根据定义的权限创建用户配置文件时,它会为 PKCS#11 分配 userType。我的回答只是我对这必须如何实施的想法。我编写了一个应用程序,主管创建用户并根据用户配置文件,我将为该特定用户设置 HSM 权限。
    • 然而,根据 Oracle 数据库文档,“user_Id 是使用 HSM 管理界面为数据库创建的用户 ID。密码是使用 HSM 管理界面为用户 ID 创建的密码”。不确定 HSM 管理界面是否甚至直接与 Oracle 数据库交互!!!
    【解决方案2】:

    以下答案引自Oracle Forum

    “SQL> alter system set ... 由“HSM_auth_string”标识;其中“HSM_auth_string”可以是“user_name:password”、“PIN”或只是“Password”。”

    【讨论】:

      猜你喜欢
      • 2020-10-19
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      相关资源
      最近更新 更多