네트워크

POODLE (Padding Oracle On Downgraded Legacy Encryption) 공격에 대해 알아보겠습니다.

forward error correction Circle 2024. 8. 1. 08:05
반응형

Ⅰ. 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 모드는 패딩 오라클 공격에 대한 추가적인 보호를 제공합니다.

반응형