New webrev:
http://cr.openjdk.java.net/~xuelei/8226374/webrev.03/

On 7/25/2019 11:36 AM, Sean Mullan wrote:
On 7/25/19 11:45 AM, Xuelei Fan wrote:
I updated the CSR and webrev per the review comments accordingly.

webrev: http://cr.openjdk.java.net/~xuelei/8226374/webrev.02/

Not done reviewing yet, but here are a couple of comments so far:

* test/jdk/sun/security/ssl/CipherSuite/RestrictNamedGroup.java

   96             } catch (Exception exp) {
   97                 continue;
   98             }

Can you check for an expected exception here? Same comment on lines 111-113 of RestrictSignatureScheme.java

As the test is a client-server structure, the exception may be different for each run (client or server which thread dies first). I updated to use "SSLException | IllegalStateException". SSLException is the general exception, but IllegalStateException is the exception thrown by client or server thread when it dies and failed to wrap the SSLException. The normal case for the signature schemes and named groups should have been covered by other test cases, it may not worthy to analysis the exception stack for exactly exception, which is not reliable if the exception stack get changed in the future.


* src/java.base/share/classes/sun/security/ssl/ECDHServerKeyExchange.java

114             if ((namedGroup == null) || (!namedGroup.isAvailable)) {

You don't do this check for null and isAvailable in other places, for example ECDHClientKeyExchange.ECDHEClientKeyExchangeConsumer.consume() - should you?

Good point! Currently, the restriction is only checked for the supported group extension. I should add more check points in other places where named groups are used, for example client key exchange and certificate. Stay tune for the next webrev.


CSR:    https://bugs.openjdk.java.net/browse/JDK-8227445

In the CSR, the Notes 1-3 are very similar. I only think you need to mention that the names will be standardized in a subsequent CSR - and maybe you can point or add a link to the issue that has been filed for that. I don't think you need the other 2 notes.

Updated.

Thanks,
Xuelei

--Sean


Thanks,
Xuelei

On 7/12/2019 9:14 AM, Xuelei Fan wrote:
On 7/12/2019 5:24 AM, Sean Mullan wrote:
On 7/11/19 11:56 AM, Xuelei Fan wrote:

Also, in the CSR you list all the different signature algorithms that could be disabled, but you use the TLS names, and not the standard JCE names. I found this a bit confusing, since if you added those exact TLS names to jdk.tls.disabledAlgorithms, I don't think it will work, or if it does we need additional changes to the jdk.tls.disabledAlgorithms definition - and maybe that is what we should do?  Also, I don't think it is possible to disable individual RSASSA-PSS algorithms, I think you can just disable all or none of them because the parameters are specified separately and not part of the standard JCE name. Similar to other algorithms - how would I just disable ecdsa_secp256r1_sha256 and nothing else? Is that an issue?

Yes, it is an issue now.  The AlgorithmConstraints is able to accept parameters, but the current jdk.tls.disabledAlgorithms property cannot. That's also why I used the TLS names (ecdsa_secp256r1_sha256, rsa_pss_rsae_sha256, etc) rather than standard names (SHA256withECDSA, RSASSA-PSS).

I agree with you that it is confusing.  The use of rsa_pss_rsae_sha256 may be fine, but the name "dsa_sha256" rather then "SHA256withDSA" could be confusing.

I was planned to add TLS signature algorithms into the standard names, as we will do for the named groups.  But it looks like a duplicate of the crypto Signature algorithms.

I would lean towards this option. We could extend the jdk.tls.disabledAlgorithms property to allow you to specify TLS signature schemes as defined in https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-signaturescheme

We would also need to add a section to the Standard Names specification listing these schemes.

The reason I like this option is because it fits well with the TLS namespace, and it is more flexible than the JCE names and we can more easily restrict new TLS signature schemes that are defined later.
I agreed that is is more straightforward.  Okay, let's go with option.

Between file a new enhancement for Standard Names documentation or update the doc this time, do you have a preference?  Maybe, we can update the doc together with JDKJDK-8210755?
    https://bugs.openjdk.java.net/browse/JDK-8210755

Thanks,
Xuelei

Reply via email to