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

Keith Wall commented on QPID-7309:
----------------------------------

There will need to be a change to the public API for configuring message 
encryption trust. The client needs its own source of trust anchors (aka root 
certificates) for the purposes of chain of trust validation of a recipient's 
certificate. If SSL certificate signed by a public CA are in use, the client 
can fallback on JVM's own truststore.  In a private/self-signed CA is in use, 
the client needs configuration for its own source of trust.    We don't 
currently have a way to give this to the client.

The client currently accepts a parameters {{encryption_trust_store}} (client 
manages recipent's certificates itself) and {{encryption_remote_trust_store}} 
(client receives  recipent's certificates from the Broker).  These are in fact 
peer certificate stores/sources rather than 'trust' stores/sources so these 
parameters should probably be renamed for clarity.
 
In order for the client to validate the chain of trust, it will require the 
CA's intermediates too. For the case where the Broker is distributing the 
certificates, the Broker should probably be distributing the intermediate 
certificates too.   {{ManagedPeerCertificateStore}} gathers the peers' 
certificates - but it does not currently collect the intermediate.  The user 
could manually add the intermediates to the trust store or there might be a 
method this could be automated.  This needs some more investigation. 

Smaller issues noted too:
* MessageEncryptionHelper does not revalidate a cached certificate's expiration 
before re-use. It should.
* MessageEncryptionHelper#226 looked suspicious.  Does the algorithm really 
intend the certificate with the shortest time remaining?










> [Java Client] [Message Encryption] Improve verification of the recipient's 
> certificate
> --------------------------------------------------------------------------------------
>
>                 Key: QPID-7309
>                 URL: https://issues.apache.org/jira/browse/QPID-7309
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>            Reporter: Keith Wall
>             Fix For: qpid-java-6.1, qpid-java-6.0.4
>
>
> The current implementation of end-to-end message encryption permits the 
> encryption of messages with an untrusted certificates.  The default behaviour 
> should validate the certificate's chain of trust by default and fail if the 
> chain of trust cannot be established.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to