https vs http http는 hypertext transfer protocol 의 약자다 즉 hypertext인 html을 전송하기 위한 통신규약을 의미한다 https에서 마지막의 s는 over secure socket layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 http라는 것을 짐작할수 있다 http는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 매우쉽다 예를 들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀 문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다는 것이다 이를 보안한 것이 https이다

https와 ssl https와 ssl를 같은 의미로 이해하고 있는 경우가 많ㄷ다 이거은 맞기도 하고 틀림 그것은 마치 인터넷과 웹을 같은 의미로 이해하는 것과 같ㄷ다 결론적으로 말하면 웹이 인터넷 위에서 돌아가는 서비스 중의 하나인 것처럼 https도 ssl 프로토콜위에서 돌아가는 프로토콜이다.

ssl과 tls 같은 말이다 네스케이프에 의해서 ssl이 발명되었고 이것이 점차폭넓게사용되다가 표준화 기구인 ietf의 관리로 변경되면서 tls라는 이름으로 바뀌었다 tsl 1.0은 ssl3.0을 계승한다 하지만 tls라는 이름보다 ssl이라는 이름이 훨씬 많이 사용되고 있다

ssl디지털인증서 ssl인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서다 클라이언트가 서버에 접속한직후에 다음절차를 수행하게된다 ssl과 ssl 디지털 인증서를 이용했을때의 이점은 아래와 같다. 통신내용이 공격자에게 노출되는 것을 막을수있다 클라이언트가 접속하려는 서버가 신뢰할수있는 서버인지를 판단할 수 있다. 통신내용의 악의적인 변경을 방지할 수 있다

ssl에서 사용하는 암호화의 종류 서버에 ssl인증서를 설치해서 버러로 접속하는 클라이언트가 안전하게 통신할수있도록 하는 것 ssl의 동작방법은 이를 수행하기 위해서 꼭 필요한 내용은 아니지만 이를 모르면 인증서를 사용하는 과정에서 많은 의문점이 생길것이다 자연스럽게 보안상의 허점이 생길 확룰로 높아질것이다 필자의 경험에 따르면 ssl인증서의 사용은 ssl의 동작방법에 상당히 많이 의지하기 때문에 ssl의 메커니즘을 이해하는 것이 차라리 빠른 길이었다

ssl의 핵심은 암호화다 ssl은 보안과 성능상의 이유로 두가지 암호화 기법을 혼용해서 사용하고 있는데 ssl동작방법을 이해하기 위해서는 이암호화 기법들에 대한 이해가 필요하다 이방법을 모르면 ssl의 동작벙법이 추상적으로

공개키 대칭키 방식은 단점이 있다 암호를 주고 받는 사람들사이에 대칭키를 전달하는 것이 어렵다는점이다 대칭키가 유출되면 키를 획득한 공격자는 암호의 내용을 복호화 할 수 있기 ㄸ때문에 암호가 무용지물이 되기 때문이다 이런 배경에서 나온 암호화 방식이 공개키방식이다 공개키 방식은 두개의 키를 갖게 되는데 A키로 암호화를 하면 B키로 복호화 할 수 있고, B키로 암호화하면 A키로 복호화 할 수 있는 방식이다. 이 방식에 착안해서 두개의 키 중 하나를 비공개키(private key, 개인키, 비밀키라고도 부른다)로하고, 나머지를 공개키(public key)로 지정한다. 비공개키는 자신만이 가지고 있고, 공개키를 타인에게 제공한다. 공개키를 제공 받은 타인은 공개키를 이용해서 정보를 암호화한다. 암호화한 정보를 비공개키를 가지고 있는 사람에게 전송한다. 비공개키의 소유자는 이 키를 이용해서 암호화된 정보를 복호화 한다. 이 과정에서 공개키가 유출된다고해도 비공개키를 모르면 정보를 복호화 할 수 없기 때문에 안전하다. 공개키로는 암호화는 할 수 있지만 복호화는 할 수 없기 때문이다.

이 방식은 이렇게 응용할 수도 있다. 비공개키의 소유자는 비공개키를 이용해서 정보를 암호화 한 후에 공개키와 함께 암호화된 정보를 전송한다. 정보와 공개키를 획득한 사람은 공개키를 이용해서 암호화된 정보를 복호화 한다. 이 과정에서 공개키가 유출된다면 의도하지 않은 공격자에 의해서 데이터가 복호화 될 위험이 있다. 이런 위험에도 불구하고 비공개키를 이용해서 암호화를 하는 이유는 무엇일까? 그것은 이것이 데이터를 보호하는 것이 목적이 아니기 때문이다. 암호화된 데이터를 공개키를 가지고 복호화 할 수 있다는 것은 그 데이터가 공개키와 쌍을 이루는 비공개키에 의해서 암호화 되었다는 것을 의미한다. 즉 공개키가 데이터를 제공한 사람의 신원을 보장해주게 되는 것이다. 이러한 것을 전자 서명이라고 부른다.

그럼 이해를 돕기 위해서 공개키를 이용해서 RSA라는 방식의 공개키를 사용해보자. 아래 명령은 private.pem이라는 이름의 키를 생성한다. 이 키는 1024bit 길이을 갖는다. 이 숫자가 높을수록 안전하다.

ca 신뢰된 인증서

ssl 인증서의 내용 ssl 인증서에는 다음과 같은 정보가 포함되어 있다 서비스의 정보 인증서를 발급한 ca 서비스의 도메인 서버측공개키 공개키의 내용 공개키의 암호화 방법

ca를 브라우저는 알고 있다 인증서를 이해하는데 꼭 알고 있어야 하는 것이 ca의 리스트다 브라우저는 내부적으로 ca의 리스트

ssl인즈서가 서비스를 보증하는방법 웹브라우저가 서버에 접속할때 서버는 제일 먼저 인증서르 제공한다 브라우저는 이 인증서를 발급한 ca가 자신이 내장한 ca의 리스트에 있는지를 확인한다 확인 결과 서버를 통해서 다운받은 인증서가 내장된 ca리스트에 포함되어 있다면 해당 ca의 공개키를 이용해서 인증서를 복호화한다