Hi Deepak,

The starting point would be that link you initially provided. In terms of
help, could you elaborate more on what you are looking for? Do you need a
high level primer on how to create a chain-of-trust with openssl?
Certificate management? Or are you looking for more on how to properly
provision the TLS certifcates in gluster?

Joe

On Sun, Mar 19, 2017 at 11:52 AM, Deepak Naidu <dna...@nvidia.com> wrote:

> Thanks Joe for your inputs. I guess comparing client -- glusterServer IO
> performance over MTLS and non-MTLS should give me some idea on the
> client/server IO overhead.
>
> Also any URL related to setup & configuring MTLS is appreciated.
>
>
>
> --
> Deepak
>
> On Mar 19, 2017, at 7:00 AM, Joseph Lorenzini <jalo...@gmail.com> wrote:
>
> Hi Deepak,
>
> Sorta. I think it depends on what we mean by I/O path and performance.
>
> If we are referring to disk I/O for gluster servers, then no. If we are
> referring to the network I/O between a gluster client and server, than yes
> there will by definition be some additional overhead. That however is true
> of any security layer one chooses to pick for any application, especially a
> distributed system. In practice, security of any kind, whether its
> encryption, ACLs, or even iptables, will degrade the performance of an
> application. And since distributed systems by definition handle their state
> through network I/O, that means security + distributed system = network
> latency. There's a reason people say security is where performance goes to
> die. :)
>
> Now that all said, frequently the issue is not whether there will be
> network latency, but how much and does it matter? Moreover, what are the
> specific performance requirements for your gluster pool and have they been
> weighed against the costs of meeting those requirements? Additionally, how
> does meeting those performance requirements weigh against all your other
> requirements like for example having basic network security around a
> distributed system?
>
> I would be quite surprised if openssl MTLS  would be any slower compared
> to some other key-based authentication scheme. Most of the cost of TLS is
> around the TLS handshake, which is a one-time hit when the gluster client
> mounts the volume. Since the client is maintaining a persistent TLS
> connection, most of the overhead is openssl code performing symmetric
> encryption, which openssl, despite all its warts, is really really good at
> doing really really fast (understand this all relative to an arbitrary
> baseline :).  Bottom line: with modern hardware, the performance impact of
> MTLS should be negligible. IMHO, if the performance requirement can't
> tolerate MTLS, then its in practice preventing you from implementing any
> reasonable security scheme at all. In that case, you'd be better off just
> setting up an isolated network and skipping any type of authentication.
>
> I'd recommend setting up MTLS with gluster and run your performance tests
> against it. That will definitively answer your question of whether the
> performance is acceptable. The MTLS setup is not that hard and the gluster
> documentation is reasonable though could be improved (I need to submit some
> PRs against it). if you have any questions about setup and configuration, I
> am sure I can help.
>
> Joe
>
> On Sat, Mar 18, 2017 at 2:25 PM, Deepak Naidu <dna...@nvidia.com> wrote:
>
>> Hi Joe, thanks for taking time for explaining. I am having basic set of
>> requirements along with IO performance as key factor, my reply below should
>> justify what I am trying to achieve.
>>
>> >>If I am understanding your use case properly, you want to ensure that a
>> client may only mount a gluster volume if and only if it presents a key or
>> secret that attests to the client's identity, which the gluster server can
>> use to verify that client's identity.
>>
>> Yes, this is the exact use case for my requirements.
>>
>>
>>
>> >>That's exactly what gluster MTLS is doing since the gluster server
>> performs chain-of-trust validation on the client's leaf certificate.
>>
>> That's good, but my confusion here is does this MTLS also encrypt's IO
>> traffic like TLS. If yes, than it's not want I am looking for. The reason
>> is the IO encryption/decryption is an extra overhead for my use case as
>> performance of IO is also factor why we're are looking for GlusterFS,
>> unless my understanding is incorrect that IO encryption has no overhead.
>>
>>
>>
>> >> I don't understand why I/O path encryption is something you want to
>> avoid -- seems like an essential part of basic network security that you
>> get for "free" with the authentication.
>>
>> If I understand the term IO path encryption correctly, all the storage IO
>> will go through extra latency of encryption & decryption which is not
>> needed for my requirements as this produced extra IO latency which is why I
>> am trying to avoid IO path encryption & just need basic secret based
>> authentication.
>>
>>
>>
>>
>> --
>> Deepak
>>
>> > On Mar 18, 2017, at 10:46 AM, Joseph Lorenzini <jalo...@gmail.com>
>> wrote:
>> >
>> > I am little confused about what you are trying to accomplish here. If I
>> am understanding your use case properly, you want to ensure that a client
>> may only mount a gluster volume if and only if it presents a key or secret
>> that attests to the client's identity, which the gluster server can use to
>> verify that client's identity. That's exactly what gluster MTLS is doing
>> since the gluster server performs chain-of-trust validation on the client's
>> leaf certificate.
>> >
>> > Of course this will necessarily force encryption of the I/O path since
>> its TLS. I don't understand why I/O path encryption is something you want
>> to avoid -- seems like an essential part of basic network security that you
>> get for "free" with the authentication. It is true that if you want the
>> key-based authentication of a gluster client, you will need gluster MTLS.
>> You could treat encryption as the "cost" of getting authentication if you
>> will.
>> >
>> > Now I am personally pretty negative on X.509 and chain-of-trust in
>> general, since the trust model has been proven to not scale and is
>> frequently broken by malicious and incompetent CAs. I also think its a
>> completely inappropriate security model for something like gluster where
>> all endpoints are known and controlled by a single entity, forcing a
>> massive amount of unnecessary complexity with certificate management with
>> no real added security. I have thought about making a feature request that
>> gluster support a simple public-key encryption that's implemented like SSH.
>> But all that said, MTLS is a well-tested, well known security protocol and
>> the gluster team built it on top of openssl so it does get the security job
>> done in an acceptable way. The fact that the I/O path is encrypted is not
>> the thing that bothers me about the implementation though.
>> ------------------------------------------------------------
>> -----------------------
>> This email message is for the sole use of the intended recipient(s) and
>> may contain
>> confidential information.  Any unauthorized review, use, disclosure or
>> distribution
>> is prohibited.  If you are not the intended recipient, please contact the
>> sender by
>> reply email and destroy all copies of the original message.
>> ------------------------------------------------------------
>> -----------------------
>>
>
>
_______________________________________________
Gluster-users mailing list
Gluster-users@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-users

Reply via email to