1. 초 간단기록.HTTPS 에 대한 간단 설명 과SSL 하드웨어 가속기를 이용한 성능 향상 2011.6.22
2. 문서 안에서의 용어 정리 Http 서버 80포트로 서비스되는 일반적인 웹 서버 Https 서버 (또는 보안 서버) 443포트로 Http 프로토콜에 SSL 보안 통신하는 웹 서버
3. HTTP/HTTPS 해커 공격 가능 내부 망 * HTTP (80) User Apache Tomcat Network Switch 개인정보가 파라미터로 전달될 수 있음 ID:aa PW : aa1234 주민번호 :111 해커 공격 불가능 * HTTPS (443) HTTPS HTTPS User Apache Tomcat Network Switch 파라미터 정보를 암호화 Asdafklj!234325SDG Certificate설치/설정mod_ssl이용 SSL을 이용 (openssl)
4. HTTPS 서버의 용도 Https 서버를 통해서 다음을 방지한다. Sniffing 방지 Phishing 방지 데이터 변조
5. 인증서 인증서는 보통 2년 단위로 관리 (1년짜리도 쓰기도 함) 개별 도메인당으로 관리된다. ssl.service.com 웹 브라우져는SSL 연결을 하고 서버 인증서를 받고 어떤 인증서인지 확인한다. 이때 신뢰하는 싸이트(인증기관, CA, Certificate Authority)라면 괜찮지만, 이상하다 싶으면, 주소표시줄 색깔을 달리해서 경고해준다.즉, 웹 브라우져는 인증기관 목록을 미리 가지고 있다. 인증서 내부에서는 Chain이 있다. 즉, 웹 브라우져에서 가지고 있는 내부의 CA 목록에는 없지만, 인증서를 만들 수 있는 조직이 여러 군데 두게 한다. Chain의 최상위에는 웹 브라우져에서 인증하는 CA의 sign된 정보를 바탕으로 SSL 통신을 Valid하게 처리한다.
7. SSL 통신을 자세하게 보는 방법 openssls_client -connect <https서버도메인>:443 -state -debug
8. HTTPS는 언제 사용? 현행법상 개인정보를 취급하는 영리 목적의 사업자는 반드시 써야 하는 의무사항임 보안서버가 구축되지 않으면, 1천만원 이하의 과태료가 부가됨 고객 정보를 귀하게 여겨야 함 법률 근거 정보통신망 이용촉진 및 정보보호 등에 관한 법률 28조, 55조, 67조 정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행 규칙 3조 2항 개인정보의 기술적,관리적 보호조치 기준 5조
9. 운영 이슈 2년 마다 한번씩 공인 인증서 발급되어야 한다. 모든 서버에 Certificate 파일을 두어야 한다. Expire Time에 맞게 잘 배포해야 한다. (스케쥴을 잘 걸어야 함. 잘못하면 서비스 운영 실패!!) 새로 서버를 설치할 때를 위해서인증서를 잘 관리해야 한다. 조직 이동시 인수인계를 잘 해야 함 => 손이 많이 감.
14. SSL Session 설정 SSH session cache 를 관리 디폴트로 session cache를 쓰지 않는 설정SSLSessionCachenone 아니면, SSH session cache를 사용 클라이언트에서 cache를 사용하는 경우에 사용 가능 Apache 서버의 dbm쓰지 말고, shared memory 쓴다. Cache time은 적당히 지정한다. (당근 성능 테스트하고 결과값을 지정할 줄 알아야 한다.) SSLSessionCache "shmcb:/위치/ssl_scache(512000)" SSLSessionCacheTimeout 300
15. SSL Session Cache 설정의 조건 SSL Handshake를 재사용하기 위해서는 클라이언트측의설정이 필요한데 API의 경우 이런 설정을 안하고 호출을 하기 때문에 캐시 재사용을 안 하게 된다. 성능 향상이 없거나, 300초간 저장된 캐시 파일(상황에 다름. 100~200메가 정도의크기)을 정리하는 작업을 Apache가 수행하게 된다. 정리하는 작업을 할 때, request를 대기시켰다가 처리되고 나면, 그 결과로 Apache process가 증가하고, Tomcat의 Thread도 증가해서 503 Server Busy가 발생할 수 있다.. 아예 안쓰는 것도 좋은 방법이 될 수 있다.
16. 성능 이슈 해결 방법 Cpu가 많은 중형서버가 아닌 cpu 2개 정도의 싼 서버로 대수를 늘리는 방법 SSL 하드웨어 가속기를사용한다. (경험) mpeg codec와 muliplexer와 같이 산수가 많이 들어가는 계산은 하드웨어가 가장 낫다!!!
17. SSL 하드웨어 가속 테스트 Request 파일 사이즈 별로 성능 확인 기억이 안나는데.. SSL 하드웨어 가속기가 달린 장비 설명을 참조함
18. 기타 실제 사용 EverNote… 적용 효과 2x~10x 서비스의 dependency가 있음 (dB bottleneck)
19. 결론 SSL Hardware 가속기가 들어간 L7 스위칭 장비를 활용하면 성능이 좋아짐정말 좋은 것이냐? Https 서비스에 따라서 성능 효과는 달라진다... 테스트는 필요~ 보수적인 운영, 저렴한 장비로 구축한다면 더 많은 서버 장비로 구축해야 함. 다만, 트래픽이 많은 서비스에는 운영하는데 상당히 귀찮을 수 있음 (배포-재시작/설정 변경때문에 시간이 소요됨) HTTPS 사용은 고객의 정보를 소중히 여긴다는 마인드.