Ⅰ. POODLE (Padding Oracle On Downgraded Legacy Encryption) 공격 이란?
2014년에 구글의 보안 연구원들이 발견한 취약점으로, SSL 3.0 프로토콜의 패딩 오라클 공격을 통해 암호화된 데이터를 복호화하는 공격 기법입니다. SSL 3.0은 더 이상 사용되지 않는 구식 암호화 프로토콜이지만, 여전히 일부 시스템에서 호환성을 이유로 지원하고 있어 이 취약점에 노출될 수 있습니다.
Ⅱ. POODLE (Padding Oracle On Downgraded Legacy Encryption) 특징
ⅰ. 패딩 오라클 공격: POODLE 공격은 패딩 오라클 공격의 일종으로, 암호화된 데이터를 복호화하는 데 사용되는 특정 패딩 방식을 악용합니다.
ⅱ. SSL 3.0 취약점: SSL 3.0 프로토콜의 설계 결함을 이용합니다. SSL 3.0이 안전하지 않다는 점을 보여줍니다.
ⅲ. 다운그레이드 공격: POODLE 공격은 클라이언트와 서버 간의 통신에서 SSL/TLS 프로토콜을 SSL 3.0으로 다운그레이드하도록 유도하는 방식을 사용합니다.
ⅳ. 블록 암호: 주로 CBC (Cipher Block Chaining) 모드에서 작동하는 블록 암호에 영향을 미칩니다.
Ⅲ. POODLE (Padding Oracle On Downgraded Legacy Encryption) 공격 원리
ⅰ. 프로토콜 다운그레이드
1) 다운그레이드 유도: 공격자는 클라이언트와 서버 간의 통신을 가로채 최신 버전의 TLS가 아닌 SSL 3.0을 사용하도록 강제합니다. 이 과정은 주로 중간자 공격(man-in-the-middle, MITM)으로 이루어집니다.
2) 호환성 문제 유발: 공격자는 클라이언트와 서버가 최신 프로토콜을 사용하지 못하도록 연결을 반복적으로 실패하게 하여, 결국 SSL 3.0으로 연결되도록 합니다.
ⅱ. 패딩 오라클 공격
1) CBC 모드의 패딩 방식: SSL 3.0은 CBC(Cipher Block Chaining) 모드를 사용하며, 마지막 블록의 패딩이 올바르지 않으면 이를 탐지하는 기능이 있습니다. 이 점을 악용하여 공격자는 패딩 오류를 통해 데이터를 복호화할 수 있습니다.
2) 패딩 오류 탐지: SSL 3.0에서 패딩 오류가 발생하면 서버는 오류 메시지를 반환합니다. 공격자는 이 오류 메시지를 이용해 패딩이 올바른지 여부를 판단하고, 이를 통해 암호화된 데이터의 내용을 추측할 수 있습니다.
ⅲ. 암호문 블록 복호화
1) 블록 단위 공격: 공격자는 각 암호문 블록을 개별적으로 공격하여 평문 데이터를 복호화합니다. 이를 위해 여러 번의 요청을 보내고 서버의 응답을 분석합니다.
2) 평문 추출: CBC 모드의 특성상 이전 블록의 평문과 현재 블록의 암호문이 XOR 연산을 통해 결합되므로, 이전 블록의 평문을 알아내면 현재 블록의 암호문을 복호화할 수 있습니다.
ⅳ. 복호화 과정
1) 초기 설정: 공격자는 암호화된 메시지 C = C1 || C2 || ... || Cn을 확보합니다. 여기서 각 Ci는 암호문 블록입니다.
2) 패딩 오류 유발: 공격자는 마지막 블록 Cn의 패딩을 조작하여 패딩 오류를 유발합니다. 이를 통해 서버가 반환하는 패딩 오류 메시지를 관찰합니다.
3) 패딩 추측: 공격자는 Cn-1 블록의 값을 변경하면서 올바른 패딩이 나올 때까지 시도합니다. 올바른 패딩이 나오면 해당 블록의 패딩 값이 무엇인지 알 수 있습니다.
4) 반복적인 복호화: 이 과정을 반복하여 각 블록의 패딩을 추출하고, 이를 통해 평문 데이터를 복호화합니다. 공격자는 여러 번의 시도 끝에 전체 평문을 복구할 수 있습니다.
Ⅳ. POODLE (Padding Oracle On Downgraded Legacy Encryption) 공격 방법
ⅰ. 다운그레이드 유도: 공격자는 클라이언트와 서버 간의 통신을 가로채 SSL 3.0을 사용하도록 강제합니다. 이를 위해 프로토콜 협상을 방해하여 클라이언트와 서버가 최신 TLS 버전을 사용하지 못하게 합니다.
ⅱ. 패딩 오류 탐지: SSL 3.0에서 CBC 모드의 패딩 방식을 악용하여 패딩 오류 메시지를 분석합니다. 패딩이 올바르지 않으면 서버는 오류 메시지를 반환하므로, 이를 통해 암호문 블록의 내용을 추측할 수 있습니다.
ⅲ. 복호화: 반복적인 요청과 패딩 오류 분석을 통해 암호문 블록을 점진적으로 복호화합니다. 여러 번의 시도를 통해 평문 데이터를 복구할 수 있습니다.
Ⅴ. POODLE (Padding Oracle On Downgraded Legacy Encryption) 대응 방법
ⅰ. SSL 3.0 비활성화: 서버와 클라이언트 모두 SSL 3.0을 지원하지 않도록 설정합니다. 이를 통해 공격이 원천적으로 불가능하게 합니다.
ⅱ. 최신 프로토콜 사용: TLS 1.2 이상 버전을 사용하도록 강제합니다. 최신 버전의 프로토콜은 POODLE 공격에 대한 보호 기능을 포함하고 있습니다.
ⅲ. TLS_FALLBACK_SCSV 사용: 다운그레이드 공격을 방지하기 위해 TLS_FALLBACK_SCSV (TLS Signaling Cipher Suite Value)를 구현합니다. 이 기능은 프로토콜 다운그레이드 시도를 탐지하고 차단합니다.
ⅳ. 패딩 방식 변경: CBC 모드 대신 AEAD (Authenticated Encryption with Associated Data) 모드를 사용하는 것을 권장합니다. AEAD 모드는 패딩 오라클 공격에 대한 추가적인 보호를 제공합니다.
'네트워크' 카테고리의 다른 글
로드 밸런싱(Load Balancing)에 대해 알아보겠습니다. (0) | 2024.08.27 |
---|---|
스니핑(Sniffing)에 대해 알아보겠습니다. (0) | 2024.08.13 |
NetBIOS와 NetBEUI 에 대해 알아보겠습니다. (0) | 2024.07.31 |
TCP (Transmission Control Protocol) 플래그에 대해 알아보겠습니다. (0) | 2024.07.29 |
ARP 스푸핑(Spoofing) 에 대해 알아보겠습니다. (2) | 2024.07.24 |