none
Diffe-Hellman 2048bit support RRS feed

  • 問題

  • Hi all,

    So the senerio is that 'an application' is serving web or service content using SCHANNEL and Diffe-Hellman key exchange.  Thanks to various updates the minumum key length has been automatically set to 1024bits.  My question is how can one go about setting SCHANNEL to use a minimum key length of 2048bits?  Suggestions seem to be setting a HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman\ClientMinKeyBitLength DWORD value to 800?

    A few forums suggest that the maximum possible length Windows Server supports is 1024bits?  Is this right as the alternative would suggest disabling DHE and using a different protocol?

    Thanks in advance.

    2016年2月23日 下午 03:27

解答

  • Hi,

    HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman\ClientMinKeyBitLength DWORD value to 800?

    Yes, more specifically, modify the DWORD value to 00000800.

    A few forums suggest that the maximum possible length Windows Server supports is 1024bits? 

    I don’t think so, here in this article below, with Microsoft DH Schannel Cryptographic Provider,

    the maximum key size for Diffie-Hellman Key Exchange Algorithm is 4096.

    CryptoAPI Cryptographic Service Providers

    https://msdn.microsoft.com/en-us/library/windows/desktop/bb931357(v=vs.85).aspx

    Best Regards,

    Amy


    Please remember to mark the replies as answers if they help and un-mark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年2月24日 上午 09:01
    版主

所有回覆

  • Hi,

    HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman\ClientMinKeyBitLength DWORD value to 800?

    Yes, more specifically, modify the DWORD value to 00000800.

    A few forums suggest that the maximum possible length Windows Server supports is 1024bits? 

    I don’t think so, here in this article below, with Microsoft DH Schannel Cryptographic Provider,

    the maximum key size for Diffie-Hellman Key Exchange Algorithm is 4096.

    CryptoAPI Cryptographic Service Providers

    https://msdn.microsoft.com/en-us/library/windows/desktop/bb931357(v=vs.85).aspx

    Best Regards,

    Amy


    Please remember to mark the replies as answers if they help and un-mark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年2月24日 上午 09:01
    版主
  • Hi,


    Many thanks for that link.  I think my issue is related to the fact I seem to be referring to Microsoft Base DSS and Diffie-Hellman Cryptographic Provider which appears to be the one controlled by the registry key above?  In this case both DH protocols only support 1024 key exchange - so now all I have to do is figure out how to disable that Cryptographic provider and enable Microsoft DH Schannel Cryptographic Provider and set the DH key exchange to 2048bits assuming the application(TMG) will even use that suite instead of the default.

    Thanks for pointing me in the right direction.

    EDIT: Looking at advice it may be easier to disable DH cipher suites all together and rely on ECDH suites to handle the key exchange.  I think I was getting side tracked from my inital issue that was trying to setup a secure key exchange length.

    After applying the value 800 to the key mentioned above the following cipher suites still show as 1024 bits:

    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f)   DH 1024 bits   FS   WEAK 256
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e)   DH 1024 bits   FS   WEAK 128


    So in order to get around this I thinmk I will disable these suites and rely on the ECDH suites as I said above.
    2016年2月24日 下午 02:54
  • The OP's scenario is for a web server hosting 'an application'. Since this setting is for the Servers SCHANNEL configuration, The correct registry name to use is "ServerMinKeyBitLength" instead of "ClientMinKeyBitLength"

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman\ServerMinKeyBitLength

    With DWORD value being one of:  0x00000800 (2048), 0x00000c00 (3072), or 0x00001000 (4096)

    2017年6月6日 下午 08:18
  • yours works.. thanks for help.. but I put two:

    reg  add   "HKey_Local_Machine\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman" /f /v ClientMinKeyBitLength /t REG_DWORD /d 0x00000800
    reg  add   "HKey_Local_Machine\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman" /f /v ServerMinKeyBitLength /t REG_DWORD /d 0x00000800

    (This use to mitigate: SSL/TLS Diffie-Hellman Modulus <= 1024 Bits (Logjam) - Tenable)
    2018年1月11日 下午 03:31