2013-09-04 2 views
8

파이썬 2가 단지 ssl.PROTOCOL_TLSv1 상수를 가지고 있고, ssl.PROTOCOL_TLSv1_1ssl.PROTOCOL_TLSv1_2이 파이썬 3.4에 추가되었다는 문서를 읽었습니다. 파이썬 2에서 어떻게 TLS 1.1과 1.2를 사용할 수 있습니까?파이썬 2에서 TLS 버전 1.1 또는 1.2를 사용할 수 있습니까?

추신. TLS 1.0에는 보안 결함이 있기 때문에 사용하고 싶지 않습니다. TLS 1.2는 최신 버전이므로 TLS 1.2 만 사용하도록하고 싶습니다. 서버가 TLS 1.2를 지원하지 않으면 연결이 실패하게됩니다.

답변

1

없음 파이썬 2에서 TLS 1.1 또는 1.2 계획된 지원이없는, 볼 :

http://bugs.python.org/issue16692

은 TLS 1.0 파이썬 2.7에 백 포트, 그리고되지 않습니다 파이썬 테이너가 말했다>이 명확하게 명시 몇 번이나 파이썬 2.8이 일어나지 않을 것입니다.

현재 TLS 1.2를 지원하는 서버는 거의 없습니다. 다행히 미래에 바뀔 것입니다.

+0

Python 메인테이너가 '백도어 TLS> 1.0에서 파이썬 2.7까지'에 대한 링크를 제공 할 수 있습니까? 감사합니다 – Tian

+0

이전 링크를 읽었습니까? :) 바로 거기에 있습니다 : http://bugs.python.org/issue16692#msg189879 –

+3

아마도 말했을지 모르지만 사실은 파이썬 1.1.8과 1.2가 2.7.8을 지원한다는 것입니다. "버전 2.7의 새로운 기능"을 참조하십시오.9 ssl 설명서의 참고 사항 : https://docs.python.org/2/library/ssl.html#ssl.PROTOCOL_TLSv1_2 – guival

2

나는 최근에 상호 인증 된 SSL을 사용하여 TLSv1.2 연결을 종료해야했으며 이것은 바닐라 2.7.8에 없었습니다. 나는 힘차게 나의 네트워크 I/O 집약적 인 애플리케이션을 파이썬 3에 이식하기 시작했다. 모든 문자열을 바이트로 바꾸고 다시 recv/send로 바꾼다. 그것은 빨기 위하여 가고 있었다.

그런 다음 PEP466을 발견했습니다. PEP466 (Google it)에서 2.7.7 또는 2.7.8로 패치를 적용하여 TLS 1.1 및 TLS 1.2를 매우 쉽게 사용할 수 있습니다.

또한 http://bugs.python.org/file36423/ssl-backport.diff

, 당신은 SSL 코드에서 오류를 구성 할 때 segfault의 원인이되는 유니 코드 관련 버그를 해결하기 위해 다음과 같은 패치가 필요합니다 @ PEP 466에 대한 패치는 다음과 같습니다

이 패치입니다 @ 패치를 적용하면 http://bugs.python.org/file36017/unicode_fromformat.patch

또한, 당신은 기술적 구성 및 컴파일하기 전에 다음을 수행해야합니다

~/Python-2.7.8$ python3 ./Tools/ssl/make_ssl_data.py /usr/include/openssl/ _ssl_data.h 
~/Python-2.7.8$ mv _ssl_data.h Modules/_ssl_data.h 

그러면 & &을 구성 할 수 있습니다. & & TLSv1.1 및 TLSv1.2와 함께 설치하는 것이 좋습니다.

~/Python-2.7.8$ ./configure --enable-unicode=ucs2 --prefix=/opt/Python-2.7.8/ --with-pth && make -j && sudo make install 

TLS 1.2 지금 나를 위해 잘 작동, 그래서 3

어쨌든 파이썬 포트에 거대한 응용 프로그램을하지 마십시오 PEP 페이지의 문구가 혼란, 그것은 소리를 만든다 2.7.9와 같은 12 월에이 지원이 포함되어 있어야한다고 생각했는데 (?) 코드가 파이썬 3에 포팅 될 때까지는 그 코드가 정확한지 또는 수동적 인 해결 방법인지 확실하지 않다. 문제.

관련 문제