RFR: 8281561: Disable http DIGEST mechanism with MD5 by default

Michael McMahon michael.x.mcmahon at oracle.com
Mon Mar 7 12:43:20 UTC 2022


I'm wrong. It is implemented in the security libs. So, that means we can 
support it also

Michael

On 07/03/2022 12:24, Michael McMahon wrote:
> Bernd,
>
> In that case we should defer to the security libraries to implement 
> SHA-512-256, which does not seem to be supported currently. We already 
> support SHA-512 so that should be sufficient at this point.
>
> Thanks
>
> Michael.
>
> On 07/03/2022 11:27, Bernd Eckenfels wrote:
>> Hello,
>>
>> SHA-512/256 is normally not a simple truncation (because similiar 
>> hashes are not a robust crypto practice, instead it is using 
>> different initialisation vectors).
>>
>> Haven’t checked the example vectors in rfc 7616, but I would asume 
>> they refer to FIPS 180-4 truncation variants.
>>
>> Gruss
>> Bernd
>> -- 
>> http://bernd.eckenfels.net
>> ________________________________
>> Von: net-dev<net-dev-retn at openjdk.java.net>  im Auftrag von Michael 
>> McMahon<michaelm at openjdk.java.net>
>> Gesendet: Monday, March 7, 2022 12:04:02 PM
>> An:net-dev at openjdk.java.net <net-dev at openjdk.java.net>
>> Betreff: Re: RFR: 8281561: Disable http DIGEST mechanism with MD5 by 
>> default
>>
>> On Fri, 4 Mar 2022 14:59:48 GMT, Weijun Wang<weijun at openjdk.org>  wrote:
>>
>>>> Hi,
>>>>
>>>> Could I get the following change reviewed please, which is to 
>>>> disable the MD5 message digest algorithm by default in the HTTP 
>>>> Digest authentication mechanism? The algorithm can be opted into by 
>>>> setting a new system property "http.auth.digest.reEnabledAlgs" to 
>>>> include the value MD5. The change also updates the Digest 
>>>> authentication implementation to use some of the more secure 
>>>> features defined in RFC7616, such as username hashing and 
>>>> additional digest algorithms like SHA256 and SHA512-256.
>>>>
>>>> - Michael
>>> src/java.base/share/classes/java/net/doc-files/net-properties.html 
>>> line 232:
>>>
>>>> 230:         includes {@code MD5} but other algorithms may be added 
>>>> in future. If it is still
>>>> 231:         required to use one of these algorithms, then they can 
>>>> be re-enabled by setting
>>>> 232:         this property to a comma separated list of the 
>>>> algorithm names.</P>
>>> Is it necessary to emphasize that no whitespace is allowed around 
>>> the comma in the property value? Or is it better to modify the 
>>> implementation below to allow whitespaces? I notice that whitespace 
>>> is allowed in some of the other properties. For 
>>> example:https://github.com/openjdk/jdk/blob/de3113b998550021bb502cd6f766036fb8351e7d/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java#L228
>> Right, probably better to allow whitespace, which seems to be 
>> commonly used in the existing security properties
>>
>>> src/java.base/share/classes/sun/net/www/protocol/http/DigestAuthentication.java 
>>> line 75:
>>>
>>>> 73:     // A net property which overrides the disabled set above.
>>>> 74:     private static final String enabledAlgPropName = 
>>>> "http.auth.digest." +
>>>> 75:         "reEnabledAlgs";
>>> Why not put the string on one line?
>> I'll try and see if it fits the normal line width
>>
>>> src/java.base/share/classes/sun/net/www/protocol/http/DigestAuthentication.java 
>>> line 670:
>>>
>>>> 668:         if (truncate256) {
>>>> 669:             assert digest.length >= 32;
>>>> 670:             start = digest.length - 32;
>>> Does this mean the left half is truncated? My understanding is that 
>>> the right half should be.
>> Okay, I'll double check that. I haven't found any server 
>> implementations of this feature to test with yet,
>>
>> -------------
>>
>> PR:https://git.openjdk.java.net/jdk/pull/7688
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/net-dev/attachments/20220307/02ec28f4/attachment-0001.htm>


More information about the net-dev mailing list