Why do I need to use separate public key pairs for signing and encryption and not use the same key pair with RSA for example? Is there any security problem with using the same key?
相关问题
- “Zero out” sensitive String data in Swift
- High cost encryption but less cost decryption
- How to restrict VOB read access in ClearCase (Wind
- I get 0x80070057 error code on certcreatecertifica
- Is it appropriate to secure/hide Swagger/OpenAPI S
相关文章
- Warning : HTML 1300 Navigation occured?
- Security concerns about CORS
- How do I prevent SQL injection with ColdFusion
- LINQ to Entities and SQL Injection
- How to use Google application-specific password in
- Will re-populating a password field in a form be a
- AWS - Configuring access to EC2 instance from Bean
- Shiro complaining “There is no session with id xxx
Having separate signing and encryption key pairs allows a company to back up the encryption certificate in order to decrypt data if you leave the company and they find stuff encrypted with your key.
Typically, the company won't keep a backup copy of your signing certificate, since it would destroy the notion of a valid digital signature. If the signing certificate is held by more than one party, then who really signed a message with it?
So, encryption key is held by the user and backed up by the company. Signing key is only held by the user.
Reasons for using separate keys for signing and encryption:
The reason for using separate key pairs for signing and encryption is to spread the risk: If someone recovers the private encryption key, he/she can decrypt documents that were encrypted using the public encryption key but can’t use it to also sign documents and vice versa.
Another reason could be a legal reason:
You might want to go to see this similar question from the security stack :
https://security.stackexchange.com/questions/1806/why-should-one-not-use-the-same-asymmetric-key-for-encryption-as-they-do-for-sig
IMHO, the answer from Am1rr3zA is the best.
I'm not entirely sure what you are getting at. I am going to assume you want to know why you should use different keys for https/ssl/ssh and code signing (other than that they have different usage bits).
SSL certificates have to hang out around web servers, which are infamous for being compromised. Code signing certificates can be hidden away completely offline. In theory. In practice web servers are managed by professional sysadmins, and code signing certs are left lying around on bodge-a-job developer PCs. Also there's the Principle of Least Privilege.
Read this : http://en.wikipedia.org/wiki/Public-key_cryptography
Basically you are asking about the different between asymmetric and symmetric encryption.