Cloud Computing

Security 2011. 12. 19. 20:38 Posted by 알 수 없는 사용자
Kirsten Ferguson-Boucher, "Cloud Computing: A Records and Information Management Perspective," IEEE COMPUTER, Nov/Dec 2011. 을 읽고 남기는 글입니다. 감상문이라서 그런지 내용에 특별한 주제는 없습니다. 클라우드 서비스에 대한 개인적인 견해로 읽어주시면 좋겠습니다.

"클라우드 컴퓨팅(cloud computing)은 새로운 기술은 아닙니다.  기존에 있던 기술을 바탕으로 컴퓨팅 자원을 전달하는 새로운 방식을 제안하는 것입니다."
라고 글에서는 말하고 있습니다. 여기서 말하는 기존에 있던 기술은 가상화(virtualization)가 가장 적합하겠네요. 예전부터 지금까지, 호스팅 서비스와 같은, 컴퓨팅 자원 제공 서비스는 있어 왔습니다. 하지만 가상화의 발전으로, 이런 서비스를 제공하는 비용이 더욱 낮아졌다는 점이, 더 많은 기업이 데이터를 저렴하게 보관해주겠다 혹은 원격으로 소프트웨어를 제공해주겠다는 세상으로 이끌고 있는 것 같습니다.

웹 검색으로 시작한 구글은 일반 사용자들에게 가장 친숙한 클라우드 서비스 업체라고 생각합니다. 많은 사람들이 개인 이메일을 구글에게 맡기고 있고, 문서를 독스(docs)에 보관하고 일정을 캘린더 서비스에서 관리하고 있습니다. 피카사를 통해 사진을 보관하기도 하지요. 그들의 비지니스 모델까지 여기서 언급할 필요는 없겠습니다만 최근 정식으로 출시된 크롬북만 보아도 그들이 제안하는 - 그리고 이끄는 - 미래를 볼 수 있습니다. 웹 브라우저 하나 달랑 떠 있는 노트북을, 왜 돈을 주고 사는가 싶은 사람이 아직은 많을 것입니다만, 우리가 노트북을 사용하면서 대부분의 시간을 웹 브라우저 상에서 보내고 있다는 것을 깨닫는다면, 그리 이상하지도 않습니다.

이건 오래전부터 제가 생각하고 있는 것인데, 웹 브라우저 상에서 게임이 잘 동작하고 프로그래밍이 가능해지면, 정말 그런 세상이 와도 거부하기 힘들 것 같습니다. 플래시 게임은 이미 많이 있고, WebGL을 통해 더 화려한 게임들도 동작하게 되겠지요. 프로그래밍은 아직 좀 멀어보입니다만 일반 사용자들이 개발할 일이 많지는 않으니 프로그래밍이 주요 걸림돌이 되진 않겠네요. 물론 대세가 될 확률은 아주 낮습니다만, 그래서 크롬북이 뜬금없이 보안을 주 강점으로 내세우고 있긴 합니다만, 약간의 마켓 쉐어를 가져도 이상하진 않을 수준에 현재 도달해 있다고 생각합니다.

VMWare 같은 프로그램을 써보면서 많이 놀랬던 건 그 기술의 발전이었습니다. 너무나도 빠르게 좋아지고 있었거든요. 얼마전에 보니 현재 쓰고 있는 운영체제의 상태를 그대로 가상화할 수 있더군요. 어딘가 출장을 갈 때 이미지를 떠서 디스크에 담고, VMWare 플레이어로 다른 컴퓨터에서 가동시키면 내 작업 환경을 그대로 쓸 수 있을 것입니다. 물론 출장에서 돌아와서 가상화된 이미지를 다시 내 컴퓨터와 동기화 시키는 것은 좀 어려운 작업이 될 수도 있겠습니다만, 출장지에서 많은 작업을 하진 않을테니 그 정도는 수동으로 해도 괜찮겠지요. 이 정도의 기술 발전은 stateless PC라고 부르기도 하는, 이미지에 내 컴퓨터를 담고, 어떤 PC든 가서 부팅하여 사용하는 그런 식의 세상을 만들 수도 있겠다는 생각이 듭니다. 좋은 하드웨어를 저렴한 가격으로 사용할 수 있게 하는 기업이 수 많은 stateless PC를 여러 곳이 넓게 제공하기만 한다면 말이죠.

