sslscan - SSL/TLS 설정 분석 도구
1. sslscan 이란?
sslscan은 웹 서버의 SSL/TLS 설정을 분석하여 지원하는 프로토콜/암호화 방식, 인증서 정보, 보안 취약점을 빠르게 확인할 수 있는 커맨드라인 기반 보안 도구이다.
실행환경은 windows이다.
악용 시 책임지지 않습니다.
2. 설치방법
https://github.com/rbsec/sslscan/releases
Releases · rbsec/sslscan
sslscan tests SSL/TLS enabled services to discover supported cipher suites - rbsec/sslscan
github.com
링크에 접속
sslscan-2.2.0.zip을 클릭하여 다운로드한다.
한 번식 주기적으로 들어가 업데이트 가 된 버전을 사용하는 것도 나쁘지 않다.
압축을 풀면 이러한 파일들이 나열되어 있다.
3. 사용방법
먼저 cmd로 sslscan 이 있는 경로에 들어간다.
사용방법은 간단하다
=> sslscan.exe [hostname or IP]
실행하면 접속을 시도해 다음과 같은 결과를 알려준다.
4. 실행결과 분석
4-1.SSL/TLS 프로토콜 지원 여부
SSLv2 , SSLv3 disabled(비활성화) 되어 있고 TLSv1.0~1.3까지 enabled(활성화) 되어 있는 상태인걸 확인할 수 있다.
현재 관점에서는 TLS 1.2 이상 버전을 권장을 하고 있다. (TLS 1.0/1.1는 2021년 공식 폐기)
4-2.TLS Fallback SCSV 지원
중간자 공격(MITM)에 의한 downgrade(강제 버전 낮춤) 공격 방지 기능
=> 일부 서버나 클라이언트는 TLS 연결이 실패하면 낮은 버전(TLS 1.2 > 1.1 등)으로 자동 재시도를 한다.
=> 그걸 악용한 공격 [POODLE (Padding Oracle On Downgraded Legacy Encryption)] 이 있기에 방지함
4-3. TLS 재협상
안전한 방식의 재협상을 지원하고 있으며 취약한 재협상 방식은 사용되지 않고 있음
4-4. TLS 압축 비활성화
TLS 압축을 이용해 세션 쿠키나 인증 토큰 같은 민감한 데이터를 추측할 수 있는 공격인 [CRIME] 공격을 방지하기 위함
=> 공격자는 압축을 분석하여 원래의 평문 데이터를 간접적으로 추정할 수 있는 위험이 존재
4-5. Heartbleed 취약성
TLSv1.0 ~ TLSv1.3 모두 Heartbleed에 취약하지 않음
=> 이 취약점은 보통 오래된 OpenSSL에서 발생한다.
4-6. 서버가 지원하는 [암호화 스위트] => 암호화 알고리즘들의 조합을 정의한 집합
TLS 1.3에서는 보안성이 높은 암호만 사용되고 있으며 우선순위는 나온 순서대로 나열되어 있다.
=> 따라서 우선순위는 TLS_AES-128_GCM_SHA256이고 다음은 AES_256_GCM_SHA384이다
TLS 1.2 이하에서는 AES128-SHA , DES-CBC3-SHA 같이 오래된 암호도 있고
DES-CBC3-SHA와 같이 112비트 키로 권장되지 않은 암호도 있다.
4-7. 서버 키 교환 그룹
사용되는 곡성 : x25519, secp256 r1 (NIST P-256) , X25519 MLKEM768
모두 강력한 ECC 기반 키 교환을 사용하고 있음
ECC : 타원 곡선 암호 기반으로 생성된 공개키/개인키 쌍을 말하며 높은 보안을 유지하면서 키 길이를 짧게 유지할 수 있는 암호방식
4-8. SSL 인증서
ECDSA : 타원 곡선 기반 디지털 서명 알고리즘
SHA256 : 해시 함수로 ECDSA가 메시지를 서명하기 전 해시하는 데 사용
Valid : 유효기간 약 84일 남았음
5. 마치며
이렇게 sslscan에 대해서 알아봤다.
단순히 TLS/SSL 포트를 스캔하는 것을 넘어서 종합적인 정보를 한눈에 제공해 주는 매우 유용한 프로그램이다.
따라서 보안 점검 시 사전 정보 수집 단계에서 자주 쓰이며 빠르게 확인할 수 있어 효율적이다.