TLS 1.2 다운그레이드를 할 수 있는 SLOTH공격 (CVE-2015-7575) > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

Secure TLS 1.2 다운그레이드를 할 수 있는 SLOTH공격 (CVE-2015-7575)

페이지 정보

댓글 0건 조회 1,736회 작성일 17-05-12 13:59

본문

공격자가 강제적으로 해쉬 알고리즘을 다운그레이드 할 수 있으며, TLS, IKE, SSH프로토콜의 충돌을 일으킬 수 있는 SLOTH 공격이 발견되었습니다. 


SLOTH 공격이란?

Security Losses from Obsolete and Truncated Transcript Hashes의 약자로 인터넷 프로토콜상에서의 불완전하고 취약한 서명 해쉬가 문제가 되어 발생하는 보안손실을 말합니다. 예를 들어 MD5 서명은 2005년부터 암호학적으로는 파손된 것으로 알려져 있으나, 이는 표준 데스크탑 워크스테이션에 충돌공격이 실제로도 가능한 지금까지도 TLS에 사용되고 있습니다. TLS 1.2 클라이언트나 서버가 RSA-MD5 서명을 지원하는 경우 클라이언트 인증이 파손되고 추가적으로 공격자에 의해 서버인증도 파괴될 수 있습니다.

이 공격은 TLS 1.2 프로토콜에 존재하는 보안 취약점을 이용하는 공격입니다. 지금까지 SSL/TLS 프로토콜에서는 몇번의 취약점이 발견되었으며, 이 취약점들을 이용하면 공격자가 클라이언트/서버가 사용하는 SSL/TLS 프로토콜의 버전 및 암호화 스위트를 다운그레이드 시킬 수 있었습니다. POODLE, FREAK, Logjam 등은 모두 이런 방법을 사용한 공격들 이였습니다. 하지만 이번에 발견된 SLOTH공격은 강제로 클라이언트/서버에게 취약한 해쉬 알고리즘을 사용하도록 할 수 있으며, 이를 통해 공격자가 공격에 성공하도록 돕습니다.


TLS1.2 시그니처 해쉬 알고리즘 다운그레이드

클라이언트 사이드: 클라이언트 사이드에서 발생하는 공격으로 클라이언트로 하여금 서버에서 사용하는 약한 해쉬 알고리즘을 사용하도록 하는 공격입니다. TLS 1.2 프로토콜 중 ServerKeyExchange 메시지의 SignatureAndHashAlgorithm 필드를 통하여 다운그레이드 시키는 공격입니다. 

서버사이드 : 서버사이드에서 발생하는 공격으로 서버로 하여금 클라이언트에서 사용하는 약한 해쉬 알고리즘을 사용하도록 하는 공격입니다. SLOTH공격 중  TLS 프로토콜의 ClientCertificateVerify 메시지를 통하여 다운그레이드 시키는 공격입니다. 


클라이언트 사이드 TLS 1.2 MD5 다운그레이드

TLS1.2 이전 버전에서는 클라이언트사이드와 서버사이드에터 시그니처와 해쉬 알고리즘을 선택할 수 있는 옵션이 존재하지 않았으며, 일반적으로 MD5 및 SHA1을 사용하였습니다. 

하지만 TLS 1.2에서 ServerKeyExchange 메시지 중 SignatureAndHashAlgorithm 필드를 만들어, 서버가 클라이언트에게 사용할 시그니처와 해쉬 알고리즘을 지정해 줄 수 있도록 하였습니다. 이는 즉 공격자가 강제적으로 클라이언트에게 약한 해쉬 알고리즘을 사용하도록 할 수 있다는 것입니다. 

과정은 아래와 같습니다. 

핸드쉐이크 과정에서 클라이언트는 Client Hello 패킷을 서버에게 전송합니다. 이 패킷 안에는 서버에서 사용할 수 있는 시그니쳐와 암호화 알고리즘이 정의되어 있는데, 공격자는 이 패킷을 중간에서 가로채고, 클라이언트에게 약한 알고리즘으로 수정하라는 내용이 담긴 패킷을 전송하여 클라이언트에게 암호화 알고리즘을 다운그레이드 하라고 요청합니다. 이후 공격자는 공격목표인 서버에게 공격을 시작합니다.

아래는 Client Hello 패킷으로, 시그니처 알고리즘에는 RSA-MD5 알고리즘이 포함되어 있지 않습니다. 

2202CF4256BD737C117DC2
<출처 : http://blog.trendmicro.com/trendlabs-security-intelligence/sloth-downgrades-tls-1-2-encrypted-channels >


클라이언트와 서버 중간에서 공격자는 Server Hello, Certificate, Server Key Exchange 패킷으로 클라이언트 요청에 응답합니다. Server Key Exchange 중, 공격자는 RSA-MD5 알고리즘을 사용하라고 클라이언트에게 요청합니다. 

2656184156BD739005FA90
<출처 : http://blog.trendmicro.com/trendlabs-security-intelligence/sloth-downgrades-tls-1-2-encrypted-channels >


클라이언트는 “서버측” 응답을 받고, 약한 해쉬 알고리즘을 사용하게 됩니다. 이 후 클라이언트는 Client Key Exchange 응답을 통하여 핸드쉐이크가 성공적으로 마무리 되었음을 나타냅니다. 