사실 가상화는 앞서도 언급했듯이 서버 쪽에서 훨씬 이득이 많습니다. 컴퓨팅 자원이 정해진 하드웨어 상에서 상황에 맞게 아주 효율적으로 가상화 이미지들이 옯겨 다닐 수가 있게 되고, 덕분에 하드웨어를 백퍼센트 활용할 수 있다는 점에서 말이죠. 가상화의 발전으로 서비스 제공자는 싼 가격에 사용자를 끌어들이고 사용자도 자신이 직접 하드웨어와 네트워크를 구입하여 서비스를 설정하는 것보다 클라우드 서비스를 이용하는 것이 훨씬 저렴한 시대가 되었습니다. 구글 어플리케이션의 경우, 도메인만 가지고 있으면 50인까지 무료로 제공해주고 있지 않습니까? 작은 사업체에서는 메일 서버, 문서 공유 서버, 홈페이지 서버를 둘 필요도 없는 것이지요.

갑자기 내 회사가 잘 되어 사용자가 폭주하고 사원이 늘어나도 일은 쉬워집니다. 서버를 증축하고 네트워크 대역폭을 늘리고 할 필요가 없이 클라우드 서비스에 돈을 좀 더 납부해주면 알아서 해주니까요.

데이터를 잃어버릴 일도 별로 없습니다. 클라우드 서비스 업체들은 백업에 열중할테니까요. 만약 데이터를 분실하는 사건이 발생하고 이것이 알려지면 사람들은 그 업체를 떠날 것이기 때문에 업체들은 최선을 다할 것입니다. 그리고 그들은 전문가를 뽑아서 관리할 것이기 때문에 데이터 자체의 안전성(integrity) 뿐만 아니라 보안(security)에서도 유리할 가능성이 높습니다.

물론 안 좋은 점도 많겠지요. 우선 클라우드 서비스 업체가 항상 서비스를 잘 제공해준다는 보장(availability)이 없습니다. 가끔 지메일이 열리지 않아 답답함을 느끼는 사용자들이 계실 것입니다. 많은 클라우드 서비스 제공자들이 광고를 할 때 99% 또는 99.99%의 가용성(availability)을 제공한다고 하지만 그건 모를 일이지요.

클라우드 서비스 업체를 믿을 수 있을 것인가 하는 문제도 있습니다. 그들이 마음만 먹으면 우리 회사의 기밀 문서를 열어볼 수 있을 것이고, 내 메일을 읽을 수도 있을 것입니다. 이런 점에서 Free Software Foundation의 리차드 스톨만 씨는 클라우드 서비스에 대한 큰 반감을 표현하기도 했지요. 개인적으로는 저 역시 이 문제가 클라우드 서비스를 좋게 보기 힘든, 클라우드 서비스가 가지는 가장 큰 단점으로 보고 있습니다.

제가 보안 전공이라 그럴 수도 있겠습니다. 이걸 해결하기 위해서는 모든 것을 개인이 관리하고 네트워크를 이용할 때는 항상 암호화/복호화 작업을 스스로 수행해야 하는데 그렇게 할 사람이 많을지는 모르겠습니다. 예를 들어, 내 카카오톡 메시지를 누가 보면 안 되기 때문에, 메시지를 보낼 때마다 내 폰이 암호화하고 메시지를 받을 때마다 복호화한다면 속도도 느리고 배터리도 더 빨리 닳게 되는 것이지요. 그런 서비스가 성공할 가능성이 높아 보이진 않습니다. 사용자 참여의 문제 외에도 사업자 측에서의 비지니스 모델 상 이런 서비스가 나오긴 힘들긴 합니다. 여기에 대한 이유까지 이야기하기엔 글이 너무 길어졌네요.


'Security' 카테고리의 다른 글

NFC의 장단점?  (0) 2011.10.14
NFC 어플리케이션  (0) 2011.10.14
물건 분실을 파악하는 좋은 방법?  (0) 2011.10.14
RFID Tag Coupling  (0) 2011.10.14
가장 비싼 1바이트의 실수  (0) 2011.10.14

추천 크롬 확장 프로그램 - Turn Off the Light

Web/Web Browser 2011. 11. 15. 17:57 Posted by 알 수 없는 사용자
구글 크롬 확장 프로그램 하나 소개합니다. 확장 프로그램의 이름은 이 글의 제목과 같고, 링크는 http://goo.gl/yK5xX 입니다.

