Hi,
I am concern about how ejbca store the private key in database, what algo, keys it use to encrypt the private key so it is secure? is token stored encrypted using the pin/password?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you use an HSM al CA private keys are generated and stored in the HSM. This is used by high-security environments of course.
When using soft keystores stored in the database, these are stored as PKCS#12 files, protected by the password you supply when creating the crypto token.
If you are unfamiliar with PKCS#12, it's a standard and you can find the specification available.
Regards,
Tomas
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Tomas,
Thank you for the clarification. I am using soft keys. So basically private keys are encrypted using token password(private keys stored in pkcs12 keystore protected by token password). How is the token password stored/protected? For example i make token Auto-activation:true so now i don't have to manually activate token, everytime application restart, it will be automatically activated. Any idea where does it store token password? is it encrypted?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
When using auto activation you can not get absolute security. The password is stored in the database. I think it's documented if you click on the question mark.
In the latest version of EJBCA Enterprise, you can configure the encryption password, so you at least can separate the roles between app administrator and database administrator, but in your version it is only "obfuscatted" in the database and can easily be found out by a database administrator.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I am concern about how ejbca store the private key in database, what algo, keys it use to encrypt the private key so it is secure? is token stored encrypted using the pin/password?
Hi,
If you use an HSM al CA private keys are generated and stored in the HSM. This is used by high-security environments of course.
When using soft keystores stored in the database, these are stored as PKCS#12 files, protected by the password you supply when creating the crypto token.
If you are unfamiliar with PKCS#12, it's a standard and you can find the specification available.
Regards,
Tomas
Hi Tomas,
Thank you for the clarification. I am using soft keys. So basically private keys are encrypted using token password(private keys stored in pkcs12 keystore protected by token password). How is the token password stored/protected? For example i make token Auto-activation:true so now i don't have to manually activate token, everytime application restart, it will be automatically activated. Any idea where does it store token password? is it encrypted?
When using auto activation you can not get absolute security. The password is stored in the database. I think it's documented if you click on the question mark.
In the latest version of EJBCA Enterprise, you can configure the encryption password, so you at least can separate the roles between app administrator and database administrator, but in your version it is only "obfuscatted" in the database and can easily be found out by a database administrator.
Thank you Tomas :)