Diffie–Hellman Key Exchange ================================== 共通鍵の交換に使用される手法で、 公開鍵暗号と同様に現状では解くのが困難な問題を利用している。 TLS において共通鍵を共有する際、 公開鍵暗号を用いた暗号化の代わりに使用できるもので、 公開鍵暗号の秘密鍵が漏洩したとしても共通鍵は守れるという。 ただし、TLS のハンドシェイクの時間が延びやすいとされている。 そのオーバーヘッドがどの程度のものなのかは、 実際に動かして確認しておきたい。 OpenSSL では、サーバで Diffie–Hellman Parameters というものを設定しておくと使用できるようになる。 OpenSSL による Diffie–Hellman Parameters の生成 ---------------------------------------------------------- openssl コマンドを使用すると以下のように生成できる。 .. code:: console $ openssl dhparam -out dhparam.pem 2048 Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ................................................................................................................+.........................................................................................................................................................................+..........................................................+.............................................+............................................................................................................................................................................................+..................+..........................+............................................................+.......................................................................................+...........................................................................................................+........................................................................................................................................................................................................+.............................................................................................................................................................................................+.........................................+........................+....................................................................+...........................+............+.................................................................................+................+..................+......................................................+......................................+..........+............+...................................................................................+...........................+.............................+....................................................................................................+...........................................................+.....................................+...............................................................................+.......................+..............................................+.+.................................................................................................................+...................................................................................................................................................................+............................................+..............+......................................................................................................................................+.............................................................................................................................................................................................................+..............................................+.....................................................................................................................................+................+................................................+................................................................................................+............................+..................................................................................................................................................................................................+.+....................+.....................................................................+...................................................+..............................................+...........................................................................+.......................................+.............................................................................................................................................+...............................................................................................+...........................................................................+............................................+.................................................................................+................................................................................................................................................................................................+....................................+.....................................................+.....................................+.......+....................................................+...................................................+..............+.................................................+............................................................+............................................................................................................................................+..................................................................+..+...................................................................................................................+.....................+.......................................................................................+....................................................................................................+................................................................................................+...................+.....................................................................................+...........................+...................................................+....................................................................+.....................................................................................+.......................................+..........................................................................................................................................................................................+........................................................................................................................+.................+......................+......+.............................................................................................................................................................................................................................................+.....................................................................................+..................................................................................................+.........................................................................................................................................................+................................................................+...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................+...................................................................................+....................................................+.....................................................................+..................................................+......+......................................+.........+................................................................+.......................................................................................................................................+..........................................................................................................................................................................................................................................+.............................................+......+..........................................................................................................................+......................................................+...............................+..+..........................................+...............+...................................................................+...................................................................................................................................................................................................+..................+......................................................................................................................................................................................................................................................................................................................................................................................................+.............+..........................................................................................................................................................................+..................+...............................+...................................................................................................................................+.+................................................................................+.....................................................................................................................................................................................................................................................+................................................................................................................................+.............................................................................................................................................+..........++*++*++*++* $ ls dhparam.pem dhparam.pem 参考 --------- - `Diffie-Hellman parameters - OpenSSLWiki `_ - `Ivan Ristić: Deploying Forward Secrecy `_ - `RFC 8270 - Increase the Secure Shell Minimum Recommended Diffie-Hellman Modulus Size to 2048 Bits `_ - `/docs/man1.1.1/man1/dhparam.html `_