이 확장 프로그램은 구글 크롬이 처음 제작되어 배포되기 시작했을 때 크롬에 대한 소개 영상에도 포함되어 있는 아주 오래된 확장 프로그램입니다. 유투브와 같이 영상을 플레이할 때 이 프로그램을 사용할 수 있으며, 사용 가능할 때는 주소창의 오른쪽에 전구 표시가 뜹니다. 유투브의 경우에는 프로그램 옵션 설정에 따라 자동으로 실행되기도 합니다. 그외의 경우에는 전구 아이콘을 눌러 실행할 수 있습니다.

이 확장 프로그램이 하는 일은 영상이 플레이되는 영역을 제외하고 나머지를 어둡게 만드는 것입니다. 의외로 이렇게 하면 영상에 집중할 수 있게 됩니다. 유투브의 경우 전체 화면 버튼을 누르면 480p 이상으로 다시 버퍼링을 시작하는 경우도 많고, 유투브를 비롯한 많은 동영상들이 전체화면으로 보기에는 화질이 그리 좋지 못한 경우도 많습니다. 이런 이유로 전체화면보다는 그냥 동영상을 보시는 분에게 좋겠지요. 시선이 분산되는 것을 상당히 막아줍니다. 아, 항상 전체화면으로 보시는 분에게는 별로 필요가 없겠네요.

백문이 불여일견입니다. 위 링크를 따라가시면 소개 동영상을 보실 수 있습니다.

HSTS: HTTP Strict Transport Security

Security 2011. 10. 14. 10:58 Posted by 알 수 없는 사용자
크롬에 대해서 보다가 HSTS라는 것을 보게 되었습니다. HTTP Strict Transport Security의 약자인데요, (정확히 이해했는지 확신이 아직 좀 없지만) 쉽게 말하면 "무조건 HTTPS를 쓸 것!"이 됩니다.

크롬을 사용하고 있다면,

chrome://net-internals/#hsts

이 링크로 접근 가능합니다.

여기에 등록해두면 해당 사이트에 접근할 때, 명시적으로 앞에 https:// 를 타이핑하지 않아도 무조건 https로 접속을 시도합니다.

그런데 사용자가 일일이 이 리스트를 입력하고 관리하는 것이 꽤나 귀찮은 일이죠. 그래서 크롬은 preloaded HSTS list라는 것을 built-in으로 가지고 있습니다. 몇 가지 예를 들면
  • www.paypal.com
  • (chrome|checkout|health|docs|spreadsheets|sites|appengine|encrypted).google.com
  • market.android.com
이런 사이트들이 포함되어 있지요. 이 리스트는 구글이 정해둔 것도 있겠지만 해당 웹사이트에서 요청한 것이 대부분입니다. 여러분 누구나 내 웹사이트는 무조건 https를 사용도록 강제하고 싶다면 구글에 요청 메일을 보내면 됩니다. (아마 사이트의 규모가 좀 있어야 해주겠죠?)

'Security' 카테고리의 다른 글

물건 분실을 파악하는 좋은 방법?  (0) 2011.10.14
RFID Tag Coupling  (0) 2011.10.14
가장 비싼 1바이트의 실수  (0) 2011.10.14
DigiNotar의 구라 인증서에 대한 대처  (0) 2011.10.14
가짜 구글 인증서  (0) 2011.10.13

DigiNotar의 구라 인증서에 대한 대처

Security 2011. 10. 14. 10:56 Posted by 알 수 없는 사용자
앞서 작성한 DigiNotar의 가짜 구글 인증서에 이어서 쓰는 글입니다.

IE의 경우 MS에서 windows update를 통해 처리한 것으로 들었습니다. 여기서 처리했다 함은 웹브라우저가 DigiNotar를 Root CA로 인정하지 않도록 하는 것을 말합니다. 심플한 대처지요.

파이어폭스의 경우에도 업데이트를 통해 동일한 처리를 했고, 업데이트가 싫으신 분은 설정에 인증서 관리에 가셔서 직접 제거하셔도 된다고 합니다.

크롬도 마찬가지로 제외시켰다고 했는데, 크롬을 사용하고 있었다면 '혹시 내가 당하지 않았나?'하는 생각을 하지 않아도 됩니다. 왜냐하면 이 사건이 알려진 것이 크롬의 역할이 컸으니까요.

