Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

다재다능 개발자 성장기 🚀

항해99 👩‍💻76일차 TIL 본문

항해99_6기_TIL

항해99 👩‍💻76일차 TIL

merrytang 2022. 5. 21. 20:21

HTTPS 란?

HTTPS는 사용자 컴퓨터와 방문한 사이트 간에 전송되는 사용자 데이터의 무결성과 기밀성을 유지할 수 있게 해주는 인터넷 통신 프로토콜이다.

 

알고가면 좋은 용어 정리 

1. 대칭키 

: 암호화에 쓰이는 키와 복호화에 쓰이는 키가 동일한 기법이다. 

-> 원거리에서 대칭키를 안전하게 전달하는 것이 어렵다. 

 

2. 공개키(비대칭키)

: 공개키와 개인키(비밀키)라는 2가지 키를 사용하는 기법이다.

: 개인키(비밀키)는 공개키로 암호화된 데이터를 복호화 할 수 있는 키로써 서버만이 가지고 있는 키이다. 

-> 안전하게 데이터를 주고받을 수 있지만 속도가 느리다. 

 

3. 인증서와 CA(Certificate authority)

: SSL을 적용하기 위해서는 인증서가 필요하다.

: 인증서에는 크게 서비스의 정보(CA,도메인 등)와 서버측의 공개키(공개키의 내용, 공개키의 암호화 방식)가 들어있다.

: 이러한 인증서를 발급해주는 기업을 CA라고 한다. 브라우저에는 CA리스트를 이미 가지고 있다. 

 

 

SSL HandShake

서버와 클라이언트가 통신을 연결할 때 정보를 주고받으며 신뢰할 수 있는 서버인지 확인하고 통신할 때의 암호화 방식을 정하는 등의 과정이다. 

 handShake의 목표는 서버와 클라이언트가 주고받을 데이터의 암호화 알고리즘을 결정하고, 이러한 암호화를 위한 동일한 대칭키(데이터를 암호화하는 키)를 얻는 것이다. 

 대칭키와 공개키(비대칭키)방식을 모두 사용하는 하이브리드 방식이다. 데이터 전송을 위해서는 대칭키 방식을 사용하고 대칭키를 안전하게 전달하기 위해서는 공개키 방식을 사용한다. 

 

handShack의 과정을 그림으로 보면 아래와 같다.

출처: https://mysterico.tistory.com/30

  

1. Client Hello

브라우저마다 지원하는 암호와 알고리즘과 TLS버전이 다르므로 해당 정보를 전송하며, 난수값을 생성하여 전송한다.

 

2. Server Hello

사용할 TSL 버전, 사용할 암호화 알고리즘, 난수값을 전송한다,

 

3. Certificate

CA로부터 발급받은 인증서를 전송한다.

 

4. Server Key Exchange

키 교환에 필요한 정보를 제공한다. 만약 필요치 않으면 이 과정은 생략이 가능하다.

 

5. Certificate Request

서버가 클라이언트를 인증해야할때 인증서를 요구하는 단계이다. 요청하지 않을수도 있다.

 

6. Server Hello Done

 

7. Client Key Exchange, Change Cipher Spec

pre-master-key라는 것을 전송한다. 이 키는 1,2단계에서 생성한 난수를 조합하여 생성하게 되며 대칭키로 사용하게 될 예정이다. 그러므로 안전한 전송을 위해서 공개키 방식을 사용하여 전송한다.

 

8. Change Cipher Spep

클라이언트로부터 전송받은 pre-master-key를 정상적으로 복화화 후 master-key(대칭키)로 승격 후 보안파라미터를 작용하거나 변경될 때 보내는 알림이다. 

 

'항해99_6기_TIL' 카테고리의 다른 글

항해99 👩‍💻78일차 TIL  (0) 2022.05.23
항해99 👩‍💻77일차 TIL  (0) 2022.05.22
항해99 👩‍💻75일차 TIL  (0) 2022.05.20
항해99 👩‍💻74일차 TIL  (0) 2022.05.19
항해99 👩‍💻73일차 TIL  (0) 2022.05.19