Hi @Kan_Li ,
Thank you for your response.
Please find my follow-up queries with "[Riz]" below:
1. In my setup, the accessManager is built with "-DPTMW_SMCOM=T1oI2C -DPTMW_SE05X_Auth=PlatfSCP03 -DPTMW_SCP=SCP03_SSS" and the client application is built with "-DPTMW_SMCOM=JRCP_V1_AM -DPTMW_SE05X_Auth=UserID -DPTMW_SCP=None".
I have used the Delete and Provision example to provision the userID and other keys into the SE05X. When I run the client, I see below (log snippet below)
App :INFO :Using default PlatfSCP03 keys. You can use keys from file using ENV=EX_SSS_BOOT_SCP03_PATH
...
:WARN :Communication channel is with UserID (But Plain).
sss :WARN :!!!Not recommended for production use.!!!
...
I have passed the required authID from the client and the connection looks proper. What confuses me here is the warning which says "Communication channel is with UserID (but plain). Not recommended for production use".
Could you please let me know this warning is shown although the communication between the accessManager and SE05X is secured here with PlatfSCP03 keys.
- No worry. This warning is just for the connection between the client and AccessManager, since the communication between the accessManager and SE05X is secured within PlatformSCP there should be no issue then.
[Riz]:
Thanks. But isn't this warning misleading then?
"Not recommended for production use".
If Communication between the accessManager and SE are protected with PlatformSCP and client uses userID for authenticating the session, we still end up getting warnings in the logs.
Please clarify.
2. Among the three different authentication mechanisms available, Could you please elaborate on what authentication mechanism would make sense in what scenario?
- Actually it depends your application, you know , there are 3 types of user sessions:
UserID Session (PIN-based authentication)
AESKey Session (AES-Key-based)
ECKey Session (opened by EC public key or ECKeypair)
Though the UserID can be used to set up a user session with SE050, but the communication is not secured, so you have to enable platformSCP for secure messaging purpose.
The other two sessions are both secure messaging channels, and they can also be encapsulated within the platform secure channel.
The difference between AESKey and ECKey sessions is AESKey is symmetric authentication type while ECKey is an asymmetric authentication type, and as far as I know AES authentication is faster than ECKey authentication.
[Riz]
Your comment: "Though the UserID can be used to set up a user session with SE050, but the communication is not secured, so you have to enable platformSCP for secure messaging purpose."
With "enable PlatformSCP" here, if you meant connection between accessManager and SE05X? If yes, that is already done.
But with "enable PlatformSCP" here, if you meant connection between the client and AccessManager, then below reference from the manual (AccessManager section) says:
"The client processes that connect to the Access Manager must be built in a separate build environment. All session authentication mechanisms are supported, platform SCP03 must be off (platform SCP03 is handled by the Access Manager)."
Can you clarify?
3. As per my understanding, the authentication based session here is only required in order to enforce that a client with a certain auth identifier should be able to open an authenticated session with the SE05X and do certain actions ( say create, delete etc. based on policy defined for respective auth Identifier) on the SE05X. Is the understanding correct?
-Yes, you are right, and the authentication based session can also help to secure the communication between host and SE050 to provide end-to-end protection.
4. The openssl_provisionRSA.py example (under sss/plugin/openssl/scripts) supports "--auth_type" parameter for provisioning the SE but the openssl_RSA.py which runs few sign/verify and encrypt/decrypt operations on SE is not accepting any auth_type parameter. Does this mean that the auth_type is not necessary while using openssl engine for crypto operations with SE ? and auth_type is only necessary during provisioning?
Could you clarify?
- As I mentioned before, the authentication based sesson can also help to secure the communication between host and SE050 to provide end-to-end protection. So for test purpose, you may set auth_type = None, but for real application, you better use either of the above authentication type within the platform secure channel.
[Riz]:
As mentioned, the opensslRSA.py example, doesn't support --auth-type parameter at all, so if we want to make use of authentication based sessions with openssl for Secure operations, how can we do it?
Regards,
Riz