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

Ya Xiao commented on IGNITE-14004:
----------------------------------

Yes, there are more secure ways to handle self-signed certificates. 

One approach is to add the self-signed certificate we want to trust to 
[KeyStore|https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html].
 KeyStore specifies the trusted anchors of TrustManager. 
[Here|https://github.com/AthenaXiao/SecureTLSCodeExample/blob/master/TrustmanagerExamples/specifiedTM.java]
 is an example to allow a specific self-signed certificate to pass the 
validation. It ties a TrustManager to a specific KeyStore where the self-signed 
certificate is added. The checkServerTrusted method still works as the default 
to prevent attacks. 

 

 

> Customized TrustManager bypasses certificate verification
> ---------------------------------------------------------
>
>                 Key: IGNITE-14004
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14004
>             Project: Ignite
>          Issue Type: Bug
>          Components: clients, control.sh, security
>            Reporter: Ya Xiao
>            Priority: Critical
>              Labels: security
>
> We found a security vulnerability in file 
> [ignite/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java|https://github.com/apache/ignite/blob/be3072ff278a2542e41d008b5379473867df3814/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java].
>  The customized TrustManger (at Line 502) allows all certificates to pass the 
> verification.
> *Security Impact*:
> The checkClientTrusted and checkServerTrusted methods are expected to 
> implement the certificate validation logic. Bypassing it could allow 
> man-in-the-middle attacks.
> *Useful Resources*:
> [https://cwe.mitre.org/data/definitions/295.html]
> [https://developer.android.com/training/articles/security-ssl|https://developer.android.com/training/articles/security-ssl#SelfSigned]
> *Solution we suggest:*
> Do not customize the TrustManger or specify the certificate validation logic 
> instead of allowing all certificates. See 
> [here|https://developer.android.com/training/articles/security-ssl] to 
> securely allow self-signed certificates and other common cases.
> *Please share with us your opinions/comments if there is any:*
> Is the bug report helpful?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to