티스토리 툴바


technology2011/12/12 16:41
간만에 네트웍 관련된 글이 있어서 소개합니다.
안랩 ASEC팀에서 작성한 글 입니다.

패킷 뜯어 보기! - WireShark 편 
와이어샤크를 통한 패킷 덤프(Packet Dump)
네트워크 상태 보기! - TCP View 편 (1)
악성코드 대응! - TCP View 편 (2)



저작자 표시
Posted by 승현아범
people & life2011/11/17 13:58

최근 2주에 걸쳐서 스티브잡스 전기를 정독했다.
책내용은 생각보다 재밌었다. 아마도 같은 IT분야에 있어서 공감대도 형성되어 있었을테고, 또 내가 잡스관련 책을 몇권 읽었던 상태라서 전반적인 이해를 갖고 있었기 때문이었을지도 모르겠다.
스티브잡스랑은 직접적인 관련이 없을지도 모르겠지만, "미래를 만든 Geeks"라는 책이 있다. 매킨토시 제품을 만드는 과정에 대한 이야기인데, 잡스 전기랑 같이 읽으면 좀 더 객관적으로 보일지도 모르겠다. 참고로 이 저자는 잡스 전기에서 많이 등장하는 앤디 허츠펠드(Andy Hertzfeld)다.

내가 스티브잡스 책을 읽게된 동기는 단순하다.
기존 책에서 소개하지 않았던 각 제품을 구상하게 된 과정이 궁금했기 때문이다.
매킨토시에서 픽사로 옮긴 후, 토이스토리를 구상하게 된 배경,
픽사에서 애플로 복귀하게된 배경,
또 복귀 후 iPod, iPhone, iPad 등을 구상하게 된 배경이 다른 책에서는 연결이 잘 안 되기 때문이다.
흔히 우리가 부르는 창의성이 어떻게 완성되어가는가가 핵심이라 여겼기 때문이다.

그 중에 좀 쌩뚱(?)맞은 iPod를 개발하게된 동기부터 얘기를 하자면  다음과 같다.

닷컴붕괴 시절에 새로운 투자할 곳을 찾던 중, PC가 디지털허브가 되리라 예측을 한다. 파이어와이어로 연결하고, DVD로 굽고, PC에서 컨텐츠를 조립/생성하고 ...
(이때 소니등에서는 카메라의 사진을 전송하기 위해서 파이어와이어를 사용하기 시작했다.)
그런데 이미 시장에는 MP3 플레이어등이 우후죽순으로 나오기 시작했는데, 잡스는 음악시장 또한 하나의 디지털허브로 묶었으면 좋겠다는 생각을 한다. 이미 시장에 진입하기는 늦은 상태이긴 했지만, 제품이 하나 같이 (잡스의 눈에는) 쓰레기 밖에 없었기 때문에 자신있게 시도를 할 수 있었을거다. 2류제품 시장에서 완벽한 1류 제품으로 치고 나가는 것이 잡스의 특기 아닌가!

왜 잡스의 눈에는 기존 제품들이 2류로 보였을까?
잡스와 그의 팀은 사용하기가 너무 어려웠기 때문이라고 말한다.
많은 기능을 한꺼번에 제품에 넣다보니, 정리도 안 되고, 사용하기가 어려워진 것이다.
그래서 잡스는 모든 기능을 제품에서 빼는데 주력한다. 대신 복잡한 기능은 모두 iTunes로 끌어내리고 iPod는 운영에 관련된 최소한의 기능만 포함하도록 한다.
잡스가 늘 생각하던, PC는 디지털허브로써의 역할을 담당하고, iPod는 채널로써만 간단히 그리고 완벽히 기능만 담당하도록 한 것이다.

하드웨어와 소프트웨어가 통합되지 않았다면 결코 만들수 없는 제품의 궁합인 것이다.
사실 멋지다라는 말밖에는 달리 할 말이 없다.

이후 불법 음원이 판치는 시장을 평정하기 위해서 iTunes를 강화한다.
iTunes를 통하지 않으면 사용할 수 없도록 ...
(책에서는 잡스가 특히 음악과 예술에 관심이 많았고, 불법 음원으로부터 그들을 지켜주고 싶어했기 때문에 이 분야에서 좀 더 공을 들인것처럼 말한다.)

음악산업에서 대박을 터뜨리고, 곧 iPhone을 내놓게 된다.
iPhone을 만들게 된 계기 또한 iPod를 비롯한 MP3 플레이어와 카메라 등이 모두 핸드폰 시장으로 쏠리고 있었는데, 이때 잡스는 한동안 고민했다고 한다. 바로 자기잠식이라는 문제가 생기기 때문이었다.
(실제로 주위에서는 iPhone을 내놓기전에 좀 더 iPod를 팔도록 부추겼다고 한다.)

"우리가 스스로를 잡아먹지 않으면 다른 누군가가 우리를 잡아먹을 겁니다" - 소니의 자기잠식 현상을 두려워하는 걸 본 잡스의 말이다.

