파일 암호화의 모든 것
“파일 암호화를 하면 안전합니까?” 질문에 답할 일이 있어서 시중에 나도는 파일 암호화 관련 내용을 죽 훑어보던 중에, 일단 관련 용어 수에서부터 질려버렸다. 파일 암호화, 파일/폴더 암호화, 파일 레벨 암호화, 파일 (띄우고) 시스템 레벨 암호화, (붙여서) 파일시스템 레벨 암호화, 볼륨 암호화, 파티션 암호화, 스토리지 암호화, 하드웨어 베이스드 암호화, 풀 디스크 암호화, 홀 디스크 암호화, 디스크 암호화 등등등. 비슷비슷한 용어들의 대잔치다. 이건 일단, 너무 많다!
그런데 한 걸음 더 들어가 보니 개념이 서로 막 뒤섞여 있어 대부분이 동음이의어와 이음동의어의 혼돈상태다. 용어 정의에서부터 매우 혼란스러운 상황이다.
암호화 관련 제품 시장 상황도 마찬가지라 모두들 각자 자기만의 용어를 따로 쓰는 듯싶다. 이래서는 곤란하다. 학문적 차원에서뿐만 아니라, 소비자 입장에서 제대로 된 현명한 판단을 할 수 없는 상황. 이는 어쩌면 상도덕 문제일 수도 있겠다 싶어 아찔했다.
이에 ‘파일 암호화’에 대해 알아보자.
파일 그리고 디스크는 누구에게나 친숙한 단어다. 그러니 파일이나 디스크를 암호화한다고 말하면 왠지 무슨 말인지 이해하기 쉽게 느껴진다. 하지만 파일 암호화, 그리 간단한 기술은 아니다.
우선 파일 관리란, 간단히 말해 파일에 이름을 붙이고 저장과 검색을 위해 어디에 위치하게 할 것인지를 결정하고 조작하는 체계다. 파일에 대한 조작은 물리적 저장장치와 운영체제 커널, 그리고 응용 프로그램 등 크게 3개 영역에서 각각 다른 방식으로 일어난다. 따라서 파일 암호화 또한 위 세 영역에서 각 영역의 행태에 따라 다른 과정을 거치게 된다.
좀 혼란스러우니 아래 그림으로 정리해 보았다.
그림에서 보듯이, 암호화가 적용되는 레벨에 따라서 아래로부터 ‘풀 디스크 암호화’, ‘파티션 암호화’, ‘볼륨 암호화’, ‘(파일시스템 레벨) 파일 암호화’, ‘(애플리케이션 레벨) 파일 암호화’ 등으로 나눌 수 있다. 모두 서로 방식도 다르고 적용 범위도 다르고 효과도 다르다. 그럼에도 불구하고 이를 모두 ‘파일 암호화’로 뭉뚱그려 말하는 것이 혼란의 원인 아닌가 싶다.
하나하나 살펴보자.
우선 물리적 저장장치, 주로 하드디스크를 통째로 암호화하는 하드웨어 기반 디스크 암호화는 일단 논외로 하자. 이는 하드디스크 실물을 도난 당한 경우 말고는 기술적으로 따질 의미가 크지 않다. 시중 용어 중 ‘하드웨어 베이스드’, ‘풀 디스크’, ‘홀 디스크’, ‘디스크’ 등이 붙는 암호화 용어가 여기에 해당한다. 통칭해 ‘풀 디스크 암호화’라고 하면 가장 적절한 용어인 듯하다.
운영체제 커널이 관장하는 디스크와 파일 관리 시스템은 디스크 입출력을 수행하는 드라이브, 드라이브 상위의 가상 레이어인 파티션과 볼륨, 그리고 최상위에 존재하는 파일시스템으로 구성된다. 이에 따라 각 영역에 대해 암호화를 적용하면, 운영체제 레벨에서의 파일 암호화는 ‘파티션 암호화’, ‘볼륨 암호화, ‘(파일시스템 레벨) 파일 암호화’로 분류할 수 있다.
이때 ‘(파일시스템 레벨)’이라고 따로 괄호를 붙이는 까닭은, 운영체제 상위 애플리케이션에서도 파일과 폴더 관련 작업이 진행되므로 해당 영역의 암호화를 가리켜 ‘(애플리케이션 레벨) 파일 암호화’라고 따로 말하는 것이 적절해 보이기 때문이다.
‘(파일시스템 레벨) 파일 암호화’와 ‘(애플리케이션 레벨) 파일 암호화’에는 결정적 차이가 있다. 하지만 이에 대해서는 보다 긴 설명이 필요하니 다음 기회에 이 지면을 통해 따로 서술할 계획이다. ‘파일 암호화’ 관련 내용과 각 항목의 장단점은 아래와 같은 표로 정리할 수 있다.
우선 암호화의 목적인 보안성 측면에서 위 방식들을 살펴보자.
보안성이 얼마나 높은지 그리고 보안에 필요한 부가기능은 얼마나 제공하는지만 따진다면 애플리케이션 레벨이나 파일시스템 레벨을 불문하고 ‘파일 암호화’가 가장 좋은 선택이다. 애플리케이션 레벨에서 암호화를 적용하므로 파일 그리고 폴더 단위로 세부적인 키 관리 및 접근제어가 가능하다. 권한관리, 로그관리, 백업 등 여러 부가기능과 편의기능, 그리고 가장 진일보한 인터페이스 환경을 제공한다.
‘파티션 암호화’와 ‘볼륨 암호화’ 또한 보안성이 꽤 높은 편이긴 하나 ‘파일 암호화’에 비해서는 낮다. 기능성과 편의성도 좋은 편이지만 애초에 파일이나 폴더가 아닌 볼륨과 파티션을 대상으로 암호화를 적용하기 때문에 적용 범위가 좁아서 불편함이 따른다.
‘풀 디스크 암호화’는 앞서 말했듯 정보보안보다는 장치보안 성격이라 논외로 하겠다. 보안성이 낮고 보안 관련 각종 부가기능이 적지만, 이후 설명할 관리가 간편하다는 점은 장점으로 볼 수 있다.
그리고, 보안성이 아무리 높다더라도 사용하기 불편한 도구는 좋은 도구라 할 수 없다. 따라서 각 방식의 관리 편의성을 알아보자.
‘파일 암호화’는 여타 암호화 방식에 비해 상대적으로 관리 부담이 큰 편이다. 각개 파일이나 폴더 별로 세세한 관리가 필요하므로 복잡하고 어렵다. 관리비용 또한 비교적 많이 드는 편이라 사전에 미리 예측하고 계산해 둘 필요가 있다. 따라서 파일 암호화 제품을 선택할 때는 얼마나 직관적인 유저 인터페이스를 제공하는지에 집중해 비교해야 한다. 잘 만든 인터페이스는 관리 난이도를 급격히 낮출 뿐 아니라 관리비용 절감효과도 크게 기대할 수 있다.
‘볼륨 암호화’와 ‘파티션 암호화’는 파일 암호화에 비해 비교적 관리가 용이한 편이다. 하지만 그 편의성만큼 보안성이 희생된다는 태생적 길항관계가 존재한다는 점을 잊지 말자. 안전하면 불편하고, 간편하면 안전성이 떨어진다. 따라서 앞서 말한 사용자 인터페이스 등 선택에 결정적 영향을 미치는 요소들을 잘 살펴보고 선택해야 한다.
결론적으로 어떤 암호화 방식을 선택하는 것이 최선인지에 대해 생각해 보자.
조건적으로 높은 보안성이 요구되는 곳에서는 ‘파일 암호화’를 선택하는 것이 마땅할 것이다. 이 경우 다소 떨어지는 편의성 벌충을 위해 이런저런 기능과 조건을 유심히 살펴본다. 특히 사용자 인터페이스의 적절성이 가장 중요한 변수다.
관리 편의성을 무시할 수 없는 상황이라면 ‘볼륨 암호화’ 또는 ‘파티션 암호화’를 선택할 수 있다. 이 경우,위 파일 암호화의 경우와는 반대로 상대적으로 낮은 보안성을 보강하는 방법론을 살펴볼 필요가 있다. 제품 제조사가 제공하는 여타 제품들과의 소위 ‘궁합’ 등을 검토할 필요도 있다. 그리고 접근제어 기능이 세심하고 강력하게 제공되는지 여부와 키 관리 기능 등을 유심히 살펴야 한다.
지금까지 통칭해 ‘파일 암호화’라 불리는 여러 암호화 방식에 대해 알아보았다.
용어와 개념 혼란은 제품 제조사와 소비자가 연결된 하나의 장, 즉 시장 문화에 있어 결코 좋은 일이 아니다. 그 혼란의 틈에서 올바르지 않은 상도덕이 발생한다. 제조사는 각 제품의 성질에 대해 정확히 말하고 소비자는 이를 제대로 인지해 각 상황에 적합한 제품을 선택하는 것이야말로, 세상의 그 어떤 일보다 중요하다고 믿어 의심치 않는 정보보안의 첫 단추가 아닌가 해서 이렇듯 짧지 않은 글을 쓰게 되었다.