0

I am developing an open source project(PKDSA) that uses ED25519 and ED448. My purpose of this project was to help others to enable user-secretless based passwordless authentication.

There're a lot of questions but I will ask them one after another by opening new questions.

The keypair generation occur on client side where it uses cryptography RNG.

Since the server side helps the users to store their public keys (Challenge and respond), is there any industry security standard that one needs to follow to ensure that the public keys stored and used on server side is secure?

2 Answers 2

0

Public keys are by definition not secret. The main thing to avoid, when storing a database of public keys, is encrypting information intended for party A under the public key of party B. This immediately violates the secrecy (and possibly privacy) of the information you wanted to transmit to party A, because assuming party B can now somehow access that encrypted information, it will be able to decrypt it via its local private key.

I'm quite sure there are many security standards that state the same thing in a way similar to the following: Any key management system must take care to correctly identify the legitimate owner of the key. (.. And in particular this is true for public keys).

That's why in TLS for example, public keys are embedded within public certificates, that unify both the public key itself and all the relevant information required to identify the legitimate holder of the corresponding private key.

If you still need to reference official sources, take a look for example at NIST's recommendation for key management:

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf

(That's only Part I, and I'm seeing a lot of discussion of public key management here. You can find the other parts here)

4
  • There won't be any encryption done on the public keys as this was using public key digital signature to serve as passwordless authentication. One of the issues that I faced did indeed stated out by you. "Any key management system ...... key." From what I understand on that statement, it might not really be possible to solve or address as that statement miraculously hope for some miracle approach to solve/address on account owner integrity issue which is not same at all compare to data integrity issue.
    – Hern
    Feb 9 at 9:39
  • The best one can do on that statement is to first ensure data integrity been addressed then use some medium to have a conversation with the given identity. However, this does not mean that we could solve/address on account owner integrity.
    – Hern
    Feb 9 at 9:42
  • Well, the establishment of the proper ownership of public keys is what gave rise to the entire PKI mechanism, which is by no means either simple nor fail safe. But that is also because of its distributed nature, which leads to things like more complex revocation mechanisms etc. If your DB is by construction a more central one, you should be able to make a lot of that simpler (in particular if the public keys are only needed to be identified on the server side as opposed to the client side - which is what makes PKI much more attack prone)
    – Amit
    Feb 9 at 11:53
  • indeed it might be in some cases.
    – Hern
    Feb 10 at 1:20
-1

Public keys are intended to be known to other parties. They don't need any secrecy. The strength of the encryption and of the signature depends on the secrecy of private keys and has nothing to do with public keys.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .