틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다!!
Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 HTTP
HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 매우 쉽다.
예를들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀 문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다는 것이다. 이를 보안한 것이 HTTPS다.
HTTPS에서 암호화 하기 위하여 SSL, TLS을 사용한다.
이 커넥션은 클라이언트가 민감한 정보를 서버와 안전하게 주고받도록 해준다.
ex) 금융 활동, 온라인 쇼핑
SSL(Secure Socket Layer)
SSL은 보안 프로토콜이다.
프로토콜은 알고리즘이 사용되어야 하는 방식을 설명한다.
이 경우 SSL 프로토콜은 링크와 전송되는 데이터의 암호화 변수를 결정합니다.
TSL(Transport Layer Security)
SSL과 같은 말로 SSL의 변경된 이름이다. (정식명칭)
TLS 1.0dms SSL 3.0을 계승
여전히 TLS보다 SSL이라는 이름으로 많이 불린다.
SSL 인증서는 클라이언트와 서버간의 통신을 제 3자가 보증해주는 전자 문서
대칭키와 비대칭키/공개키(출처:bolee님)등을 이용한 암호화를 통해 원하는 사람끼리만 정보를 주고 받을 수 있다.
key가 없는 사람은 정보를 가져가도 복호화를 할 수 없기 때문에 정보를 얻지 못함
CA(Certificate authority)를 통해 신뢰 할 수 있는 서버인지 보장
CA(Certificate authority)
암호학에서 CA는 다른 곳에서 사용하기 위한 디지털 인증서를 발급하는 하나의 단위이다.
엄격하게 공인된 기업들이 서버가 클라이언트의 의도에 맞는지 보장하는 기업들
ex) Comodo Security Solutions, Symantec
SSL 암호화 통신의 3단계
SSL은 공개키와 대칭키를 혼합하여 사용한다.
클라이언트와 서버가 주고 받는 실제 정보는 대칭키 방식으로 암호화
대칭키 방식으로 암호화된 실제 정보를 복호화하여 사용할때 사용해는 대칭키를 공개키로 암호화 하여 클라이언트와 서버가 주고 받는다.
필자 생각
대칭키를 암호화 한 키를 공개키로 암호화하여 이중포장느낌으로 서버에 전송
handshake
핸드셰이킹(handshaking), 주고받기는 정보기술과 전기통신 및 관련 분야에서 채널에 대한 정상적인 통신이 시작되기 전에 두 개의 실체 간에 확립된 통신 채널의 변수를 동적으로 설정하는 자동화된 협상 과정
사람과 사람이 소통하는 것처럼 클라이언트와 서버도 실제 데이터를 주고 받기 전에 악수를 한다.
이 악수를 통해 서로 상대방이 존재하는지, 또 상대방 데이터를 주고 받기 위해서 어떤 방법을 사용해야하는지를 파악한다.
채널의 물리적인 확립이 잇따르며, 정상적인 정보 전송 이전에 이루어진다.
SSL 방식은 이용해서 통신하는 브라우저와 서버는 핸드쉐이크를 하는데, 이 때 SSL 인증서를 주고 받는다.
SSL은 공개키와 대칭키 방식을 혼합하여 동일한 키를 공유하지 않으면서 최대한 효율적인 컴퓨터 자원으로 암호화를 수행한다.
인증서를 받으면 사이트가 신뢰할 수 있는 사이트인지 확인
session key 값을 이용하여 서버 클라이언트는 데이터를 대칭킹 방식으로 암호화 한 후에 주고 받는다.
세션은 실제로 서버와 클라이언트가 데이터를 주고 받는 단계
서로 세션키 값을 알고 있기 때문에 복호화 가능
데이터 전송이 끝나면 SSL 통신이 끝났음을 서로에게 알려주고. 이 때 통신에서 사용한 대칭키인 세션키를 폐기