[ 
https://issues.apache.org/jira/browse/DIRSTUDIO-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Seelmann updated DIRSTUDIO-263:
--------------------------------------

    Fix Version/s: 1.5.0

Basic certificate validation is implemented: First the default JVM validation 
is called (which uses the <JAVA_HOME>/lib/security/cacerts keystore by 
default). If the verification fails the user is asked if s/he wants to trust 
the certificate. It works with Sun 5 and 6, JRockit 6 and IBM 5. There are 
problems with Harmony and IBM 6 (which is based on Harmony), seems like Harmony 
hasn't implemented StartTLS yet, I have to investigate.

The next steps are:

* Show the certificate details to the user. I'd suggest to create a certificate 
dialog that shows the certificate and the chain, like in Firefox. We could 
reuse this a dialog for a certificate and certificate list value editor. Such a 
dialog already exists in Eclipse, it pops up if you install a new plugin and 
the plugin isn't signed from a known CA. Unfortunately this dialog is only 
internal and not accessible from outside.

* Allow permanent trust of a certificate. Therefor we need to create a custom 
keystore and put permanent trusted certificate chains into it. A preference 
page to manage these certificates would also be helpful, e.g. if the user added 
accidentially a certificate and wants to remove it. 

* Enable hostname verification. This is quite tricky, see Marius' comment.
  - For ldaps:// JNDI doesn't verify hostnames at all. The solution shown by 
Marius (see the link above) seems to work, however the class "HostnameChecker" 
is a Sun JDK specific class in package "sun.security.util.HostnameChecker".
  - For StartTLS JNDI verifies hostnames by default. However if the 
verification fails, the connection is closed. But we should ask the user if 
s/he wants to trust the certificate anyway.
  - Looks like we need a custom hostname checker. But that is quite complex 
because we have to deal with IPv4 and IP46 addresses, hostnames, wildcards; the 
hostname could be the cn or one of the subject alias, etc.

* An additional step would be to implement SASL EXTERNAL authentication using a 
client certificate.


> Add certificate validation for ldaps and StartTLS
> -------------------------------------------------
>
>                 Key: DIRSTUDIO-263
>                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-263
>             Project: Directory Studio
>          Issue Type: Improvement
>          Components: studio-connection
>            Reporter: Stefan Seelmann
>            Assignee: Stefan Seelmann
>            Priority: Minor
>             Fix For: 1.5.0
>
>
> We have encrypted connections using ldaps:// or the StartTLS extended 
> operation, but the certificate isn't validated as we always use a 
> DummySSLSocketFactory.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to