여기서 우리가 절대로 간과해서는 안될 사항이 바로 ‘암호학’이다. (참고 : 암호학의 현재와 미래)
데이터를 암호화를 하지 않는다는것은, 기밀 데이터를 아무런 보호대책없이 모든 사람들이 볼수 있는 공유폴더에 올려놓는 것과 같다고 볼 수 있다. 왜? 암호화되지 않은 데이터는 누구나 볼 수 있기 때문이다. 혹자는 너무 비약이 심하다고 할수도 있겠다. 하지만 결코 비약이 아니다.
우리가 어떤 데이터를 PC에 저장하고 있든, 다른 원격지의 대상에게 전송하든간에, 해당 데이터는 악의적인 사용자에게 언제든지 탈취 당할 수 있다. 데이터를 전송하기 위한 다양한 방법이 있지만, 악의적인 해커 역시 다양한 기술을 사용하여 데이터를 탈취 할 수 있다.
이번 포스팅에서는 암호학의 중요성을 강조하기 위해 우리가 실제 사례들 예로 들면서, 1) 악의적인 공격자가 어떻게 우리의 데이터에 접근할 수 있는지 2) 그들을 대비하기 위해, 데이터에 수행되어야 하는 조치는 무엇인 있는지 에 대해 정리해 보도록 한다.
우리가 가지고 있는 정보들의 형태는 아래와 같이 5가지 종류로 분류될 수 있다.
- USB 디바이스
- 하드 드라이브 (PC / 데스크탑)
- 클라우드에 동기화된 파일 (Dropbox / SpiderOak)
- 클라우드에 저장되는 데이터베이스 서버
- 모바일 폰
1. 온라인 및 오프라인에서의 데이터 저장 위험
1) USB 디바이스
주말에 잔업을 처리하기 위해서, 회사에서 사용하는 정보를 USB에 넣어 집으로 가던 중 USB를 분실하게 될 수도 있다. 이때 USB가 암호화 되어 있지 않은 경우, 악의적인 사용자가 해당 데이터를 악의적인 용도로 사용 할수도 있다. 이를 대비하기 위해 안전한 패스워드 기준을 준수하여, USB 디바이스를 암호화하여야 한다. <참고 : 안전한 패스워드 기준> 네트워크를 이용하여 데이터를 전송하는 경우에도 안전한 암호 알고리즘으로 암호화 하여야 한다. <참고 : 안전한 암호알고리즘> 암호화 되지 않은 채널을 통해 데이터를 전송할 경우, 해커가 쉽게 데이터를 획득할 수 있다.
2) 하드 디스크
지금 본인이 사용하고 있는 PC 또는 데스크탑에는 굉장히 중요한 정보들이 많이 있을 것이다. 악의적인 사용자가 PC를 훔쳐가서 하드 드라이브로 접근하게 되면 모든 데이터가 노출되게 된다. 컴퓨터에 암호를 걸면 되긴하지만 이 역시 문제가 되지 않는다. 공격자는 Live - CD 와 같이 다른 환경에서 쉽게 하드드라이브를 마운트 할 수 있다. 다른 사람이 로그온하는 것을 막기 위해 사용되는 패스워드는 오직 다른 컴퓨터 사용자가 ‘로그인 하는 것’ 만 막아줄 뿐이다. 이러한 종류의 위험을 방지하기 위해서는, 하드 드라이브를 적절한 벙법으로 암호화 해야한다. 최대의 보안을 적용하기 위해 사용하고 있는 OS 역시 암호화하여야 한다.
3) 클라우드에 동기화된 파일
하드 드라이브에 있는 파일들을 다음과 같은 파일동기화 서비스를 통해 동기화 할 수도 있다.
- Google Drive
- Dropbox
- SugerSync
- Amazon Cloud Drive
- Micro OneDrive
- SpiderOak
- Wuala
(이외에도 많은 서비스들이 있으며, 위는 그들중 몇개 일 뿐이다. )
파일은 선택하여 로컬 컴퓨터와 클라우드 서비스 모두에서 동기화(synchronized) 되도록 하는 서비스 이다. 문제는 서비스에 따라, 클라우드에 동기화된 파일들이 암호화 되고 그렇지 않을 수 있다는 것이다. 예를 들면, Dropbox 는 파일을 클라우드에 저장할때 암호화하고 있지 않다. 반면 SpiderOak 는 암호화해야 한다.SpiderOak 클라이언트들은 클라우로 파일을 올릴때 로컬에서 파일을 암호화 작업을 수행해야 한다. 그렇기 때문에 암호화된 파일만이 클라우드 데이터 서버로 보내지는 것이다.
4) 클라우드에 저장된 데이터베이스 서버
시스템 관리자는 종종 SQL/NoSQL 데이터베이스를 설치해야 하는 경우가 있다. SQL/NoSQL은 데이터를 저장하기 위해 몇몇 어플리케이션에 의해 사용된다. 대부분의 username, password는 데이터베이스에 저장되는데, 즉 그 말은 데이터베이스는 민감한 정보를 가지고 있다는 것이다. 또한 코멘트, 사진, 비디오, 사용자 정보들까지 아주 다양하다. 때문에 안전한 워크플로우 및 운영을 보장하기 위해, 데이터베이스이 강조되는 것이다. 문제는 데이터베이스가 클라우드에 저장되어 있을 경우 다소 확장된다. 클라우드에서 DB 관련한 설치, 운영, 확장(Scailing) 작업을 보다 쉽게 할 수 있게 하는 다양한 종류의 서비스가 있다. (예를 들면, Googe Cloud SQL, Amazon Relational Database Service(Amazon RDS))
5) 모바일 폰
그러나 가장 중요한 것은, 모바일폰에 저장된 정보이다. 휴대폰 분실에 대한 사건사고는 굉장히 많이 보고 듣고 겪어 보았을 것이다. 휴대폰을 분실하게 되면 기기에 저장되어 있는 데이터도 같이 분실하게된다.
대부분의 사람의 경우 사진, 비디오, 전화번호 등과 같은 전화번호를 분실한 사실에 걱정할 것이다. 이와 같은 사례를 대비하여 행해져야할 가장 중요한 일은 데이터를 백업하는 것이다. 이는 굉장히 중요한 고려사항이다. 그리고 몇몇 사람들은 기기에 저장되어 있는 사생활 데이터가 유출되지 않을까 걱정하기도 할것이다. (이에 대한 솔루션은 아래에서 이야기하겠다.)
2. 온라인 및 오프라인에서의 데이터 보안 방안
지금부터는 '유출 또는 분실된 데이터를 읽으려는 행위를 막는 방법' 에 대해 이야기한다. 이는 데이터를 훔치려는 공격자를 막는 방법에 대해 이야기하는 것이 아니다. 위와 같은 방법으로 공격자가 데이터를 획득한 다는 가정에서, 데이터 보호를 위한 방법에 대해 이야기 하는 것이다.
1) USB 디바이스
USB 디바이스를 적절히 암호화하기 위해서는, 다음과 같은 소프트웨어를 사용할 수 있다.
- DiskCryptor
- VeraCrypt
- BoxCryptor
** 반면, TrueCrypt 는 사용하면 안된다. 이는 지원이 종료된 것으로, 더이상 지원하지 않을 계획이라고 한다. 즉, 안전하지 않다는 것이다.
2) 하드 드라이브
하드 드라이브를 암호화하기 위해서는, OS시스템에 따라 소프트웨어를 선택해야한다
- Linux : DM-Crypt LUKS
- Windows : BitLocker
3) 클라우드
클라우드에 서비스를 선택할때, 암호화 업로드를 지원하는지 또한 'Zero-Knowledge'를 지원하는지를 확인해야 한다. (Zero-Knowledge : http://en.wikipedia.org/wiki/Zero_knowledge) 지금 현재는 Dropbox 는 해당 기능을 지원하지 않기때문에, 대안으로 SpiderOak 를 사용해야 한다.
4) 클라우드에 저장된 데이터베이스 서버
클라우드 업로드된 DB 보안을 위해서는 다음과 같은 소프트웨어를 사용할 수 있다.
- ClearDB
5) 모바일 폰
대부분의 안드로이드 모바일 폰은 자체적으로 암호화를 지원한다. 안드로이드 ‘Setting’ 의 ‘Encrypt’ 에서 암호화를 진행할 수 있다.
3. 결론
지금까지 데이터를 보호함에 있어 '암호화'가 얼마나 중요한 요소인지 살펴보았다. USB 디바이스든 클라우드든 암호화가 필요한것은 마찬가지이며, 암호화만 제대로 수행해도 악의적인 공격자가 인가받지 않은 데이터에 접근하지는 못할 것이다.
또한 클라우드에 서비스를 사용할때, 해당 데이터는 언제든지 악의적인 공격자에 의해서 탈취당할 수 있다는것을 항상 인지해야 한다. 때문에, 데이터를 보호할 수 있는 최대한의 방안을 적용해야 하며, 그 보안 방안이 암호화가 되는 것이다.
우리는 ‘보안’ 과 ‘보안을 보장하기 위해 투자하는 시간’, 이 두 요소의 균형을 어떻게 조율할지 진지하게 고민해 볼 필요가 있다. ‘소 잃고 외양간 고친다’ 라는 말의 의미를 정확히 되새기며, 각자의 삶을 대상으로 '보안'과 ‘투자시간'과의 균형을 조절해보는 시간을 갖도록 해보자.