<Elastic Load Balancer>
- SSL이란?
- Secure Sockets Layer
- 인터넷 상에서 정보를 안전하게 전송하기 위한 프로토콜
- SSL이 서버와 클라이언트 사이에 안전한 접속을 만들어 주고 전송되는 데이터를 암호화해서 정보의 안정성을 보장함
- SSL을 보완한 기술로 TLS(Transport Layer Security)가 있고 우리는 사실 TLS를 사용하고 있는 건데 아직까지는 SSL로 부르고 있음
- SSL이 적용된 통신방식이 HTTPS
- HTTPS 작동 방식
- How HTTPS works - How HTTPS works
- HTTPS 작동방식을 만화로 그린 사이트다 이번 강의 수강에 앞서 이 만화를 다 읽고 왔다
우리는 왜 HTTPS가 필요할까?
- 개인 정보 보호
- 전송되는 데이터가 암호화되어 있지 않으면 중간에 누가 정보를 가로챌 수 있다
- HTTPS는 누군가 데이터를 훔쳐가는 것을 막아준다
- 무결성
- HTTPS는 A에서 B로 전송한 데이터가 중간에 손상되거나 조작되지 않게끔 해준다
- 식별
- HTTPS는 SSL 인증서를 통해 데이터를 전송할 때 정확히 데이터를 원하는 곳으로 보낼 수 있도록 연결해 줌
공개키와 비밀키(개인키)
- 암호화된 데이터는 키가 있어야 해독 가능함
- 키 없이 데이터를 보면 외계어가 나옴
- 데이터 생성 시 암호화되는 텍스트는 데이터를 처리할 때마다 늘어남
- 해독할 때는 그 단계를 반대에서부터 실행함
- 이걸 대칭키라고 하는데 공유가 어렵다는 문제점이 있음
- 그래서 비대칭키가 생김 하나는 공개키, 다른 하나는 비밀키임
- 공개키는 다른 사람과 공유할 수 있음
- 내 공개키를 공유 받은 다른 사람은 내게 데이터를 전송할 때 내가 준 공개키를 이용해서 데이터를 암호화해서 보내줌
- 나는 그 데이터를 비밀키를 이용해서 해독함
브라우저와 서버가 보안 연결을 하는 방법(핸드 셰이크)
- 브라우저는 SSL / TLS 버전 및 암호화 알고리즘 목록(cipher suite)을 서버에게 보냄
- 서버는 브라우저가 보낸 것 중 가장 좋은 SSL / TLS 버전과 암호화 알고리즘을 서버의 선호도에 따라 선택함
- 서버의 공개키가 포함된 인증서를 회신해서 브라우저는 서버를 식별할 수 있게 됨
- 브라우저는 서버의 인증서가 합법적인지 확인하고 'pre-master key'를 생성함
- 'pre-master key'는 양쪽 다 고유키를 생성할 때 사용할 수 있음
- 브라우저는 'pre-master key'를 서버의 공개키로 암호화한 다음 서버한테 보냄
- 서버는 개인키를 사용해서 'pre-master key'의 암호를 해독함
- 이제 'pre-master key'는 브라우저와 서버 간에 대칭키로 사용할 동일한 키의 역할을 함
- 브라우저가 서버와 사용할 대칭키로 테스트를 보내면 서버가 응답함 -> 연결 완료!
- 이제 브라우저와 서버 간의 모든 데이터는 남은 세션 기간동안 보호 받을 수 있음
- SSL 인증 적용해보기
- 일단 로드밸런서에 들어간다
- 오른쪽 아래에 있는 Add listener를 클릭한다
- 프로토콜을 HTTPS로 하고 보안 정책은 추천으로 했다(강의에서는 제일 오래된 정책 하던데 상관 있을지 없을지 모르겠지만 일단 추천 써있는 걸로 했고 그게 디폴트 값이다)
- 그다음 SSL 인증서를 받아야 하는데 이걸 받으려면 개인 도메인이 있어야 한다
- 그래서 지금은 개인도메인이 없는 관계로 실습을 더이상 진행할 수 없어서 다음 강의로 ~