My rationals are :

1. Paranoid context where no one can trust security experts nor
   security algorithms
2. I am not a security expert, nor my future customers
3. I and my future customers need confidentiality, authentication in
   both ways, and integrity
4. As a consequence, my philosophy is first to add a perpendicular
   layer of security on the security algorithms I use. "perpendicular"
   means what it is expected in math : independent, in order that by
   design, it cannot break the standard algorithm used, but will
   prevent the use of any backdoor.
5. Second point is to keep public keys secret as far as possible, what
   makes attacks much more costly.

My use case is a SaaS with subscribed customers only, say 1,000. The public keys of the server and of the client will be exchanged during subscription, possibly under https (I have not yet investigated this part).

What I have imagined is the following :

*client**
*       *
*       *registration server**
*

        *Registration*
        

        
generate one key pair for all clients, dedicated to server public key distribution : ServerKeyForKey
*Only this public key is public*

        <--HTTPS ServerKeyForKey_pub--
        

        
generate a key pair for this client : ServerKeyThisClient, encode it with ServerKeyForKey

        <--HTTPS ServerKeyThisClient_pub encoded
        
generate a key pair : ClientKey
        
        

        --HTTPS ClientKey_pub encoded with ServerKeyThisClient-->    

        <--HTTPS download application and application server address--
        

At this stage, both client and server knows the long term public key of on each other
        

        *Use*
        *application  server*

Mechanism with confidentiality, authentication, signature, without any exchange of the public transcient keys in plain text
        

"Security through obscurity" : yes, but security does not lay on the secrecy of the public key. It just makes attacks more costly.

All that said, I have no experience at all with certificates. I just understand it enables to exchange public keys with authentication and integrity, and what is discussed here is confidentiality.




Le 16/10/2013 20:40, Justin Cook a écrit :
?Security through obscurity? I can see where you're going with this, but public keys are not secure and relying on them being secret makes the design a bit flaky. It's only a matter of time once a target is established. Public keys are the least of worries.

--
Justin Cook

Sent from a mobile device
*From: *Pieter Hintjens
*Sent: *Wednesday, 16 October 2013 19:31
*To: *ZeroMQ development list
*Reply To: *[email protected]
*Subject: *Re: [zeromq-dev] Proposal for ZeroMQ certificate format


I tried to explain the use cases in my article. The goal is to send my public key to you without leaking the fact. It is asymmetric. Your public key is well known but mine is not. It is a CurveZMQ usecase. Anonymous clients and public servers.

Pieter

On Oct 16, 2013 8:23 PM, "Tony Arcieri" <[email protected] <mailto:[email protected]>> wrote:

    On Wed, Oct 16, 2013 at 9:57 AM, Laurent Alebarde
    <[email protected] <mailto:[email protected]>> wrote:
    > Please, keep the public key secret.

    This is where you really need to take a step back and look at the
    threat model.

    Keep the public key secret from whom? You can't keep it secret from
    someone who wants to perform a Diffie-Hellman handshake, since it's
    one of the operands of Curve25519 scalar multiplication.

    What is the use case for verifying the authenticity of the public key
    in which you would also like to keep the public key secret?

    --
    Tony Arcieri
    _______________________________________________
    zeromq-dev mailing list
    [email protected] <mailto:[email protected]>
    http://lists.zeromq.org/mailman/listinfo/zeromq-dev




_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to