Lorsque j'ai essayé la communication SSL à l'aide de l'API tierce de Python sur Ubuntu 20.04, l'erreur suivante s'est produite. Cela semble se produire sur Ubuntu 20.04.
(Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)')
Je vais résumer la solution en me référant au QA ci-dessous. https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level
Vérifiez le répertoire d'emplacement du fichier de configuration openssl avec la commande suivante.
% openssl version -d
D'ailleurs, c'est généralement sous "/ usr / lib / ssl".
Ajoutez la ligne suivante au début du fichier et enregistrez.
openssl_conf = default_conf
Ensuite, ajoutez ce qui suit à la fin du fichier.
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect] MinProtocol = TLSv1.2 CipherString = DEFAULT:@SECLEVEL=1
Cela réduit le niveau de sécurité du cryptage OpenSSL. Cela seul devrait permettre la communication SSL.
La modification directe du fichier de configuration sous / usr / lib / ssl affecte l'ensemble du système Linux. Si vous souhaitez localiser l'effet lors de la connexion en tant qu'utilisateur spécifique, ajoutez les variables d'environnement suivantes à .bashrc.
export OPENSSL_CONF=/path/to/my/openssl.cnf
Il semble que la cause en soit que le paramètre par défaut du type Debine OpenSSL est devenu plus sécurisé. C'est l'arrière-plan qui est devenu sécurisé. (Anglais) https://weakdh.org/
Un bref aperçu révèle une vulnérabilité dans l'algorithme d'échange de clés utilisé par SSL. Une erreur DH_KEY_TOO_SMALL se produit lors de la tentative de communication SSL correspondant à la vulnérabilité.
La solution fondamentale est d'améliorer la sécurité côté serveur, mais cette fois c'est impossible car une API tierce est utilisée. Par conséquent, la méthode de modification du niveau de sécurité décrite ci-dessus a été adoptée.
Recommended Posts