SSL(TLS) 인증을 위한 기본개념
SSL(TLS)을 이용하여 HTTPS를 적용하고 싶었다. SSL(TLS)이란? SSL : Secure Socket Layer (보안 소켓 레이어) TLS : Transport Layer Security (전송 계층 보안) SSL 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다. SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다. 그리고 SSL을 표준화하면서 바뀐 이름이 TLS이다. SSL을 사용하는 이유 1. 클라이언트/서버 응용 프로그램이 네트워크로 통신을 하는 과정에서 도청, 간섭, 위조를 방지하기 위해서 설계되었다. 2. 암호화를 해서 최종단의 인증, 통신 기밀성을 유지시켜준다. 3. 통신 내용이 공격자에게 노출되는 것을 막을 수 있다. 4. 클라이언트가 접속하려는 서버가 신뢰 할 수 있는 서버인지를 판단할 수 있다. 5. 통신 내용의 악의적인 변경을 방지할 수 있다. SSL의 핵심은 암호화이고 보안과 성능상의 이유로 두가지 암호화 기법(대칭키, 공개키)을 혼용해서 사용한다. 먼저, 대칭키 방식과 공개키 방식에 대해 알아보자. 대칭키 방식 대칭키 방식은 이름에서 알 수 있듯이 키가 대칭이다. 이 말은 전송하는 쪽과 받는 쪽이 같은 키(대칭키)를 소유하고 있다는 뜻이고, 그 대칭키를 이용하여 암호화와 복호화에 사용한다. 하지만 이 방식은 전송단에서 암호화할 때 사용했던 키를 수신단에서 복호화할 때 사용해야하므로 키를 수신단에 전달해야하는 문제가 있다. 대칭키 방식을 자물쇠 달린 택배에 비유하면 좋을 것 같다. 자물쇠 비밀번호를 설정하고 택배를 주면 택배를 받은 사람이 설정한 비밀번호를 입력하면 자물쇠가 열린다. 하지만 택배를 받는 사람이 택배를 준 사람으로 부터 비밀번호도 받아야하는 문제가 발생한다. 이것이 대칭키 방식의 문제점이라 할 수 있다. 공개키방식 공개키 방식은 대칭키 방식의 문제점을 해결하기 위해...