Odg: Odg: Proposal of new config property "ssl-server-name-extension"

2019-12-09 Thread Mario Ivanac
Hi,

I agree with your proposal/question,
and implementation will follow it.

BR,
Mario

Šalje: Jens Deppe 
Poslano: 9. prosinca 2019. 15:55
Prima: dev@geode.apache.org 
Predmet: Re: Odg: Proposal of new config property "ssl-server-name-extension"

Hi Mario,

I did have a question / suggestion about this proposal (possibly on a
different thread). Would you mind responding to that before proceeding
please. I'll just paste it in here too.


> Jens Deppe 
> Tue, Nov 19, 4:42 PM
> to dev
> I'd like to add my comment from the original PR here again:
>
>
> Although I support the particular use case, I would prefer the
> implementation being a bit more abstracted. Specifically, if we provided an
> extension point which would allow modification of SSLParameters then we
> wouldn't be coupling to a particular use case. So I'm thinking that the
> user would define (via say a ssl-parameter-extension parameter) a class
> that takes in a SSLParameter and perhaps SSLConfig and whatever else for
> this use-case and does what it needs. The user class would need to
> implement an interface something like this:
>
> public interface SSLParameterExtension {
>   SSLParameter modify(SSLParameter, SSLConfig);
> }
>
> I would imagine seeing the user implementation of this being attached to
> SSLConfig.
>
>
> (https://github.com/apache/geode/pull/4310)
>
> I don't mind (mis)using the Server Name field to convey some other
> information, but since it's possible to abstract the specific nature and
> application of that information, I think we should do so. Anyone else who
> looks at the code is going to wonder what the use is especially if the
> consumer of that particular piece of info is going to be provided via an
> external SSLEngine implementation.
>
>
Thanks!
--Jens

On Mon, Dec 9, 2019 at 2:37 AM Mario Ivanac  wrote:

> Hi,
>
> Since this proposal is open for almost three weeks,
> and we have 2 plus one,
>
> We will continue with proposed solution.
>
> Regards,
> Mario
>
> 
> Šalje: Mario Ivanac 
> Poslano: 19. studenog 2019. 12:26
> Prima: dev@geode.apache.org 
> Predmet: Proposal of new config property "ssl-server-name-extension"
>
> Hi geode dev,
>
> as a part of solution for https://issues.apache.org/jira/browse/GEODE-7414
> we would like to introduce new config property "ssl-server-name-extension".
>
> This property will contain generic string, which will be added as Server
> Name Indication (SNI) parameter to Client Hello message.
>
> Do you agree with this proposal?
>
> Thanks,
> Mario
>


Re: Odg: Proposal of new config property "ssl-server-name-extension"

2019-12-09 Thread Jens Deppe
Hi Mario,

I did have a question / suggestion about this proposal (possibly on a
different thread). Would you mind responding to that before proceeding
please. I'll just paste it in here too.


> Jens Deppe 
> Tue, Nov 19, 4:42 PM
> to dev
> I'd like to add my comment from the original PR here again:
>
>
> Although I support the particular use case, I would prefer the
> implementation being a bit more abstracted. Specifically, if we provided an
> extension point which would allow modification of SSLParameters then we
> wouldn't be coupling to a particular use case. So I'm thinking that the
> user would define (via say a ssl-parameter-extension parameter) a class
> that takes in a SSLParameter and perhaps SSLConfig and whatever else for
> this use-case and does what it needs. The user class would need to
> implement an interface something like this:
>
> public interface SSLParameterExtension {
>   SSLParameter modify(SSLParameter, SSLConfig);
> }
>
> I would imagine seeing the user implementation of this being attached to
> SSLConfig.
>
>
> (https://github.com/apache/geode/pull/4310)
>
> I don't mind (mis)using the Server Name field to convey some other
> information, but since it's possible to abstract the specific nature and
> application of that information, I think we should do so. Anyone else who
> looks at the code is going to wonder what the use is especially if the
> consumer of that particular piece of info is going to be provided via an
> external SSLEngine implementation.
>
>
Thanks!
--Jens

On Mon, Dec 9, 2019 at 2:37 AM Mario Ivanac  wrote:

> Hi,
>
> Since this proposal is open for almost three weeks,
> and we have 2 plus one,
>
> We will continue with proposed solution.
>
> Regards,
> Mario
>
> 
> Šalje: Mario Ivanac 
> Poslano: 19. studenog 2019. 12:26
> Prima: dev@geode.apache.org 
> Predmet: Proposal of new config property "ssl-server-name-extension"
>
> Hi geode dev,
>
> as a part of solution for https://issues.apache.org/jira/browse/GEODE-7414
> we would like to introduce new config property "ssl-server-name-extension".
>
> This property will contain generic string, which will be added as Server
> Name Indication (SNI) parameter to Client Hello message.
>
> Do you agree with this proposal?
>
> Thanks,
> Mario
>


Odg: Proposal of new config property "ssl-server-name-extension"

2019-12-09 Thread Mario Ivanac
Hi,

Since this proposal is open for almost three weeks,
and we have 2 plus one,

We will continue with proposed solution.

Regards,
Mario


Šalje: Mario Ivanac 
Poslano: 19. studenog 2019. 12:26
Prima: dev@geode.apache.org 
Predmet: Proposal of new config property "ssl-server-name-extension"

Hi geode dev,

as a part of solution for https://issues.apache.org/jira/browse/GEODE-7414
we would like to introduce new config property "ssl-server-name-extension".

This property will contain generic string, which will be added as Server Name 
Indication (SNI) parameter to Client Hello message.

Do you agree with this proposal?

Thanks,
Mario


Odg: Proposal of new config property "ssl-server-name-extension"

2019-11-26 Thread Mario Ivanac
Hi Sai,


The security provider main class is configured through a java security file:

-Djava.security.properties=custom-security.file



Where we set:

security.provider.1=my.security.provider.class



The security provider is packaged as a .jar and added to the classpath. The 
security provider code is triggered once the geode default context is 
initialized, so there is no room to take over the context before that.



Also, the configuration of the TLS handshake message extensions is part of the 
SSLSocket configuration. I’m not aware of a way to configure this through the 
context.


BR,

Mario


Šalje: Sai Boorlagadda 
Poslano: 24. studenog 2019. 17:33
Prima: dev@geode.apache.org 
Predmet: Re: Proposal of new config property "ssl-server-name-extension"

Hello Mario,

I would like to see if having a custom security provider allows you to
configure the default SSL context to set the SNI?

>From your proposal, I see that you have implemented a Java Security
Provider to provide custom KeyManager implementation which distinguishes
certificate based on which the wan-site the peer client is connecting to.
How are you configuring this security provider? I am assuming you have some
bootstrapping code that inserts your security provider before launching
Geode, and also set gemfire property `ssl-use-default-context` to true to
let Geode use the default SSL context. Can this bootstrapping code create
and configure an SSL context with SNI and set it as default context before
launching geode?

This may appear as a workaround but the rationale behind
`ssl-use-default-context` is to delegate the external environment to
configure the SSL context in a required manner and let Geode just use it.

Sai

On Tue, Nov 19, 2019 at 3:27 AM Mario Ivanac  wrote:

> Hi geode dev,
>
> as a part of solution for https://issues.apache.org/jira/browse/GEODE-7414
> we would like to introduce new config property "ssl-server-name-extension".
>
> This property will contain generic string, which will be added as Server
> Name Indication (SNI) parameter to Client Hello message.
>
> Do you agree with this proposal?
>
> Thanks,
> Mario
>


Odg: Proposal of new config property "ssl-server-name-extension"

2019-11-21 Thread Mario Ivanac
Hi,

regarding your questions:

>>Mario, are there any limitations that should be understood about the types
of certificates used or how they're generated?<<

There is no limitations.


>>Do you have the freedom to use certificate chaining and have the root CA in 
>>each component's
truststore?<<

Yes

BR,
Mario


Šalje: Ivan Godwin 
Poslano: 21. studenog 2019. 4:29
Prima: dev@geode.apache.org 
Predmet: Re: Proposal of new config property "ssl-server-name-extension"

Thank you for the reference to the other thread, Jens. I hope my questions
aren't too late in the process.

Mario, are there any limitations that should be understood about the types
of certificates used or how they're generated? Do you have the freedom to
use certificate chaining and have the root CA in each component's
truststore? Dan's concern of a future, valid use case resonates quite a bit
with me.

Ivan


On Wed, Nov 20, 2019, 18:43 Jens Deppe  wrote:

> This thread contains more background on the reasons for this proposal:
>
> https://lists.apache.org/thread.html/2418dd1b5f9ae812daa48a51a8d2eb252a3c861a890264f47da3a4d3@%3Cdev.geode.apache.org%3E
>
> On Wed, Nov 20, 2019 at 10:46 AM Ivan Godwin  wrote:
>
> > I've reviewed the PR and I believe I understand the use case, but I feel
> a
> > bit uncomfortable with the misuse of SNI. As I understand it, and as it
> has
> > been already mentioned, SNI is used to determine which SSL certificate
> > should be presented to a client.
> >
> > I think that CLIENT_HELLO_EXTENSION should *not* be associated with SSL,
> > and that a new client property should be used instead. That is, a
> different
> > property, unrelated to SSL, should be used to set what will be verified
> > against CLIENT_HELLO_EXTENSION.
> >
> > On Tue, Nov 19, 2019 at 4:43 PM Jens Deppe  wrote:
> >
> > > I'd like to add my comment from the original PR here again:
> > >
> > >
> > > Although I support the particular use case, I would prefer the
> > > implementation being a bit more abstracted. Specifically, if we
> provided
> > an
> > > extension point which would allow modification of SSLParameters then we
> > > wouldn't be coupling to a particular use case. So I'm thinking that the
> > > user would define (via say a ssl-parameter-extension parameter) a class
> > > that takes in a SSLParameter and perhaps SSLConfig and whatever else
> for
> > > this use-case and does what it needs. The user class would need to
> > > implement an interface something like this:
> > >
> > > public interface SSLParameterExtension {
> > >   SSLParameter modify(SSLParameter, SSLConfig);
> > > }
> > >
> > > I would imagine seeing the user implementation of this being attached
> to
> > > SSLConfig.
> > >
> > >
> > > (https://github.com/apache/geode/pull/4310)
> > >
> > > I don't mind (mis)using the Server Name field to convey some other
> > > information, but since it's possible to abstract the specific nature
> and
> > > application of that information, I think we should do so. Anyone else
> who
> > > looks at the code is going to wonder what the use is especially if the
> > > consumer of that particular piece of info is going to be provided via
> an
> > > external SSLEngine implementation.
> > >
> > > --Jens
> > >
> > > On Tue, Nov 19, 2019 at 1:18 PM Dan Smith  wrote:
> > >
> > > > Can you clarify which connections will use this
> > ssl-server-name-extension
> > > > as part of the Client Hello? client to locator, client to server,
> > server
> > > to
> > > > server, WAN site to WAN site, ... all of the above?
> > > >
> > > > I'm fine with adding the new property.
> > > >
> > > > At some point, I think we need to think about making it easier to
> plug
> > in
> > > > custom logic to control the entire socket creation and TLS
> handshake. I
> > > > think technically you can take over the whole process if you set the
> > > > ssl-use-default-context property and then configure the default
> > > SSLContext
> > > > for your entire process, but that is not ideal.
> > > >
> > > > -Dan
> > > >
> > > > On Tue, Nov 19, 2019 at 8:24 AM Charlie Black 
> > wrote:
> > > >
> > > > > I have read the e-mail and the ticket I am not sure how this field
> is
> > > > going
> > > > > to be used.   Maybe you can expand on the intent of this field.
> > > > >
> > > > > From the property "ssl-server-name-extension" it feels like we are
> > > > > intending to correlate with something presented in the SSL
> > certificate.
> > > > > It would be great if that was explained plainly for the reader in
> > more
> > > > > detail.
> > > > >
> > > > > For now I can only -1.
> > > > >
> > > > > Charlie
> > > > >
> > > > > On Tue, Nov 19, 2019 at 3:27 AM Mario Ivanac  >
> > > > > wrote:
> > > > >
> > > > > > Hi geode dev,
> > > > > >
> > > > > > as a part of solution for
> > > > > https://issues.apache.org/jira/browse/GEODE-7414
> > > > > > we would like to introduce new config property
> > > > > "ssl-server-name-extension".
> > > > > >

Odg: Proposal of new config property "ssl-server-name-extension"

2019-11-21 Thread Mario Ivanac
Hi,

all connections will use ssl-server-name-extension as part of Client Hello.

BR,
Mario

Šalje: Dan Smith 
Poslano: 19. studenog 2019. 22:17
Prima: dev@geode.apache.org 
Predmet: Re: Proposal of new config property "ssl-server-name-extension"

Can you clarify which connections will use this ssl-server-name-extension
as part of the Client Hello? client to locator, client to server, server to
server, WAN site to WAN site, ... all of the above?

I'm fine with adding the new property.

At some point, I think we need to think about making it easier to plug in
custom logic to control the entire socket creation and TLS handshake. I
think technically you can take over the whole process if you set the
ssl-use-default-context property and then configure the default SSLContext
for your entire process, but that is not ideal.

-Dan

On Tue, Nov 19, 2019 at 8:24 AM Charlie Black  wrote:

> I have read the e-mail and the ticket I am not sure how this field is going
> to be used.   Maybe you can expand on the intent of this field.
>
> From the property "ssl-server-name-extension" it feels like we are
> intending to correlate with something presented in the SSL certificate.
> It would be great if that was explained plainly for the reader in more
> detail.
>
> For now I can only -1.
>
> Charlie
>
> On Tue, Nov 19, 2019 at 3:27 AM Mario Ivanac 
> wrote:
>
> > Hi geode dev,
> >
> > as a part of solution for
> https://issues.apache.org/jira/browse/GEODE-7414
> > we would like to introduce new config property
> "ssl-server-name-extension".
> >
> > This property will contain generic string, which will be added as Server
> > Name Indication (SNI) parameter to Client Hello message.
> >
> > Do you agree with this proposal?
> >
> > Thanks,
> > Mario
> >
>
>
> --
> Charlie Black | cbl...@pivotal.io
>


Re: Odg: Odg: Proposal of new config property "ssl-server-name-extension"

2019-11-19 Thread Charlie Black
Sorry - I had sent the e-mail to Mario directly.   Also thanks for hanging
in there with me through this.

The ClientHello message is what is throwing me.As long as the SNI
behaves like the extension to the standard I am fine.Meaning if "openssl
s_client -connect server:port -servername servername.com" returns the right
stuff we are fine.

Note: I might not have all the options right in the openssl command, but
-servername enables SNI.

With that in mind I am + 1 on this.

Charlie

On Tue, Nov 19, 2019 at 12:00 PM Mario Ivanac  wrote:

> Hi,
>
> as described before:
>
> This property will contain generic string, which will be added as Server
> Name Indication (SNI) parameter to ClientHello message.
> ClientHello message is part of SSL handshake.
>
> Mario
> --
> *Šalje:* Charlie Black 
> *Poslano:* 19. studenog 2019. 18:20
> *Prima:* Mario Ivanac 
> *Kopija:* dev@geode.apache.org 
> *Predmet:* Re: Odg: Proposal of new config property
> "ssl-server-name-extension"
>
> The SSL handshake is done *before* the Geode handshake.So additions
> to the Geode handshake protocol will not affect SSL connections since the
> secure socket connection has already been negotiated and the Geode
> handshake is encrypted.
>
> Charlie
>
> On Tue, Nov 19, 2019 at 9:06 AM Mario Ivanac 
> wrote:
>
> Hi all,
>
> this proposal and ticket are result of mail discussion "Special
> certificates for multisite":
>
>
> https://lists.apache.org/thread.html/2418dd1b5f9ae812daa48a51a8d2eb252a3c861a890264f47da3a4d3@%3Cdev.geode.apache.org%3E
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.apache.org_thread.html_2418dd1b5f9ae812daa48a51a8d2eb252a3c861a890264f47da3a4d3-40-253Cdev.geode.apache.org-253E=DwMF-g=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw=TeO8Y4MHxN-HWthX0kIhmTbHjxbnon-82BZ-g9Q6TDI=GG4kW5SuTjSCV707Igt5WbMQyay_8vOtB9nH8cLBgAM=PjLj2CJYNHbQUiMKrd-FKMqwbuxVERJifxQWpM4HM8k=>
>
>
> BR,
> Mario
> --
> *Šalje:* Charlie Black 
> *Poslano:* 19. studenog 2019. 17:24
> *Prima:* dev@geode.apache.org 
> *Predmet:* Re: Proposal of new config property "ssl-server-name-extension"
>
> I have read the e-mail and the ticket I am not sure how this field is going
> to be used.   Maybe you can expand on the intent of this field.
>
> From the property "ssl-server-name-extension" it feels like we are
> intending to correlate with something presented in the SSL certificate.
> It would be great if that was explained plainly for the reader in more
> detail.
>
> For now I can only -1.
>
> Charlie
>
> On Tue, Nov 19, 2019 at 3:27 AM Mario Ivanac 
> wrote:
>
> > Hi geode dev,
> >
> > as a part of solution for
> https://issues.apache.org/jira/browse/GEODE-7414
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org_jira_browse_GEODE-2D7414=DwMF-g=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw=TeO8Y4MHxN-HWthX0kIhmTbHjxbnon-82BZ-g9Q6TDI=GG4kW5SuTjSCV707Igt5WbMQyay_8vOtB9nH8cLBgAM=4h7HHiRlRX_Cw8mVGuVfzHgfUbKul07BjaV1CVE3_H8=>
> > we would like to introduce new config property
> "ssl-server-name-extension".
> >
> > This property will contain generic string, which will be added as Server
> > Name Indication (SNI) parameter to Client Hello message.
> >
> > Do you agree with this proposal?
> >
> > Thanks,
> > Mario
> >
>
>
> --
> Charlie Black | cbl...@pivotal.io
>
>
>
> --
> Charlie Black | cbl...@pivotal.io
>


-- 
Charlie Black | cbl...@pivotal.io


Odg: Odg: Proposal of new config property "ssl-server-name-extension"

2019-11-19 Thread Mario Ivanac
Hi,

as described before:

This property will contain generic string, which will be added as Server Name 
Indication (SNI) parameter to ClientHello message.
ClientHello message is part of SSL handshake.

Mario

Šalje: Charlie Black 
Poslano: 19. studenog 2019. 18:20
Prima: Mario Ivanac 
Kopija: dev@geode.apache.org 
Predmet: Re: Odg: Proposal of new config property "ssl-server-name-extension"

The SSL handshake is done before the Geode handshake.So additions to the 
Geode handshake protocol will not affect SSL connections since the secure 
socket connection has already been negotiated and the Geode handshake is 
encrypted.

Charlie

On Tue, Nov 19, 2019 at 9:06 AM Mario Ivanac  wrote:
Hi all,

this proposal and ticket are result of mail discussion "Special certificates 
for multisite":

https://lists.apache.org/thread.html/2418dd1b5f9ae812daa48a51a8d2eb252a3c861a890264f47da3a4d3@%3Cdev.geode.apache.org%3E<https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.apache.org_thread.html_2418dd1b5f9ae812daa48a51a8d2eb252a3c861a890264f47da3a4d3-40-253Cdev.geode.apache.org-253E=DwMF-g=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw=TeO8Y4MHxN-HWthX0kIhmTbHjxbnon-82BZ-g9Q6TDI=GG4kW5SuTjSCV707Igt5WbMQyay_8vOtB9nH8cLBgAM=PjLj2CJYNHbQUiMKrd-FKMqwbuxVERJifxQWpM4HM8k=>


BR,
Mario

Šalje: Charlie Black mailto:cbl...@pivotal.io>>
Poslano: 19. studenog 2019. 17:24
Prima: dev@geode.apache.org<mailto:dev@geode.apache.org> 
mailto:dev@geode.apache.org>>
Predmet: Re: Proposal of new config property "ssl-server-name-extension"

I have read the e-mail and the ticket I am not sure how this field is going
to be used.   Maybe you can expand on the intent of this field.

>From the property "ssl-server-name-extension" it feels like we are
intending to correlate with something presented in the SSL certificate.
It would be great if that was explained plainly for the reader in more
detail.

For now I can only -1.

Charlie

On Tue, Nov 19, 2019 at 3:27 AM Mario Ivanac  wrote:

> Hi geode dev,
>
> as a part of solution for 
> https://issues.apache.org/jira/browse/GEODE-7414<https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org_jira_browse_GEODE-2D7414=DwMF-g=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw=TeO8Y4MHxN-HWthX0kIhmTbHjxbnon-82BZ-g9Q6TDI=GG4kW5SuTjSCV707Igt5WbMQyay_8vOtB9nH8cLBgAM=4h7HHiRlRX_Cw8mVGuVfzHgfUbKul07BjaV1CVE3_H8=>
> we would like to introduce new config property "ssl-server-name-extension".
>
> This property will contain generic string, which will be added as Server
> Name Indication (SNI) parameter to Client Hello message.
>
> Do you agree with this proposal?
>
> Thanks,
> Mario
>


--
Charlie Black | cbl...@pivotal.io<mailto:cbl...@pivotal.io>


--
Charlie Black | cbl...@pivotal.io<mailto:cbl...@pivotal.io>


Odg: Proposal of new config property "ssl-server-name-extension"

2019-11-19 Thread Mario Ivanac
Hi all,

this proposal and ticket are result of mail discussion "Special certificates 
for multisite":

https://lists.apache.org/thread.html/2418dd1b5f9ae812daa48a51a8d2eb252a3c861a890264f47da3a4d3@%3Cdev.geode.apache.org%3E


BR,
Mario

Šalje: Charlie Black 
Poslano: 19. studenog 2019. 17:24
Prima: dev@geode.apache.org 
Predmet: Re: Proposal of new config property "ssl-server-name-extension"

I have read the e-mail and the ticket I am not sure how this field is going
to be used.   Maybe you can expand on the intent of this field.

>From the property "ssl-server-name-extension" it feels like we are
intending to correlate with something presented in the SSL certificate.
It would be great if that was explained plainly for the reader in more
detail.

For now I can only -1.

Charlie

On Tue, Nov 19, 2019 at 3:27 AM Mario Ivanac  wrote:

> Hi geode dev,
>
> as a part of solution for https://issues.apache.org/jira/browse/GEODE-7414
> we would like to introduce new config property "ssl-server-name-extension".
>
> This property will contain generic string, which will be added as Server
> Name Indication (SNI) parameter to Client Hello message.
>
> Do you agree with this proposal?
>
> Thanks,
> Mario
>


--
Charlie Black | cbl...@pivotal.io