더북(TheBook)

01 | 데이터 암호화

오라클 데이터베이스에서 보안 관련 사항을 크게 두 가지로 구분하면, 하나는 데이터베이스 사용자와 관련된 사항이고 다른 하나는 데이터 자체에 대한 보안이다. 데이터베이스 사용자와 관련된 보안사항은 사용자 계정, 비밀번호 관리와 인증방식, 권한 privilege과 롤role 등이 있는데 이들은 DBA가 처리할 범주에 속하며 데이터 보안에 관련된 사항은 개발자가 처리해야 할 일에 속한다고 할 수 있다. 이 장에서는 바로 데이터 보안과 관련되어 데이터를 안전하게 관리할 수 있는 방법 중 하나인 데이터 암호화에 대해 살펴볼 것이다.

어느 경로를 통해서든 자신의 개인정보가 누출되지 않은 사람이 없을 정도로 우리나라는 개인정보 누출 문제가 꽤 심각한 편이다. 이로 인해 관련법 개정도 이루어져 주민번호 같은 민감한 개인정보에 대한 관리를 더욱 엄격히 해야 할 필요가 생겼는데, 데이터베이스 자체에서 중요 데이터에 대한 보안을 강화하는 한 가지 방법이 바로 데이터 암호화다.

데이터 암호화란 민감하고 중요한 데이터를 암호화해서 테이블에 저장하고 이를 조회할 때 다시 복호화를 하는 일련의 과정을 말한다. 암호화된 데이터는 복호화 과정이 없다면 의미 없는 데이터일 뿐이다. 따라서 설사 테이블에 있는 데이터가 통째로 유출되었다 하더라도 암호화 덕분에 1차적인 안전망은 확보되었다고 할 수 있다. 여기서 굳이 1차적이라고 표현한 이유는 암호화했다고 해서 무작정 마음 놓고 있을 수는 없기 때문이다. 데이터 암호화와 관련해 오라클에서는 다음과 같이 얘기한다.

데이터를 암호화할 만한 좋은 이유가 많긴 하지만, 데이터를 암호화하지 말아야 할 이유도 많다. 암호화는 모든 보안 문제를 해결해 주지 않으며, 일부는 문제를 더 악화시킬 수 있다.

따라서 데이터 암호화는 여러 보안 단계 중 한 과정이라고 보는 것이 타당하겠지만 데이터가 저장되는 단계에서 암호화한다면 그만큼 보안 수준이 높아진 것이라 볼 수 있다. 그럼 지금부터 데이터를 암호화하고 복호화하는 방법에 대해 알아 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.