[chef] Re: Re: Re: Re: Re: Re: New Authentication in Chef 0.8


Chronological Thread 
  • From: Miguel Cabeça < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: New Authentication in Chef 0.8
  • Date: Thu, 11 Feb 2010 18:44:37 +0000

> It's not crazy to imagine a world where requests are accepted via
> HTTPS, and then get relayed to their final destination via AMQP.  By
> relying on TLS, you make it very difficult for that final endpoint to
> verify that the message it received is the one sent by the original
> endpoint.
> 
> The source of our disagreement is that I don't think we should force
> decisions about the transport layer in order to gain a perceived
> benefit of simplicity in the application layer.  By signing each
> request, we gain the ability to, at any link in the chain, verify that
> the request has not been tampered with.  We gain a huge amount of
> application architecture flexibility, and it's applicable to a much
> wider range of problems.
> 
> You're assuming a point-to-point, one client to single host
> architecture.  You *can* build an application that relies on transport
> layer authentication for security, and by doing so you add the
> constraint that it *must* have all communication occur over that
> transport layer.  By digitally signing each request, we gain the
> flexibility of being able to re-use that functionality across any
> transport layer, to serialize and distribute requests in any way we
> see fit, and to continually ensure that the payload is *exactly as it
> was created by the signing client*, regardless of intervening
> transport layers.
> 
> Imagine a scenario where you start building orchestration
> functionality around Chef, where each client is gossiping about it's
> current status ("I'm at step one!  I'm at step two!  I'm the
> master!").  In a world where we only had TLS for client
> authentication, each of those messages would need to be either sent
> via a specific point-to-point connection with every other member of
> the quorum, or coordinated through a central server.
> 
> In a world where each client signs their own payloads, you have lots
> of options.  The clients themselves can gossip about their public
> keys, they can sign the payload of each gossip request, and they can
> do it via multi-cast.
> 
> I agree that it might not have been necessary for the use case you
> have foremost in your mind (which is a single chef client
> communicating with a remote chef server over HTTPS,) but I think it
> was absolutely necessary for a huge number of other use cases.

Thank you for the time you spent explaining this to me. I finally got the 
benefit of this approach. If you'd only mentioned "payload relaying" and 
"end-to-end authentication through multiple hop communication" earlier :-)


Best Regards

Miguel Cabeça


Archive powered by MHonArc 2.6.16.

§