Code sign

Code Sign이란?

프로필

2010. 8. 31. 21:45

이웃추가

말 그대로 Code에 Sign을 한다는 것인대, 행위를 일컬어 Code-Signing 이라고도 부르기도 한다.

그렇다면 왜 사이닝을 하는 것인가.

 

근래 대부분의 애플리케이션이 웹을 통해 원격지로 배포되고 있다.

응용프로그램의 플랫폼은 차치하더라도 너무나 다양한 배포자가 존재하는 것이다.

그렇다면 이 많고도 다양한 프로그램을 설치하는 사용자 입장에서는 어떤 프로그램을 신뢰할 수 있는지 판단하기 힘들다.

(근래의 Window를 비롯해서 몇몇 OS 차원에서는 자동으로 이러한 판단을 수행하기도 한다. 또는 사용자에게 재확인 시키거나...)

 

바로 코드사이닝을 통해서 사용자는 응용프로그램이 제대로 된 인증절차를 거쳐 배포되고 있음을 확인할 수 있는 것이다.

우리나라에서 코드사이닝 작업이 중요한 가장 큰 이유는 너무나도 많이 배포되고 있는 ActiveX 응용프로그램 때문이다.

90% 이상의 코드사인 작업은 ActiveX 응용프로그램을 위해 이루어지고 있다 해도 과언이 아닐 것이다.

어쨌든 ActiveX 뿐만 아니라,

Java applet, Firefox plug-in, Adobe AIR 애플리케이션 등 Local 환경을 위한 대부분의 응용프로그램은 물론

Windows mobile, Android 등 모바일 프로그램 등에도 이 코드사이닝 작업은 폭넓게 적용된다.

(아이폰 어플리케이션도 엄밀히 말하면 비슷한 작업이 수반된다고 할 수 있지만 일반적인 코드사이닝과는 전혀 다른 개념이다)

그리고 코드사이닝이 필요한 애플리케이션은 갈수록 늘어날 것이다.

새로운 애플리케이션이 만들어지고 배포되려면 당연히 인증 절차를 거치게 될 테니까 말이다.

 

코드사인을 위해 필요한 것들은 무엇이 있을까?

 

첫째. 애플리케이션 별로 다양한 코드사인 절차를 거치지만,

기본적으로 공인 인증서가 필요하다. 일반적인 공인 인증서가 쓰이지 않는 예외 Case는 두가지가 있다.

1. Windows Mobile 코드사인 : Local 환경에서 인증서만으로 코드사인이 불가하다.

    Verisign의 계열사인 Geotrust의 signing Portal에 접속하여 원격 사이닝 해야만 한다.

2. Android 코드사인 : 일반적인 상용 인증서를 통한 인증이 아니라, 자체 개인키 생성을 통한 코드사인이 가능하다.

 

아래는 인증서 발급이 가능한 곳 중 하나인 한국전자인증의 코드사이닝 인증 안내 링크다.

http://www.crosscert.com/service_global/products/?_action=SHOW&_param=GLOBAL_PRODUCTS_CODESIGNING_PAGE

급한게 아니라면 대행사를 통하지 않고 Verisign이나 Thawte같은 인증기관에 직접 Contact 하여 발급받을 수도 있다.

이때 많은 인내심을 요구한다는 것은 염두에 두어야 한다.

가장 많이 쓰이는 것이 아무래도 Verisign의 인증서다.

거의 모든 애플리케이션 플랫폼을 가장 먼저 지원하고 폭넓게 지원한다. 특히나 MS에서 생산되는 플랫폼에 대해서는 더 그렇다.

하지만 가격이 약간 비싸고 인증기간은 무조건 1년만 가능한다.

그 다름으로 많이 쓰이는 것이 Thawte(쏘트? 써트? 노홍철의 번데기 발음으로 읽어야 재맛인대~)사의 인증서다.

가격도 비교적 저렴하고 2년간의 인증이 가능하다.

그러나 가장 치명적인 약점은 Windows Vista 커널모드, Windows 64bit OS 에 대응하지 못한다는 점이다.

 

둘째, 당연한 얘기지만 코드사인 대상이 되는 프로그램이 필요하다.

정상적인 기능을 수행할 수 있도록 빌드가 완료된 버전이어야 한다.

(코드사인 작업이 빌드의 최종 단계로 간주될 수도 있다. 배포되기 바로 전 단계다)

 

셋째, 애플리케이션 플랫폼에 맞는 절차를 거쳐 코드사인 작업을 수행한다.

 

마지막으로 배포만 하면 게임 끝!

 

 

 

보다 자세한 것은 각 플랫폼 별로 별도의 포스팅에서 상세 설명할 기회를 갖겠다.

 

 

 

조각배
조각배 일상·생각

자기소개가 힘듭니다. 현기증 난 단 말이에요.