SSL/TLS 연결 중에 서버 호스트 이름을 확인해야 합니다.

 

중간자 공격에 취약하지 않은 SSL/TLS 연결을 설정하려면 서버가 올바른 인증서를 제공하는지 확인해야 합니다.

인증서의 호스트 이름 관련 데이터는 서버 호스트 이름과 일치해야 합니다.

사용자 지정 호스트 이름 확인을 구현하여 새것을 만들지 않는 것이 좋습니다.

TLS/SSL 라이브러리에는 호스트 이름 확인 기능이 내장되어 있으므로 이를 사용해야 합니다.

규칙을 어긴 코드

Python ssl standard 라이브러리:

import ssl

ctx = ssl._create_unverified_context() # 규칙을 어긴 코드: 기본적으로 호스트 이름 확인은 수행되지 않습니다
ctx = ssl._create_stdlib_context() # 규칙을 어긴 코드: 기본적으로 호스트 이름 확인은 수행되지 않습니다

ctx = ssl.create_default_context()
ctx.check_hostname = False # 규칙을 어긴 코드

ctx = ssl._create_default_https_context()
ctx.check_hostname = False # 규칙을 어긴 코드

규칙을 준수한 해결책

Python ssl standard 라이브러리:

import ssl

ctx = ssl._create_unverified_context()
ctx.check_hostname = True # 규칙을 준수한 코드

ctx = ssl._create_stdlib_context()
ctx.check_hostname = True # 규칙을 준수한 코드

ctx = ssl.create_default_context() # 규칙을 준수한 코드: 기본적으로 호스트 이름 확인이 활성화되어 있습니다
ctx = ssl._create_default_https_context() # 규칙을 준수한 코드: 기본적으로 호스트 이름 확인이 활성화되어 있습니다

같이보면 좋은 자료

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project