0
$\begingroup$

I am designing a service which identifies records with public keys. All other fields are encrypted with that public key and protected by a HMAC. For authentication, I am thinking about signing requests to the service with the same (RSA?) private key which is also used for decryption (a timestamp will also be included in every request to avoid replay attacks). Since every record only contains a small number of fields and every record has its own key pair, I would like to keep the overhead reasonably low, meaning that I would like to avoid storing an additional key pair for signing for each record and instead re-use the en-/decryption key pair for signing. Which security implications could this lead to?

$\endgroup$
  • 3
    $\begingroup$ Does this answer your question? Using the same RSA keypair to sign and encrypt $\endgroup$ – mentallurg Jul 9 '20 at 7:46
  • $\begingroup$ If I understand the post correctly, it would only be a problem if the server could trick the client into signing an arbitrary message. Since the message is basically a public key, the server would need to generate a private key for a given public key (= the message he wants to decrypt). This is equal to breaking RSA itself, right? When adding a timestamp before the public key to the message to be signed, the server could only do this once per timestamp overflow which usually involves waiting several hundred years. Timing side channels should be no problem because different machines are used. $\endgroup$ – darkdragon Jul 9 '20 at 13:16
  • $\begingroup$ Sorry, I really don't see how your protocol constructed and why the given Q/A doesn't solve your problem. Where does this "time stamp" suddenly appear from? $\endgroup$ – Maarten Bodewes Jul 11 '20 at 19:31
  • $\begingroup$ Since I am quite new in this area, as depicted in my comment, I am not sure if I 1) understand the link correctly and 2) have overseen any additional implications not mentioned in the linked article. $\endgroup$ – darkdragon Jul 17 '20 at 7:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.