237CA94056BD73BC2BEBD1
<출처 : http://blog.trendmicro.com/trendlabs-security-intelligence/sloth-downgrades-tls-1-2-encrypted-channels >

TLS 다운그레이드 후, 공격자는 서버를 사칭할 수도 있으며, 암호화된 트래픽을 엿볼 수도 있습니다. 


서버사이드 TLS 1.2 MD5 다운그레이드

SLOTH공격은 반대로도 가능합니다. 공격자는 클라이언트를 가장하여 서버에게 약한 시그니처와 암호화 알고리즘을 사용하도록 할 수 있습니다. 
핸드쉐이크 과정에서 클라이언트는 서버에게 Client Hello 패킷을 전송하는데, 이때 공격자는 해당 패킷을 탈취하며, Client Hello 패킷 중 알고리즘 내용을 RSA-MD5 알고리즘 만을 지원하도록 수정한 후 전송합니다.

이 중간자 공격에서 signature_algorithms 필드에 다른 값도 추가할 수 있지만, 만약 서버가 해당 알고리즘을 지원하지 않는다면 서버에서 해당 패킷을 드랍 시킬 수도 있습니다. 이 후 공격자는 클라이언트로 위장할 수 있으며, TLS 다운그레이드에 성공하면 TLS 레벨의 클라이언트 신분인증이 가능하게 됩니다. 

SLOTH 공격의 경우, 특히 IE 8이상의 구버전 브라우저를 지원하기 위해 TLS1.1~TLS1.2를 적용한 웹사이트에 치명적일 가능성이 높습니다.


영향받는 소프트웨어

* Red Hat Enterprise Linux 6/7, Debian Wheezy, Android 4.4.2/5.0.0, Akamai GHost server
* NSS Client 3.20 이전 모든버전(sercer 제외), FireFox 42 이전 모든버전
* Oracle Java client and Server 8u66 이전 모든 버전 (7u79 포함)
* GnuTLS 클라이언트 및 서버 3.3.14 이전 모든 버전
* BouncyCastle Java client 1.53 이전 모든 버전
* Polar SSL/mbedTLS 2.2.0 이전 모든 버전
* 이밖에 RSA-MD5, ECDSA-MD5를 지원하고 MD5를 기반으로 하는 모든 TLS 클라이언트 및 서버


패치방법

* RHEL 6, 7의 OpenSSL, NSS, GnuTLS 패키지 업데이트
* NSS ver 3.21 / Firefox 43 업그레이드
* GnuTLS 3.3.15로 업그레이드 
* Java ver 1.54  및 C# ver 1.8.1 업그레이드 
* mbedTLS 2.2.1, 2.1.4, 1.3.16으로 업그레이드
* TLS, SSH, VPN과 관련된 모든 설정들을 확인하여 MD5 지원을 해제


참고 : 
http://www.mitls.org/pages/attacks/SLOTH
http://blog.trendmicro.com/trendlabs-security-intelligence/sloth-downgrades-tls-1-2-encrypted-channels/
https://en.wikipedia.org/wiki/Template:TLS/SSL_support_history_of_web_browsers


출처
http://blog.alyac.co.kr/535 

댓글목록

등록된 댓글이 없습니다.


Total 2,213건 1 페이지
기술자료 목록
번호 제목
공지 일반
온라인 강좌를 소개합니다. ( update. 2017-12-05 16:33 ) Hit.15888
2212 호스팅
[Daum] 스마트워크 발송자 이름 변경하기 ( update. 2018-05-17 10:41 ) Hit.26
2211 JavaScript
2210 도메인
국제도메인 삭제복구서비스 ( update. 2018-05-10 14:05 ) Hit.67
2209 MSSQL
getdate() 와 sysdatetime() ( write. 2018-05-09 ) Hit.56
2208 그누보드
[G5] 글 가장 위로 순서 변경하기 ( update. 2018-05-08 12:40 ) Hit.76
2207 호스팅
네임서버 정보 ( update. 2018-05-09 13:45 ) Hit.100
2206 영카트
2205 영카트
2204 Search
2203 그누보드
2202 그누보드
2201 영카트
2200 영카트
2199 영카트
영카트 5.3 에서 삭제된 영카트 4.x 필드 ( update. 2018-04-02 14:02 ) Hit.339
2198 그누보드
2197 영카트
2196 HTML
웹브라우저 언어설정 코드 ( write. 2018-03-28 ) Hit.368
2195 ClassicASP
2194 그누보드
2193 HTML
2192 전자결제
[LG유플러스] [ASP] utf-8 사용하기 ( update. 2018-03-16 06:06 ) Hit.492
2191 ClassicASP
한글 깨짐 변환 ( update. 2018-03-16 04:56 ) Hit.470
2190 JavaScript
새로고침(F5) 금지 ( write. 2018-03-15 ) Hit.492
2189 그누보드
[G4] 스팸게시글 한방에 삭제하기 ( update. 2018-03-23 15:54 ) Hit.513
게시물 검색

회원로그인

접속자집계

오늘
1,125
어제
1,409
최대
3,174
전체
3,989,348

회사명: 해피정닷컴   전화: 070-7600-3500   팩스: 02-865-3528
주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
사업자번호: 119-05-36414   대표: 정창용   개인정보보호책임자: 정창용
Copyright 2001-2018 해피정닷컴. All Rights Reserved.