구글의 지메일 포럼에다가 누가 이런 글을 올렸는데, 크롬이 인증서가 이상하다며 경고 메시지를 보내줬다는 것이죠. 그래서 이게 man-in-the-middle attack이 아닌가하고 질문을 했고, 세상에 알려지게 되었습니다.

크롬 입장에서는 은근 자랑할만한 사건이 생긴 것이 되겠네요.

크롬이 경고를 날릴 수 있었던 것은 certificate pinning이라는 개념을 크롬이 도입하고 있어서인데, 개념이라고 하니 무척 고급 기술이 들어간 것 같지만, 별거 아니고, 특정 사이트의 인증서에 대한 root CA 리스트를 강제해두는 것입니다. 좀 더 쉽게 말하면 구글의 인증서를 인증해줄 수 있는 기관은 여기 여기뿐이다라고 정해두는 것이죠. 즉, 사이트별로 root CA whitelist를 가지는 것입니다.

구글은 (2011년 5월 4일 시간 기준으로) 구글 사이트들에 대한 인증을 해줄 수 있는 기관을 Verisign, Google Internet Authority, Equifax, GeoTrust 이렇게 4개의 인증기관으로 한정지어 두고 있습니다. 그러니 DigiNotar가 비록 root CA로써 활동하고 있는 인증 기관임에도 여기서 발행된 *.google.com에 대한 인증서는 크롬 입장에서는 '이상한데?' 하고 의심할 수 있게 되는 것이죠.

'Security' 카테고리의 다른 글

물건 분실을 파악하는 좋은 방법?  (0) 2011.10.14
RFID Tag Coupling  (0) 2011.10.14
가장 비싼 1바이트의 실수  (0) 2011.10.14
HSTS: HTTP Strict Transport Security  (0) 2011.10.14
가짜 구글 인증서  (0) 2011.10.13

가짜 구글 인증서

Security 2011. 10. 13. 14:23 Posted by 알 수 없는 사용자
친구(@skyisle)의 페이스북 글에서 가짜 구글 인증서 사건이 있었다는 것을 알게 되었다. DigiNotar라는 곳에서 구글(정확히 말하면 *.google.com)에 대한 인증서를 발행했다는 것이다. DigiNotar는 네덜란드의 인증 기관(certificate authority, CA)이다.

문제는 DigiNotar가 Root CA 중에 하나라는 것인데, 이것이 왜 문제인지 내가 아는데까지 간단히 설명을 해보면,

우선 공개키 방식에 대해서 이해할 필요가 있다. 공개키 방식은 1977년인가에 Diffie와 Hellman이라는 두 사람이 공식적으로 제안한 것으로 유명하다. 그 이전까지는 하나의 키를 두 사람이 남들 모르게 공유하고 이것을 가지고 암호화 및 복호화를 하는 방식에만 모두가 집중하고 있었다. 그래서 키를 어떻게 몰래 나눠가질 것인가가 주요 이슈였다.

서로 뭔가 비밀 정보를 알고 있다면 그것을 이용해서 암호화해서 키를 보내주면 되는데, 뭔가 비밀 정보를 이미 공유하고 있다면 이미 그 자체가 키가 아닌가! 그래서 예전에는 키를 보낼 때 등기 우편으로 보내거나 사람을 사서 안전하게 전달한다는 내용이 논문이 당연하다는 듯이 기술되어 있다. 하지만 이건 사람이 개입되는 것이니 비용이 높고 속도가 느리다. 네트워크를 통해서 쉽게 할 수는 없을까? 하고 당연한 의문이 생겼을 터.

공개키 방식은 말 그대로 키를 공개할 수 있다는 것인데, 그렇게만 된다면 키를 누가 보게 되더라도(즉, 도청을 당할 위협을 고려하지 않고) 필요한 녀석들에게 던져줄 수가 있다. 하지만 공개된 로또 번호가 의미가 없듯, 남들 다 아는 주식 정보가 의미가 없듯, 키가 공개되는 건 이미 그 자체로 의미가 없다.

그럼에도 불구하고 이런 개념이 나올 수 있었던 것은 키가 하나가 아니라 두개이기 때문이다. Key pair를 만들어서 하나는 비밀로 숨기고 하나를 공개한다. 내부적으로 많은 알고리즘이 있을 수 있지만 다음 규칙을 따르면 공개키 방식에 사용될 수 있다.

