"간편하려고 암호화하는 건 아니잖아요?"

"파일과 디스크를 통째로 암호화해버리니까 정말 간편합니다!" 정말 매력적인 호소 아닌가? 간편하다는 건 무조건 좋은 일이니까. 하지만 그냥 대충 넘어가지 말고 이렇게 다시 되물어야 한다. "간편하기 위해 암호화하는 건 아니잖아요?" 그렇다. 암호화는 보안성을 높이기 위해서 하는 것이다.

2016-03-18     박지훈

파일 암호화 VS 데이터 암호화

물론 그런 '암호'와 암호화가 아주 무관한 건 아니다. 현대 암호화 또한 치환과 이동 등 고전적 암호이론에 기반해 구축된 체계니까. 하지만 학교가 아닌 실무 현장에서는 그런 교양상식은 전혀(!) 중요하지 않다. '암호화'는 고전적 암호 이론보다는 안전한 IT 시스템의 '설계' 및 '구축'을 위한 기술인데, 그런 사실에 관심을 보이는 고객은 매우 적다. 세일즈의 곤란함을 호소하기에 앞서, 정보보안의 근본 중 근본인 암호화에 대한 오해는 정말 심각한 문제 아닌가? 그러니 아래와 같은 애매한 질문도 아주 자주 듣는다.

물론 그런 조치가 필요한 때도 있다. 세상의 어떤 존재든 쓸모가 아주 없지는 않으니. 하지만 대부분의 경우 '디스크 암호화'는 정보보안적으로 적절한 조치가 아니고, '파일 암호화'가 아니라 '데이터 암호화'가 훨씬 더 중요한 개념이다. 이해를 위해 우선 '파일 암호화'란 무엇인지부터 알아보자.

파일 암호화란?

우리는 파일 단위로 묶고 이름을 붙여 열람과 검색을 위해 어디에 저장할지 등을 결정함으로써 정보를 관리한다. 그러면 컴퓨터 내부에서는 1)물리적 저장장치, 2)운영체제 커널, 3)어플리케이션 등 3개 영역에서 각각 다른 방식을 통해 파일을 처리한다. 따라서 우리가 흔히 말하는 '파일 암호화' 또한 그 3개 영역에서 각각 다른 방식으로 이루어진다. 이에 대한 보다 상세한 설명은 따로 책 한 권 분량 정도가 필요하기 때문에 지금은 간단히 개요만 살펴보자.

아주 단순히 말해서, 2)운영체제 커널 영역에서 3)어플리케이션 영역으로 갈수록 관리 부담이 커지는 대신 보안성이 높아진다. 이는 여타 모든 정보보안 기술 전체에 걸쳐 고루 적용되는 일종의 원리다. 보안성을 높이면 아무래도 사용이 불편해진다. 다시 말해, 간편함을 추구하면 보안성이 낮아질 수밖에 없다. 그럼에도 간편함은 너무나 강력한 매력이라서 '파일 암호화'와 '디스크 암호화' 제품을 판매하는 사람들들은 흔히들 이리 말한다.

정말 매력적인 호소 아닌가? 간편하다는 건 무조건 좋은 일이니까. 하지만 그냥 대충 넘어가지 말고 이렇게 다시 되물어야 한다.

그렇다. 암호화는 보안성을 높이기 위해서 하는 것이다.

실제 업무현장에서의, 파일 암호화의 위험성

- 파일은 데이터를 담는 통이다.

실제로는 보다 복잡한 차이가 있지만 일단, 간단히 말해 '파일 암호화'란 데이터가 든 통을 통째로 암호화해버리는 것이고, '데이터 암호화'란 통 안에든 데이터 중에서 꼭 감춰야 할 위험한 데이터만 따로 골라 암호화하는 것이다 두 방식은 각각의 장단점이 있지만, 위 "관리 부담이 커지는 대신 보안성이 높아진다"는 원리는 그대로 적용된다. 파일 암호화는 관리가 간편하다. 하지만 보안성은 낮다. 왜?

1. 사용자 실수 또는 고의로 암호화 하지 않는 경우 : 사용자의 실수로 암호화하지 않는 상황이 빈번히 발생한다. 암호화해야 한다는 걸 잊거나 그냥 암호화 절차가 번거롭고 귀찮아서 그냥 평문 상태로 저장해버리는 경우가 많다. 보안사고의 대부분은 사용자 실수 때문이라는 사실을 잊지 말자. 사용자 실수를 미연에 방지하고 감시하는 장치가 필요하다.

2. 파일의 전체 내용이 평문 상태로 메모리에 존재 : 파일 통째로 암호화되어 있다면 파일에 든 정보 내용을 읽을 때 불가피하게 파일 전체를 복호화할 수밖에 없다. 그러면 암호화되지 않은 전체 평문이 메모리에 존재하게 되어서, 메모리 덤프 등의 수법을 통한 데이터 유출 위험이 있다. 평문 노출은 무조건 최소한도로 줄이는 게 좋다.

3. 키 관리 및 접근제어, 보안감사 등 추가 도구 필요 : 암호화란 암호화 단독으로는 쓸데없는 기술이다. 암호화 및 복호화 작업을 위한 키 관리 및 접근제어, 보안감사 등 다른 보안도구들이 함께 동작해야 한다. 하지만 이것저것 다 붙이고 나면 '파일 암호화'의 가장 큰 장점인 단순성으로부터 멀어진다. 간편함을 강조하지만 결국 똑같이 복잡해지는 것이다. 게다가 그렇게 성질이 서로 다른 도구들을 하나의 시스템 안에 통합하는 기술적 위험도 있다. 사실 암호화란 그 자체로는 어려운 기술이 아니다. 앞서 말했듯 안전한 IT 시스템의 '설계' 및 '구축'을 위한 기술이라서 어려운 것이다.

파일 전체를 하루 종일 평문 상태로 노출하는 암호화?

반대로, 중요한 데이터만 따로 암호화한 경우에는 어떨까? '데이터 암호화'는 중요 데이터를 따로 암호화해서 해당 정보가 필요할 때에만 복호화해 처리하고 다시 암호화한다. 노출하더라도 특별히 위험하지 않은 일반 정보만 열어서 작업하다가 특정 암호화 데이터가 꼭 필요한 순간에 일정한 절차를 거쳐 복호화해서 일을 마치고 다시 암호화한다. 위 '파일 암호화'에 비하면 위험성 노출 시간부터 현저히 짧다. 그리고 암호화 외 따로 필요한 키 관리 및 접근제어, 보안감사 등의 도구들도 모두 한 제품으로 통합되어 제공되므로 이종기술 결합에 따른 불안정성도 매우 적다.

"파일과 폴더를 통째로 암호화해버리니까 정말 간편합니다!"

"간편하려고 암호화하는 건 아니잖아요?"