[기고] Oracle TDE 보안문제 제기에 대한 오라클 입장
오라클은 최근 타사에서 ‘Oracle TDE 신뢰성’에 관해 제기한 다음의 네 가지 측면의 기술적 사실관계에 대해 보다 정확한 정보를 전달하고자 한다. 이를 위해 타사가 언급한 부분을 발췌하고 이에 대한 기술적 사실관계를 기술했다.
1. 키 관리 방식의 안전성에 대한 주장
2. 암호화 데이터의 권한 통제에 대한 주장
3. 테이블스페이스 암호화 방식의 안전성에 관한 주장
4. 암호화 알고리즘의 안전성에 관한 주장
1. 키 관리 방식의 안전성에 대한 타사의 주장 및 사실관계
TDE를 사용하는 대부분의 DBA들은 DB가 Restart 했을 때 wallet 파일이 open되지 않아서 서비스가 불가능한 상태에 빠지지 않도록 wallet 파일 open이 자동으로 실행되도록 script를 만들어 놓기 때문에 DBMS를 full backup 받던가 또는 TDE 관련한 파일들을 OS 명령을 이용하여 백업해서 가지고 간 경우 이 script에 의해 wallet 파일이 자동 open되는 문제점이 있을 수 있다.
Wallet open을 위한 라인에 패스워드(‘oracle’)가 노출되어 있다. Manual로 Interactive하게 wallet을 open 할 때도, 화면에 패스워드가 노출된다.
|
오라클은 wallet을 open하기 위하여 script를 사용하는 것은 보안상 위배되는 것이므로 사용을 권고하지 않는다. 즉, 위의 제기 내용은 일부 사용자의 잘못된 이용 방식이 마치 오라클 제품의 결함처럼 제시하고 있다. 오라클이 권고하는 방식은 보안적으로 안전한 Oracle Wallet Manager를 이용하는 것이다. Oracle Wallet Manager는 Wallet을 생성하거나 Open하기 위하여 패스워드를 입력하는 경우 항상 자동으로 Masking 처리하여 화면에 패스워드가 노출되지 않도록 보호한다.
![]() |
▲Oracle Wallet Manager를 통한 키 관리 → 비밀번호 입력 시 항상 Masking 처리됨
|
2. 암호화 데이터의 권한 통제에 대한 타사의 주장 및 사실관계
Oracle 11g의 TDE 역시 암·복호키의 사용에 대한 별도의 권한통제 기능이 없어 GRANT된 사용자 또는 DBA는 복호화된 정보를 볼 수 있었다. 결국, DB가 가동되는 동안의 보안성은 암호화 이전과 같다.
|
오라클은 암호화된 데이터를 접근하는 사용자 환경에 따라 암호화된 데이터에 대한 접근 여부를 선택할 수 있는 기능을 제공한다. 암호화된 값의 Display시 Null Masking 기능을 제공하며, 입력 및 수정 권한을 부여/회수할 수 있다. 또한 Database Vault와 연계함으로써 보다 강력하고 포괄적인 수준의 접근 권한 통제를 구현한다. 따라서 별도의 권한통제 기능이 없다는 주장은 사실과 다르다.
![]() |
▲ Null Masking 기능을 통하여 암호화 값의 조회 권한 통제
|
![]() |
▲ Database Vault를 통한 DBA 권한 통제
|
3. 테이블스페이스 암호화 방식의 안전성에 관한 타사의 주장 및 사실관계
투명한 암호화를 지향하는 TDE류의 제품 특성상 Disk에 저장된 테이블을 서비스하기 위해서는 모두 테이블 혹은 테이블스페이스 전체를 복호화하여 메모리에 로딩하게 되는데, 메모리를 덤프하면 복호화된 평문 테이블을 유출할 수 있는 위험이 있다.
|
이 주장 또한 암호화와 접근 통제의 역할을 정확하게 반영하고 있는 내용이다. 타사의 주장대로라면 내부자이건 해커이건 메모리 정보(SGA의 키 값 및 크기)를 알아내기 위하여 DBMS시스템에 접속한 상태이므로 이미 접근통제 시스템이 무력화되었음을 의미한다. 또한 Object 정보와 데이터의 내용을 추정할 수 있는 정보를 이미 알고 있어야 한다. 이러한 상태라면 굳이 Memory를 dump하여 개인정보를 유출할 이유가 없다. 따라서 앞서 제기한 시나리오는 현실성이 부족하다.
Oracle TDE의 테이블스페이스 암호화 방식이 이러한 메커니즘을 가지는 이유는 범위 검색 SQL 수행 시 index를 사용하여 성능을 극대화 하고 응용프로그램의 수정이 없도록 하기 위함이다.
이를 구현하기 위해 OPE(Order Preserving Encryption) 알고리즘을 사용하여 데이터 값의 대소 관계를 유지하면서 인덱스를 관리하는 기법이 있는데 이는 데이터 파일 유출 시 암호화된 내용의 역추적이 가능하다고 알려져 있다. 따라서 Oracle TDE는 OPE 알고리즘을 채택하지 않고 Oracle Kernel과 연동하여 IO시 복호화하여 성능을 극대화 하는 방법을 사용하는 것이다.
4. 암호화 알고리즘의 안전성에 관한 타사의 주장 및 사실관계
AES(128/192/256), TDES(192) 만 지원, SHA-256/384/512는 지원하지 않으며, 테이블스페이스 단위로 암호화하므로 패스워드도 복호화 가능한 AES/TDES로 암호화 됨.
|
Oracle Database 사용고객은 Oracle DBMS가 제공하는 기능을 이용하여 다양한 단방향(SHA-256/384/512) 암호화 알고리즘으로 어플리케이션의 모든 정보(계정, 패스워드 등)를 보호할 수 있다.
오라클은 사용자 패스워드와 같이 단방향 암호화가 필요한 데이터는 이를 사용하도록 반드시 권고하고 있으며 이미 많은 고객이 패스워드의 단방향 암호화를 구현하여 사용하고 있다. 그러나 이러한 사실이 잘못 해석되어 오라클의 안전한 암호화 체계가 패스워드 암호화 등에 취약한 것처럼 사실을 왜곡하고 있다.
결론적으로 Oracle TDE는 가장 안전한 수준으로 암호화 키와 암호화 데이터를 보호하고 있으며 오라클은 암호화된 기밀데이터를 선제적으로 보호하기 위한 강력한 접근통제 기술을 포괄적으로 제공하고 있다. 데이터베이스의 암호화 구현을 준비하는 독자들에게 가장 안전하면서도 성능을 보장할 수 있는 최적의 암호화 방법을 선택하는데 이 글이 도움이 되기를 바란다
--[댓글]--
댓글
댓글 쓰기