(1) 공개키로 암호화한 것은 비밀키로 복호화할 수 있다. 반대로,
(2) 비밀키로 암호화한 것은 공개키로 복호화할 수 있다.

첫 번째 방식을 이용해서 안전하게 데이터를 전달하거나 혹은 비밀키를 전달한다.
두 번째 방식을 이용해서 전자서명을 한다.

이것이 디피와 헬만이 제안한 내용이다. 획기적이고 멋진 아이디어지만 여기서 문제가 하나 있다. 공개키가 말 그대로 공개되기 때문에 다른 녀석이 나를 사칭하여 자신의 공개키를 내 것이라고 다른 사람들에게 거짓말을 할 수 있기 때문이다.

즉, A가 B에게 어떤 비밀 메시지를 보내려고 B의 공개키로 암호화를 한다. 그럼 B는 자신만의 비밀키로 풀어서 그 내용을 볼 수가 있다. B의 공개키는 공개되어 있지만 누구도 비밀키는 모르므로 비밀 메시지를 볼 수가 없다.

이 때, E가 B인척 A를 쉽게 속일 수 있다. A가 B의 공개키가 뭔지 알아볼 때 E가 끼어들어 자신의 공개키를 A에게 알려주면서 "이거 B꺼야." 한다. A는 E의 공개키로 암호화 한다. E는 자신의 비밀키로 풀어서 메시지를 쉽게 읽을 수 있다.

이것 때문에 나온 것이 certificate이다. (인증서 개념은 역시 70년대 말에 MIT의 어떤 학부 학생의 졸업 논문에서 제안되었다고 하는데, 학부생이라니! MIT는 MIT다.) 인증 기관이 있어서 이 공개키는 B의 것이 맞소, 하고 인증해주는거다. E가 이것이 B의 인증서이다하면서 자기 인증서를 A에게 들이 밀어도 A가 인증기관에 알아보면 쉽게 이것이 뻥이라는 것을 알 수 있게 된다.

현재 인증서는 누구든 발행할 수 있고 대신에 chain을 형성하면 된다. Chain을 형성해야 한다는 것 자체가 아무나 발생할 수 없다는 소리가 되긴 하지만... 여튼 누군가가 "이 물건이 믿을만한 것이요."라고 말했을 때 못 믿겠다면 그 사람이 믿을만한 사람인지 또 누군가에게 물어봐야 한다. 이렇게 점점 연결 고리가 형성되는데 이 방식대로라면 최후에 절대 신뢰할 수 있는 누군가가 있어야 한다. 뭐, 정부의 인증! KS 마크! 이런 거라고 보면 될까? 비유가 안 좋았다. 하여튼 이걸 Root CA라고 한다.

이야기가 굽이굽이 많이도 돌았다. 결론적으로 하고 싶은 이야기는 DigiNotar는 root CA라서 여기서 발행된 인증서를 봤을 때 사용자는 믿을 수 있다고 생각한다.

이 인증서가 DigiNotar가 직접 발행한 건지 아니면 누군가가 DigiNotar를 해킹해서 한 건지는 내가 본 기사에서는 누구도 다루지 않았지만 여튼 이 인증서는 유효한 인증서였고 이란에 있는 많은 사용자들이 이 가짜 인증서를 사용했다. 아까 말했듯 인증서에는 공개키가 있고 사람들은 이 조작된 공개키를 암호화에 활용했을 것이다. 적발될 때까지 두 달 정도 사용되었다고 하니 꽤 많은 사람들의 지메일이나 구글독스가 털렸을 수도 있겠다.

여기 위키 페이지가 관련 링크로 넘어가기 좋다.

어떻게 적발되었고, 현재는 어떻게 대처하고 있는지는 다음 번으로 미룬다. 힘들다.

'Security' 카테고리의 다른 글

물건 분실을 파악하는 좋은 방법?  (0) 2011.10.14
RFID Tag Coupling  (0) 2011.10.14
가장 비싼 1바이트의 실수  (0) 2011.10.14
HSTS: HTTP Strict Transport Security  (0) 2011.10.14
DigiNotar의 구라 인증서에 대한 대처  (0) 2011.10.14