라벨이 전송 계층 보안인 게시물 표시

SSL의 통신과정

이미지
SSL 인증서의 역할 1. 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장한다. 2. SSL 통신에 사용할 공개키를 클라이언트에게 제공한다. CA : 인증서 발급 기관 SSL 인증서를 발급해주는 민간기업들을 CA(Certificate Authority) 라고 부른다. 인증서는 개인키 소유자의 공개키에 인증기관의 개인키로 전자서명한 데이터다. 모든 인증서는 발급 기관(CA)이 있어야 하나 최상위 인증기관(Root CA)은 서명해줄 상위 인증기관이 없으므로 Root CA의 개인키로 스스로의 인증서에 서명하여 최상위 인증기관 인증서를 만든다. 이렇게 스스로 서명한 Root CA 인증서를 Self Signed Certificate 라고 부른다. CA는 신뢰성이 엄격하게 공인된 기업들만이 참여할 수 있다. 공인CA와 사설CA 만약, 네이버나 다음과 같이 공개된 사이트에 접속한 클라이언트에게는 1, 2번을 모두 충족시킬 필요가 있다. 하지만 개인적인 개발이 목적이라면 사이트에 접속하는 클라이언트가 나 자신 또는 팀원 밖에 없고, 그 도메인이 그 사이트라는 것을 인지하고 있기 때문에(=SSL 인증서의 역할 1번을 이미 충족함.) SSL 인증서의 2번 역할인 암호화 기능만을 사용하려면 사설 CA를 이용하면 된다. (2번 역할인 공개키를 클라이언트에게 제공하는 것이 어떻게 암호화 기능을 하는 지는 아래의 핸드쉐이크 단계 3-3 ~ 에서 알 수 있다.) SSL 인증서의 내용 1. 서비스의 정보 (인증서를 발급한 CA, 서비스의 도메인 등) 2. 서버 측 공개키 (공개키의 내용, 공개키의 암호화 방법) SSL 인증서 전달의 개요 서버는 자기가 생성한 공개키와 함께 서비스에 대한정보를 묶어서 인증기관에 전송하면 인증기관에서 심의한 후 문제가 없으면 인증서를 서비스에 다시 제공, 그 서비스는 그 인증서를 자신의 서비스에 접속하는 사용자에게 제공 필수 기본 개념 브라우저에는 CA의 리스트(CA의 공개키 포함)가 저장되어있다. CA 리스트...

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의 핵심은 암호화이고 보안과 성능상의 이유로 두가지 암호화 기법(대칭키, 공개키)을 혼용해서 사용한다. 먼저, 대칭키 방식과 공개키 방식에 대해 알아보자. 대칭키 방식 대칭키 방식은 이름에서 알 수 있듯이 키가 대칭이다. 이 말은 전송하는 쪽과 받는 쪽이 같은 키(대칭키)를 소유하고 있다는 뜻이고, 그 대칭키를 이용하여 암호화와 복호화에 사용한다. 하지만 이 방식은 전송단에서 암호화할 때 사용했던 키를 수신단에서 복호화할 때 사용해야하므로 키를 수신단에 전달해야하는 문제가 있다. 대칭키 방식을 자물쇠 달린 택배에 비유하면 좋을 것 같다. 자물쇠 비밀번호를 설정하고 택배를 주면 택배를 받은 사람이 설정한 비밀번호를 입력하면 자물쇠가 열린다. 하지만 택배를 받는 사람이 택배를 준 사람으로 부터 비밀번호도 받아야하는 문제가 발생한다. 이것이 대칭키 방식의 문제점이라 할 수 있다. 공개키방식 공개키 방식은 대칭키 방식의 문제점을 해결하기 위해...