garbages

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ garbages ] in KIDS
글 쓴 이(By): cookie ()
날 짜 (Date): 2011년 04월 04일 (월) 오후 08시 57분 38초
제 목(Title): Re: 공인인증서, Smart Sign, 표준...


우선 그 스마트 사인이라는 것의 문서를 구할수 없다. 물론 ETRI에 연락해서 
문서를 받으면 되겠지만 이렇게 국내에서 조차 웹으로 공개되어 있지 않다면 
그 표준이 투명하고 안전하고 중립적이고 충분히 피어 리뷰된 검증된 
표준일 리가 없다.

몇줄 안되는 공개된 정보만으로 추정해 보자면 대략 smartsign: 이라는 
새로운 TCP 프로토콜을 정하고 그 프로토콜 핸들러 (service demon - 웹서버나 
비슷) 설치하고 Javascript 등 에서 그 TCP 포트로 소켓을 열어서 
암호화/사인할 데이타를 주고 받아 사인한다는 아이디어인데... 
이건 완전히 맥을 잘못잡고 있다.

이건 순전히 javascript 의 cryto.signText() 과 비슷한 기능을 하는 cryto
library를 여러 OS와 여러 브라우저에서 어떻게 구현할것인가 하는 
표준화의 필요성이 전혀 없는 구현의 세부 방식에 불과한거다. 
라이브러리 API도 아니고 라이브러리를 실제로 각 플랫폼에서 어떻게 
구현할 수  있는가 한 방식의 예제에 불과하다.
그 smartsign이란 프로토콜이라는건 간단한 function call을 
엄청 복잡하게 둘러둘러 뻥튀기를 한 것일 따름이다.   

표준화가 필요한건 사용자의 PC와 은행의 서버간에 어떤 데이터가 
어떤 순서로 어떤 포맷으로 오가고 에러는 어떻게 고지하고 하는 
트랜잭션 인터페이스 프로토콜/메시지만 정의하면 된다. 

그 메시지 중에 암호화/사인이 필요한 것은 이런 저런 메세지 들이고 
그 데이터는 pkcs#7 같은 표준으로 교환하고 그 내용은 어떠해야 한다는 
식으로 표준을  정해야지 
사인할 데이터로부터 전송할 pkcs#7 메시지를 어떻게 만들어 낼 지 
또는 pkcs#7 데이터를 어떻게 풀어서 verify할지는 
각 구현이 알아서 할  일인거다. 

물론 smartsign 프로토콜 데몬에 delegate해서  구현할  수도 있지만 
javascript의 Crytpo.signText()로 하건 Dot NET의 PKI API를 쓰건 
Java Cryoto를 쓰건  OpenSSL을 쓰건 그건 구현자 맘인거다. 
이건 하나도 표준화 할 필요도 없고 
아니 절대로 표준화 해서는 안되는 "구현세부방식"에 속하는 사항이다.

게다가 사용자 PC의 내부에서 가능하면 같은 프로세스 주소공간에서 
충분히 구현될수 있고 또 그래야 할 걸 뭐하러 TCP 소켓을 열어서 
또다른 위험을 자초한단 말인가? 그럼 원격 컴퓨터나 같은 컴퓨터의 
다른 사용자가 그 포트에 접근하지 못하도록 보호해야 하지 않느냐? 
그러자면 이 smartsign service  daemon 구현은 필히 "system" 권한을 가져야 한다.

만약 악의적 바이러스  프로그램이 그 samrtsign 프로토콜 핸들러 자리를 
후킹해서 빼았아 버린다면 어떻게 할거냐?  또는 TCP 스택을 sniffing 하면 
어쩔거냐?   매우 불필요하고  위험하기 까지 한 방식이다. 
프로토콜 바운더리에서 클리어 텍스트를 주고받는 이런 짓은 
제대로된 보안 개발자라면 이런 정신나간 설계는 하지 않을 거다.

전혀 표준화 할 필요도 없고 절대 표준화 해서는 안되는 것을 
절대로 써서는 안되는 방식으로 표준화 하려는 바보들이다.
아니 이걸 연구성과라고 공개할 정도로 뻔뻔하단 말인가?
앞날이 캄캄하다. ETRI가 이정도로 망했던가?


[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.