[ 
https://issues.apache.org/jira/browse/KAFKA-3665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15274001#comment-15274001
 ] 

Ryan P commented on KAFKA-3665:
-------------------------------

[~ijuma], just a nit but [RFC 6125|https://tools.ietf.org/search/rfc6125] 
advises against the use of the CN for hostname verification. 

{quote}
Existing certificates often use a CN-ID in the subject field to
   represent a fully qualified DNS domain name; for example, consider
   the following three subject names, where the attribute of type Common
   Name contains a string whose form matches that of a fully qualified
   DNS domain name ("im.example.org", "mail.example.net", and
   "www.example.com", respectively):

      CN=im.example.org,O=Example Org,C=GB
      C=CA,O=Example Internetworking,CN=mail.example.net
      O=Examples-R-Us,CN=www.example.com,C=US

   However, the Common Name is not strongly typed because a Common Name
   might contain a human-friendly string for the service, rather than a
   string whose form matches that of a fully qualified DNS domain name
   (a certificate with such a single Common Name will typically have at
   least one subjectAltName entry containing the fully qualified DNS
   domain name):

      CN=A Free Chat Service,O=Example Org,C=GB

   Or, a certificate's subject might contain both a CN-ID as well as
   another common name attribute containing a human-friendly string:

      CN=A Free Chat Service,CN=im.example.org,O=Example Org,C=GB

   In general, this specification recommends and prefers use of
   subjectAltName entries (DNS-ID, SRV-ID, URI-ID, etc.) over use of the
   subject field (CN-ID) where possible, as more completely described in
   the following sections.  However, specifications that reuse this one
   can legitimately encourage continued support for the CN-ID identifier
   type if they have good reasons to do so, such as backward
   compatibility with deployed infrastructure
{/quote}

Using the CN subject field is still completely valid but if we are going to 
amend the docs anyway it may be worth adding the steps to generate key pairs  
as described in the RFC.  

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html

keytool -genkeypair \
   -keystore keystore.jks \
  -dname "CN=example.com, OU=Kafka, O=Org, L=Raleigh, ST=NC, C=US" \
  -keypass password \
  -storepass password \
  -keyalg RSA \
  -keysize 2048 \
  -alias san \
  -ext SAN=DNS:example.com \


> Default ssl.endpoint.identification.algorithm should be https
> -------------------------------------------------------------
>
>                 Key: KAFKA-3665
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3665
>             Project: Kafka
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 0.9.0.1
>            Reporter: Ismael Juma
>            Assignee: Ismael Juma
>             Fix For: 0.10.0.0
>
>
> The default `ssl.endpoint.identification.algorithm` is `null` which is not a 
> secure default (man in the middle attacks are possible).
> We should probably use `https` instead. A more conservative alternative would 
> be to update the documentation instead of changing the default.
> A paper on the topic (thanks to Ryan Pridgeon for the reference): 
> http://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to