[번역] Apache + SSL 서버 구축을 위한 Mod_SSL Module Chap 1.
기술 이야기/TLS,SSL 2012. 2. 27. 13:37 |당시 나도 공부도 할겸 RFC나 암호 관련 문서들을 꽤 많이 번역하고 일부는 KLDP 등에 쾌척하면서 스스로 뿌듯함을 느끼던 적도 많았는데, 점점 나이를 먹고 조직에서 직급도 올라가면서 소위 관리 업무들이 많아지니 점점 예전의 그러한 열정을 잃어가고 그 때는 그렇게 재미있게 느껴지던 공부들이 이젠 관심조차 가지 않는 나를 보며 스스로 많이 느슨하게 살고 있다는 느낌을 받을 때가 많아진다.
지금도 예전의 그 열정을 유지할 수 있다면 삶이 조금은 더 나아질 수 있지 않을까....
오랜만에 PC 정리하다가 찾은 그 시절에 아르바이트 겸 공부 겸 해서 번역했었던 Mod_SSL 기술 문서들...
지금 올라와 있는 문서들과 비교하면 introduction 정도 변경이 있는 것 같긴 하지만 핵심 내용은 거의 변경이 없는 듯 하니 혹시나 도움이 되실 분들이 있을까 하여 한번 정리해 올려본다.
지금 보면 짧은 지식에 번역하면서 해석이 이상한 것도 많고 대충 대충 한 것도 많지만 다 과거의 기록이라는 핑계로, 귀찮기도 하니 그냥 올리니 혹시 이상한 부분이 있으면 댓글로 남겨주시면 감사하겠다.
mod_ssl의 최종 문서 주소는 아래와 같다.
http://www.modssl.org/docs/2.8/index.html
암호 기술 분야의 좋은 점 중 하나는 15년이 지나도 사용되는 기술이 변하지 않는다는 점이 아닐까 싶다. 기껏해야 보안성 강화를 위해 RSA의 키 길이를 1024에서 2048 bit 로 올리는 정도의 변화가 있었을 뿐...
아마도 단언하건데 앞으로 15년 후에도 지금과 동일한 스키마에 동일한 알고리즘이 그대로 사용되고 있을 것이라고 강하게 추정하는 바이다.
Chapter1 OverView
이 module은 Eric A. Young과 Tim Hudson이 구현한 SSL/TLS 라이브러리인 SSLeay를 이용하여 Secure Socket Layer(SSL v2/v3)과 Transport Layer Security(TLS v1)를 통한 Apache 웹서버의 강력한 암호화 기능을 제공한다.
mod_ssl package는 1998년 4월 Ralf S. Engelschall에 의하여 만들어졌으며, Ben Laurie가 개발한 Apache-SSL package로부터 구현되었다. Mod_ssl은 Apache Group이 사용한 라이센스와 동일한 BSD 스타일의 라이센스가 적용되며, 즉 author의 copyright과 적절한 credit을 표시하는 한 상업적, 비상업적 목적에 모두 사용될 수 있음을 의미한다.
Module Architecture
Mod_ssl package는 SSL module과 mod_ssl을 사용하는데 필수적인 요소인 EAPI(Extended API)를 Apache에 add하기 위한 소스 패치들의 모음(set)으로 구성된다. 즉 Apache의 핵심코드(core code)가 EAPI를 포함하고 있어야만 mod_ssl을 사용할 수 있다. 그러나 mod_ssl을 Apache의 소스 트리에 적용할 때 EAPI는 자동으로 add되기 때문에 보통 이것에 신경을 쓸 필요는 없으며, 이부분은 Apache의 다른 package들과 mod_ssl을 building하고자 하는 package vendor들에게 중요한 부분이다. Mod_ssl을 Apache 소스 트리에 적용하는 방법에 대한 자세한 내용은 mod_ssl 배포판 안에 있는 INSTALL 파일을 참조한다.
Module Building
SSL module(mod_ssl)은 Apache 소스 트리의 src/modules/ssl 디렉토리에 위치하게 되며, 이것은 일반적인 Apache module이다. 이는 mod_ssl을 다른 Apache module처럼 configure, build, install할 수 있음을 의미한다. 보통 이 과정은 APACI command를 사용하여 수행된다.
$ cd apache_1.3.x/
$ SSL_BASE=/path/to/ssleay ./configure … --enable-module=ssl
혹은 src/Configuration 파일에서 SSB_BASE 변수를 직접 수정하고 해당 AddModule directive의 주석처리를 없앤 후에 다음의 명령으로 수행할 수도 있다.
$ cd apache_1.3.x/src
$ ./Configure
또 다른 방법으로 APACI configure command line에서 ?enable-shared=ssl 옵션을 주거나 src/Configuration 파일에서 ‘AddModule ssl_module module/ssl/libssl.a’ 라인을 ‘SharedModule ssl_module modules/ssl/libssl.so’ 로 수정함으로써 Dynamic Shared Object(DSO) 지원을 가능하게 할 수 있다.
Mod_ssl을 DSO로 building하는 것은 run-time flexibility를 향상시킬 수 있는데 예를 들면 build-time이 아니라 run-time에서 SSL을 사용할 것인가 사용하지 않을 것인가를 결정할 수 있다. 그러나 mod_ssl을 DSO로 building하는 것은 OS와 compiler가 DSO를 지원하는가에 따라 달라지며, 모든 platform이 DSO를 지원하지는 않는다.