views:

58

answers:

1

With respect to Oracle Database 11g transparent data encryption (TDE) with HSM, I understand that the following command is used to set the master encryption key. However, why does a user_Id have to be specified when the PKCS#11 library for the corresponding HSM only requires a PIN?

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "user_Id:password"
A: 
CK_DEFINE_FUNCTION(CK_RV, C_Login)(
                                       CK_SESSION_HANDLE hSession,
                                       CK_USER_TYPE userType,
                                       CK_UTF8CHAR_PTR pPin,
                                       CK_ULONG ulPinLen
                                   );

C_Login requires User Type as one of its input? Is that is what you are asking about?

Instead If it is UserID then the application will have provision for many users whom will have various access privileges; These access privileges will be tied to the user. Its more like many user profiles in windows. So that few users will have less access and few will have more access. This MAY be a reason.

Raj
So how does Oracle Database TDE pass on the user_id parameter to the HSM when the PKCS#11 library only provides a C_Login function with userType rather than user_id as one of its input. Does this mean that the "user_id:password" parameter is passed together as one single string through the pPin parameter of the C_Login function or are there other functions not within the scope of the PKCS#11 library that the Oracle Database makes use of to pass the user_id parameter?
Lopper
I think Oracle will have defined their user profiles/ID where PKCS#11's userType will be an attribute; So when you create an user profile based on the privileges defined, it would have allocated the userType for PKCS#11. My answer is just my thinking of how this must have been implemented. I wrote an application ,where the supervisor creates users and based on the user profiles, i will set HSM rights for that particular user.
Raj
According to Oracle Database documentation however, "user_Id is the user Id created for the database using the HSM management interface. Password is the password created for the user Id using the HSM management interface". Not sure whether the HSM management interface even interacts with Oracle Database directly!!!
Lopper