PLOD

[crypto] SSL/TLS 본문

computer science/Cryptography

[crypto] SSL/TLS

훌룽이 2022. 12. 8. 13:18

1. Perfect Forward Secrecy(PFS)

위의 방식처럼 diffie- hellman 방식을 사용해서 PFS를 구현하는 방식이 있지만 DH는 Man-In-the -Middle attack에 취약하다. 이 문제를 해결하기 위해서는 각자 가지고 있는 key(a,b)를 그때 그때 소각하는 방법을 사용하는 수 밖에 없다.

*Real-­‐World Protocols

 

1)SSH :  RSA 기법을 사용한 protocol, secure tunnel을 만든다. public key Authentication 기법을 사용

2)SSL :  WEB 에서 사용 , 클라이언트가 서버를  인증, TLS 와 같은 프로토콜, 단방향 인증 프로토콜, TLS는 SSL을 포함한다, SSL은 클라이언트와 서버간의 handshake 방식을 통해 인증이 이루어 지고, digital signature을 통해 데이터 무결성을 유지.

3)IPsec : IP계층을 안전하게 보호하기 위해서 사용하는 보호기법

4)kerberos : 미국 MIT에서 만듦, 키분배센터 기능과 인증 프로토콜 모두를 포함한다, DES 사용

 

 

 

2. SSL/TLS HandShake

핸드셰이크는 클라이언트와 서버간의 메세지 교환이며,  HTTPS 웹에 처음 커넥션할 때 진행된다. 

핸드셰이크의 단계는 클라이언트와 서버에서 지원하는 암호화 알고리즘, 키 교환 알고리즘에 따라 달라진다.

일반적으로는 RSA 키 교환 알고리즘이 사용된다.

* RSA 키 교환 알고리즘 순서

 

1)클라이언트 -> 서버 메세지 전송 - 이때 핸드셰이크가 시작된다. 이 메세지에는 TLS 버전, 암호화 알고리즘, 무작위 바이트 문자열이 포함된다.

2)서버 -> 클라이언트 메세지 전송 - 클라이언트의 메세지에 응답으로 서버의 SSL인증서, 선택한 암호화 알고리즘, 서버에서 생성한 무작위 바이트 문자열을 포함한 메세지를 전송한다.

3)인증 - 클라이언트가 서버의 SSL인증서를 인증 발행 기관에 검증한다. 

4)예비 마스터 암호 - 클라이언트는 무작위 바이트 문자열을 공개 키로 암호화된 premater secret 키를 서버로 전송한다.

5)개인 키 사용 - 서버가 premaster secret 키를 개인 키를 통해 복호화한다. (개인 키로만 복호화 가능)

6)세션 키 생성 - 클라이언트와 서버는 클라이언트가 생성한 무작위 키, 서버가 생성한 무작위 키, premaster secret 키를 통해 세션 키를 생성한다. 양쪽은 같은 키가 생성되어야 한다.

7)클라이언트 완료 전송 - 클라이언트는 세션 키로 암호화된 완료 메세지를 전송한다.

8)서버 완료 전송 - 서버도 세션 키로 암호화된 완료 메세지를 전송한다.

9)핸드셰이크 완료 - 핸드셰이크가 완료되고, 세션 키를 이용해 통신을 진행한다.

더보기

 

Summary
클라이언트 서버에게 메세지 전송 -> 서버가 클라이언트에게 메세지 전송 -> 클라이언트 인증

-> 서버 개인키 사용 -> 서버와 클라이언트 세션키 생성 -> HandShake 완료

 

'computer science > Cryptography' 카테고리의 다른 글

[crypto] Web Security  (0) 2022.12.10
[crypto] Software Security  (0) 2022.12.08
[crypto]Authentication Protocols  (0) 2022.12.07
[crypto] Hash  (0) 2022.12.05
[crypto]Diffie-­‐Hellman  (0) 2022.12.05
Comments