Diffie-Hellman

用於 TLS 的 Diffie-Hellman 參數源自給定的有限域組

  • June 17, 2020

我對密碼學很感興趣,但不幸的是還沒有時間深入研究這個話題。我以前做過一些量子加密的東西,但這對我目前的挑戰沒有幫助。我希望這個社區可以幫助我完成以下工作。

我目前正在我的團隊使用的 nginx 入口和伺服器上實施安全措施,為此我正在遵循最新的 CIS NGINX 基準。到目前為止,一切都很好。關於 Diffie-Hellman 參數的主題,我能夠使用 openssl 創建一個 4096 位 DH 密鑰並將其配置為使用。到目前為止還是不錯的。

我的團隊的管理層正在檢查某個網站,以查看我們的網站是否安全(internet.nl,由荷蘭網路安全中心創建,一個政府組織)。該網站檢測到我們有一個 4096 位的 DH 密鑰,但他們忽略了它,因為他們不信任自行生成的密鑰。他們指的是此處可用的有限域組:IETF:用於傳輸層安全性 (TLS) 的協商有限域 Diffie-Hellman 臨時參數

我想听從他們的建議,但真的不知道如何處理。

我的問題是:如何從有限域組中獲取 PEM 格式的 diffie-helman 密鑰,定義如下?

A.3.  ffdhe4096

  The 4096-bit group has registry value 258 and is calculated from the
  following formula:

  The modulus is:

  p = 2^4096 - 2^4032 + {[2^3966 * e] + 5736041} * 2^64 - 1

  The hexadecimal representation of p is:

   FFFFFFFF FFFFFFFF ADF85458 A2BB4A9A AFDC5620 273D3CF1
   D8B9C583 CE2D3695 A9E13641 146433FB CC939DCE 249B3EF9
   7D2FE363 630C75D8 F681B202 AEC4617A D3DF1ED5 D5FD6561
   2433F51F 5F066ED0 85636555 3DED1AF3 B557135E 7F57C935
   984F0C70 E0E68B77 E2A689DA F3EFE872 1DF158A1 36ADE735
   30ACCA4F 483A797A BC0AB182 B324FB61 D108A94B B2C8E3FB
   B96ADAB7 60D7F468 1D4F42A3 DE394DF4 AE56EDE7 6372BB19
   0B07A7C8 EE0A6D70 9E02FCE1 CDF7E2EC C03404CD 28342F61
   9172FE9C E98583FF 8E4F1232 EEF28183 C3FE3B1B 4C6FAD73
   3BB5FCBC 2EC22005 C58EF183 7D1683B2 C6F34A26 C1B2EFFA
   886B4238 611FCFDC DE355B3B 6519035B BC34F4DE F99C0238
   61B46FC9 D6E6C907 7AD91D26 91F7F7EE 598CB0FA C186D91C
   AEFE1309 85139270 B4130C93 BC437944 F4FD4452 E2D74DD3
   64F2E21E 71F54BFF 5CAE82AB 9C9DF69E E86D2BC5 22363A0D
   ABC52197 9B0DEADA 1DBF9A42 D5C4484E 0ABCD06B FA53DDEF
   3C1B20EE 3FD59D7C 25E41D2B 669E1EF1 6E6F52C3 164DF4FB
   7930E9E4 E58857B6 AC7D5F42 D69F6D18 7763CF1D 55034004
   87F55BA5 7E31CC7A 7135C886 EFB4318A ED6A1E01 2D9E6832
   A907600A 918130C4 6DC778F9 71AD0038 092999A3 33CB8B7A
   1A1DB93D 7140003C 2A4ECEA9 F98D0ACC 0A8291CD CEC97DCF
   8EC9B55A 7F88A46B 4DB5A851 F44182E1 C68A007E 5E655F6A
   FFFFFFFF FFFFFFFF

  The generator is: g = 2

  The group size is: q = (p-1)/2

Gillmor                      Standards Track                   [Page 22]

RFC 7919                Negotiated FFDHE for TLS             August 2016

  The hexadecimal representation of q is:

   7FFFFFFF FFFFFFFF D6FC2A2C 515DA54D 57EE2B10 139E9E78
   EC5CE2C1 E7169B4A D4F09B20 8A3219FD E649CEE7 124D9F7C
   BE97F1B1 B1863AEC 7B40D901 576230BD 69EF8F6A EAFEB2B0
   9219FA8F AF833768 42B1B2AA 9EF68D79 DAAB89AF 3FABE49A
   CC278638 707345BB F15344ED 79F7F439 0EF8AC50 9B56F39A
   98566527 A41D3CBD 5E0558C1 59927DB0 E88454A5 D96471FD
   DCB56D5B B06BFA34 0EA7A151 EF1CA6FA 572B76F3 B1B95D8C
   8583D3E4 770536B8 4F017E70 E6FBF176 601A0266 941A17B0
   C8B97F4E 74C2C1FF C7278919 777940C1 E1FF1D8D A637D6B9
   9DDAFE5E 17611002 E2C778C1 BE8B41D9 6379A513 60D977FD
   4435A11C 308FE7EE 6F1AAD9D B28C81AD DE1A7A6F 7CCE011C
   30DA37E4 EB736483 BD6C8E93 48FBFBF7 2CC6587D 60C36C8E
   577F0984 C289C938 5A098649 DE21BCA2 7A7EA229 716BA6E9
   B279710F 38FAA5FF AE574155 CE4EFB4F 743695E2 911B1D06
   D5E290CB CD86F56D 0EDFCD21 6AE22427 055E6835 FD29EEF7
   9E0D9077 1FEACEBE 12F20E95 B34F0F78 B737A961 8B26FA7D
   BC9874F2 72C42BDB 563EAFA1 6B4FB68C 3BB1E78E AA81A002
   43FAADD2 BF18E63D 389AE443 77DA18C5 76B50F00 96CF3419
   5483B005 48C09862 36E3BC7C B8D6801C 0494CCD1 99E5C5BD
   0D0EDC9E B8A0001E 15276754 FCC68566 054148E6 E764BEE7
   C764DAAD 3FC45235 A6DAD428 FA20C170 E345003F 2F32AFB5
   7FFFFFFF FFFFFFFF

  The estimated symmetric-equivalent strength of this group is 150
  bits.

  Peers using ffdhe4096 that want to optimize their key exchange with a
  short exponent (Section 5.2) should choose a secret key of at least
  325 bits.

非常歡迎您提出任何建議或答案。預先感謝!

最好的,盧多

已經解決但要關閉狀態:openssl命令行確實支持此 API(在 1.1.1 中添加),儘管它(還沒有?)記錄在案(在網站上的 manmaster 中,據說密切跟踪“頭”):

openssl genpkey -genparam -algorithm DH -pkeyopt dh_param:ffdhe4096 -out file.pem [-outform PEM] 

引用自:https://crypto.stackexchange.com/questions/81017