이후 모두가 잘 알고 있는 iPhone이 나오고, iPad가 나왔다.

그런데 책을 내내 보면서 궁금하면서 애매한 부분이 잡스의 통합적인 접근 방식이다.
잡스는 완벽주의를 너무나 지향한 나머지 iPhone에서도 App을 일반 개발자에게 오픈하는 것을 극도로 싫어했다고 한다.
완벽한 잡스의 세계에 일반 개발자들이 들어와 훼손하는 것을 원치 않았기 때문이다.
이처럼 완벽주의를 위해서는 통합적인 접근이 더 어울려 보인다. 하지만 오픈소스를 어떻게 생각해야 할까?
잡스가 살아있었다면 뭐라고 대답을 했을지가 정말로 궁금하다.
아마도 쓰.레.기. 라고 하지 않았을까.... 
저작자 표시
Posted by 승현아범
technology2011/08/26 11:25
PKI 시스템에서 가장 대표적인 기술이라면 아마도 인증서 관련된 내용일거다.
그 중에서도 가장 보편적으로 많이 사용되는거라면, 아마도 SSL/TLS 이지 않을까 싶다.
그런데, SSL 을 비롯한 PKI 문제를 너무 기술적인 접근만 이뤄지고 있는 것 같아서 그 기술적 배경에 대해서
간단히 정리를 하고자한다.

PKI는 Public Key Infrastructure 이다.
여기서 Infrastructure라는 단어가 중요한데, 보안/암호 시스템에서 가장 중요한 단어 하나를 꼽으라면,
주저없이 신뢰라는 단어를 꺼내고 싶다.
이 신뢰라는 단어는 기술적으로 강하게 묶이도록 시스템을 구성하지만, 그렇지 않은 경우도 존재하기 때문이다.
예를 들어서 Self Sign된 인증서로 SSL/TLS 서비스를 구성할 때, 웹브라우저는 해당 인증서를 신뢰하겠느냐고 물어본다.
이때는 기술적인 부분보다 사용자에게 웹사이트의 신뢰여부를 확인 받는것이다.

개발자들에게는 SSL/TLS(공인인증서 또한 마찬가지다) 시스템 구축시에 가장 많이 발생하는 오류가
Certificate chain 오류나 PKIX path building 오류이다.
인증서를 검증하면서 오류가 발생하는 것인데, 대부분 CA인증서를 신뢰하도록 설정하지 않아서 문제가 생기는 것들이다.
즉, 인증서는 그 인증서를 발급한 상위 기관(CA)이 있고, 그 상위기관의 인증서 또한 누군가에 의해서 발급이 된다.
그러다 최상위 기관의 인증서는 스스로 발급을 하고, 전자서명을 하는데 이는 Self Sign으로 처리된다.
이렇듯 각 인증서의 상/하 관계는 Chain으로 구성되어 있다.
하나의 인증서를 검증하기 위해서는 반드시 Certificate Chain도 함께 검증을 해야 그 신뢰관계가 형성되는 것이다.
그렇다면, 시스템에서 어떻게 Certificate Chain을 신뢰하도록 할까?
그건 여러 방법이 있겠지만, 그중에 하나가 Keystore를 만들고, 이를 신뢰하도록 설정하는 것이다.
Certificate Chain의 모든 신뢰관계를 갖는 인증서를 Keystore에 넣어두고, 해당 Keystore를 최종적으로 신뢰하도록 한다면,
최소한 우리가 가장 중요하다가 신뢰하는 인증서들을 안전하게 사용할 수 있다.
이후부터는 순수하게 기술적인 문제만이 존재한다.

또 하나 고려해야 할 사항이 있다면, 신뢰의 정도문제를 얘기할 수 있다.
절대적으로 신뢰할 수 있는 것인지, 현재의 시스템에서 적당히 신뢰할 수 있는것인지, ... 
이에 따라서 전체 시스템/서비스의 보안강도 또한 연관되어 결정될 수 있다.
좀 더 좋은 방법, 좀 더 귀찮지만 더 신뢰할 수 있다면 보안측면에서는 좀 더 향상된 시스템임에 분명하다.
(보안적인 측면과 편리성, 가용성, 접근성등은 상반된 입장으로 늘 부딪히기 마련이다.)

대부분의 개발자들이 보안시스템의 개념이나 키관리의 중요한 개념없이 무조건적인 기술개발만 집착을 하다보니
정작 가장 중요한 부분을 놓치는 경우가 왕왕있다.
다시 한번 강조하지만 보안/암호 시스템에서는 가장 중유한 것은 신뢰이며, 이 신뢰관계를 지속적으로 유지하는가가 그 어떤 것보다 중요하다.
많은 경우 신뢰관계를 쫓아가다보면 마지막 단계는 사람과 만나기도 하는데, 이것을 시스템/프로세스화 하도록 하는것이 좋은 시스템의 척도이지 않을까 싶다.

저작자 표시
Posted by 승현아범
TAG pki, SSL, tls, 인증서