On Jul 16, 2014, at 3:49 PM, Carlos Garza <carlos.ga...@rackspace.com> wrote:

> 
> On Jul 16, 2014, at 12:30 PM, Vijay Venkatachalam 
> <vijay.venkatacha...@citrix.com>
> wrote:
> 
>    We will have the code that will parse the X509 in the API scope of the 
> code. The validation I'm refering to is making sure the key matches the cert 
> used and that we mandate that at a minimum the backend driver support RSA and 
> that since the X509 validation is happeneing at the api layer this same 
> module will also handling the extraction of the SANs. I am proposing that the 
> methods that can extract the SAN SCN from the x509 be present in the api 
> portion of the code and that drivers can call these methods if they need too. 
> Infact I'm already working to get these extraction methods contributed to the 
> PyOpenSSL project so that they will already available at a more fundemental 
> layer then our nuetron/LBAAS code. At the very least I want to spec to 
> declare that SAN SCN and parsing must be made available from the API layer. 
> If the PyOpenSSL has the methods available at that time then I we can simply 
> write wrappers for this in the API or simple write more higher level methods 
> in the API module.  

    I meant to say bottom line I want the parsing code exposed in the API and 
not duplicated in everyone elses driver.

>     I am partioally open to the idea of letting the driver handle the 
> behavior of the cert parsing. Although I defer this to the rest of the folks 
> as I get this feeling having differn't implementations exhibiting differen't 
> behavior may sound scary. 
> 
>> 
>>                I think it is best not to mention about SAN in the OpenStack 
>> TLS spec. It is expected that the backend should implement according to the 
>> SSL/SNI IETF spec.
>> Let’s leave the implementation/validation part to the driver.  For ex. 
>> NetScaler does not support SAN and the NetScaler driver could either throw 
>> an error if certs with SAN are used or ignore it.
> 
>    How is netscaler making the decision when choosing the cert to associate 
> with the SNI handshake?
> 
>> 
>> Does anyone see a requirement for detailing?
>> 
>> 
>> Thanks,
>> Vijay V.
>> 
>> 
>> From: Vijay Venkatachalam 
>> Sent: Wednesday, July 16, 2014 8:54 AM
>> To: 'Samuel Bercovici'; 'OpenStack Development Mailing List (not for usage 
>> questions)'
>> Subject: RE: [openstack-dev] [Neutron][LBaaS] TLS capability - SNI - 
>> Extracting SubjectCommonName and/or SubjectAlternativeNames from X509
>> 
>> Apologies for the delayed response.
>> 
>> I am OK with displaying the certificates contents as part of the API, that 
>> should not harm.
>> 
>> I think the discussion has to be split into 2 topics.
>> 
>> 1.       Certificate conflict resolution. Meaning what is expected when 2 or 
>> more certificates become eligible during SSL negotiation
>> 2.       SAN support
>> 
>> I will send out 2 separate mails on this.
>> 
>> 
>> From: Samuel Bercovici [mailto:samu...@radware.com] 
>> Sent: Tuesday, July 15, 2014 11:52 PM
>> To: OpenStack Development Mailing List (not for usage questions); Vijay 
>> Venkatachalam
>> Subject: RE: [openstack-dev] [Neutron][LBaaS] TLS capability - SNI - 
>> Extracting SubjectCommonName and/or SubjectAlternativeNames from X509
>> 
>> OK.
>> 
>> Let me be more precise, extracting the information for view sake / 
>> validation would be good.
>> Providing values that are different than what is in the x509 is what I am 
>> opposed to.
>> 
>> +1 for Carlos on the library and that it should be ubiquitously used.
>> 
>> I will wait for Vijay to speak for himself in this regard…
>> 
>> -Sam.
>> 
>> 
>> From: Stephen Balukoff [mailto:sbaluk...@bluebox.net] 
>> Sent: Tuesday, July 15, 2014 8:35 PM
>> To: OpenStack Development Mailing List (not for usage questions)
>> Subject: Re: [openstack-dev] [Neutron][LBaaS] TLS capability - SNI - 
>> Extracting SubjectCommonName and/or SubjectAlternativeNames from X509
>> 
>> +1 to German's and  Carlos' comments.
>> 
>> It's also worth pointing out that some UIs will definitely want to show SAN 
>> information and the like, so either having this available as part of the 
>> API, or as a standard library we write which then gets used by multiple 
>> drivers is going to be necessary.
>> 
>> If we're extracting the Subject Common Name in any place in the code then we 
>> also need to be extracting the Subject Alternative Names at the same place. 
>> From the perspective of the SNI standard, there's no difference in how these 
>> fields should be treated, and if we were to treat SANs differently then 
>> we're both breaking the standard and setting a bad precedent.
>> 
>> Stephen
>> 
>> 
>> On Tue, Jul 15, 2014 at 9:35 AM, Carlos Garza <carlos.ga...@rackspace.com> 
>> wrote:
>> 
>> On Jul 15, 2014, at 10:55 AM, Samuel Bercovici <samu...@radware.com>
>> wrote:
>> 
>>> Hi,
>>> 
>>> 
>>> Obtaining the domain name from the x509 is probably more of a 
>>> driver/backend/device capability, it would make sense to have a library 
>>> that could be used by anyone wishing to do so in their driver code.
>> 
>>    You can do what ever you want in *your* driver. The code to extract this 
>> information will be apart of the API and needs to be mentioned in the spec 
>> now. PyOpenSSL with PyASN1 are the most likely candidates.
>> 
>> Carlos D. Garza
>>> 
>>> -Sam.
>>> 
>>> 
>>> 
>>> From: Eichberger, German [mailto:german.eichber...@hp.com]
>>> Sent: Tuesday, July 15, 2014 6:43 PM
>>> To: OpenStack Development Mailing List (not for usage questions)
>>> Subject: Re: [openstack-dev] [Neutron][LBaaS] TLS capability - SNI - 
>>> Extracting SubjectCommonName and/or SubjectAlternativeNames from X509
>>> 
>>> Hi,
>>> 
>>> My impression was that the frontend would extract the names and hand them 
>>> to the driver.  This has the following advantages:
>>> 
>>> ·         We can be sure all drivers can extract the same names
>>> ·         No duplicate code to maintain
>>> ·         If we ever allow the user to specify the names on UI rather in 
>>> the certificate the driver doesn’t need to change.
>>> 
>>> I think I saw Adam say something similar in a comment to the code.
>>> 
>>> Thanks,
>>> German
>>> 
>>> From: Evgeny Fedoruk [mailto:evge...@radware.com]
>>> Sent: Tuesday, July 15, 2014 7:24 AM
>>> To: OpenStack Development Mailing List (not for usage questions)
>>> Subject: [openstack-dev] [Neutron][LBaaS] TLS capability - SNI - Extracting 
>>> SubjectCommonName and/or SubjectAlternativeNames from X509
>>> 
>>> Hi All,
>>> 
>>> Since this issue came up from TLS capabilities RST doc review, I opened a 
>>> ML thread for it to make the decision.
>>> Currently, the document says:
>>> 
>>> “
>>> For SNI functionality, tenant will supply list of TLS containers in specific
>>> Order.
>>> In case when specific back-end is not able to support SNI capabilities,
>>> its driver should throw an exception. The exception message should state
>>> that this specific back-end (provider) does not support SNI capability.
>>> The clear sign of listener's requirement for SNI capability is
>>> a none empty SNI container ids list.
>>> However, reference implementation must support SNI capability.
>>> 
>>> Specific back-end code may retrieve SubjectCommonName and/or altSubjectNames
>>> from the certificate which will determine the hostname(s) the certificate
>>> is associated with.
>>> 
>>> The order of SNI containers list may be used by specific back-end code,
>>> like Radware's, for specifying priorities among certificates.
>>> In case when two or more uploaded certificates are valid for the same DNS 
>>> name
>>> and the tenant has specific requirements around which one wins this 
>>> collision,
>>> certificate ordering provides a mechanism to define which cert wins in the
>>> event of a collision.
>>> Employing the order of certificates list is not a common requirement for
>>> all back-end implementations.
>>> “
>>> 
>>> The question is about SCN and SAN extraction from X509.
>>> 1.       Extraction of SCN/ SAN should be done while provisioning and not 
>>> during TLS handshake
>>> 2.       Every back-end code/driver must(?) extract SCN and(?) SAN and use 
>>> it for certificate determination for host
>>> 
>>> Please give your feedback
>>> 
>>> Thanks,
>>> Evg
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev@lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> 
>> -- 
>> Stephen Balukoff 
>> Blue Box Group, LLC 
>> (800)613-4305 x807
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to