Ubuntu et symbole non défini pour la méthode SSLv2

est-ce que les symboles canoniques sont renommés dans leur Version package d'openssl, et si oui dans quel but? Quand je compilerai openssl-1.0.0 E. goudron.GZ (Téléchargé de openssl.org directement) de zéro je vois le symbole nécessaire, mais Python (et I) ne semble pas le trouver dans la version empaquetée.

lisez la suite pour en savoir plus sur la façon dont j'ai diagnostiqué ce problème...

j'essaie de compiler Python 2.6.1 sur Ubuntu 11.10, et d'obtenir le message d'erreur surtout. La raison pour laquelle j'utilise cet ancien Python, c'est que j'essaie de rendre mon installation Ubuntu 100% compatible avec un système de production à des fins de développement.

lors de l'exécution

strace -feopen make -j4 |& grep "libssl"

je vois que j'utilise un fichier prometteur:

[pid 22614] open ("/usr/lib/x86_64-linux-gnu/libssl.so", O_RDONLY) = 7

tournant nm, ce fichier n'a pas de symboles. Cependant, l' .un fichier a un similaire l'un:

0000000000000030 T SSLv23_method

le paquet libssl1.0.0-dbg est installé via synaptic, cependant quand j'énumère les fichiers installés pour ce paquet tout ce que je vois c'est "la liste des fichiers installés n'est disponible que pour les paquets installés" ce qui est clairement un bug Ubuntu. Je ne suis donc pas sûr de savoir comment je suis censé vérifier quels symboles sont présents dans le .alors?

cependant, je me méfie qu'ils aient renommé SSLv2_method à SSLv23_method dans tous les cas.

comment procéder pour comprendre le statut de Ubuntu openssl-1.0.0?

23
demandé sur jww 2011-11-21 06:07:53

3 réponses

le peuple Ubuntu construisent OpenSSL sans support SSLv2 parce que le protocole a problèmes de sécurité connus . C'est pourquoi vous ne pouvez pas trouver SSLv2_method dans leur bibliothèque même si vous pouvez le trouver lorsque vous compilez la bibliothèque vous-même.

Ubuntu journaux de construction sont publiquement disponible . Vous pouvez voir dans le oneiric-i386.openssl_1.0.0 E log que la Bibliothèque est configurée avec le -no-ssl2 option, qui désactive le support de SSLv2.

./Configure --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/i386-linux-gnu no-idea no-mdc2 no-rc5 zlib  enable-tlsext no-ssl2 debian-i386
Configuring for debian-i386
    no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
    no-idea         [option]   OPENSSL_NO_IDEA (skip dir)
    no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
    no-krb5         [krb5-flavor not specified] OPENSSL_NO_KRB5
    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
    no-mdc2         [option]   OPENSSL_NO_MDC2 (skip dir)
    no-rc5          [option]   OPENSSL_NO_RC5 (skip dir)
    no-rfc3779      [default]  OPENSSL_NO_RFC3779 (skip dir)
    no-shared       [default] 
    no-ssl2         [option]   OPENSSL_NO_SSL2 (skip dir)
    no-store        [experimental] OPENSSL_NO_STORE (skip dir)
    no-zlib-dynamic [default] 

notez que la disponibilité de SSLv23_method ne signifie pas qu'un client pourra se connecter à un serveur avec SSLv2. La documentation D'OpenSSL brièvement traite de cette situation :

la liste des protocoles disponibles peut ensuite être limitée en utilisant le SSL_OP_NO_SSLv2, SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1 options of the SSL_CTX_set_options () or SSL_set_options (). en utilisant ces options il est possible de choisir par exemple SSLv23_server_method () et be capable de négocier avec tous les clients possibles, mais de ne permettre des protocoles comme SSLv3 ou TLSv1.

26
répondu indiv 2017-03-20 10:04:20

j'ai pu construire Python 2.6 avec le support de SSL sur Ubuntu 12.04 avec l'aide du patch dans ce billet de blog .

3
répondu Carl Meyer 2012-06-25 23:26:55

mon correctif était d'installer openssl sans support ssl2

./config --prefix=/usr enable-shared -no-ssl2

installe ensuite tout ce qui est lié aux bibliothèques dans /usr/ssl. Elle fonctionne..

0
répondu Vijay Kumar Kanta 2013-12-17 13:53:25