📖SSL = Secure Sockets Layer
- encryption-based Internet security protocol
- SSL은 웹을 통해서 전송되는 데이터를 암호화(Encrypt) 한다.
- 누군가 데이터를 중간에 가로채더라도 암호화된 의미없는 문자열만 보게 된다.
📖SSL의 작동 방식
- 두 기기의 본인 확인을 위해 두 기기 사이에 handshake라고 불리는 authentication process를 시작한다.
- 데이터에 디지털 서명(digital sign)을 남겨서 데이터 무결성(data integrity)를 제공한다
- 매 업데이트마다 점점 더 안전해 지다가 1999년에 TLS로 넘어갔다
📖TLS = Transport Layer Security
- Internet security protocol that provides privacy and data integrity
- 웹 어플리케이션과 서버 간의 통신 뿐만 아니라 이메일,메시지,VoIP(voice over IP)까지 모두 암호화가 가능하다
- 웹 어플리케이션을 데이터 유출(data breach)등의 공격으로부터 보호한다
📖 TLS 가 하는 일
- Encryption(암호화): third party가 전송하는 데이터를 숨긴다
- Authentication(인증): 정보를 교환하는 주체가 맞는지 확인
- Integrity(무결성): 데이터가 변조되거나 위조되지 않았는지 확인
📖 TLS의 동작 방식
- communication session 전에 TLS handshake를 해서 TLS connection을 맺음
TLS handshake
- 사용할 TLS 버전(TLS 1.0, 1.2, 1.3 등)을 지정
- 사용할 Cipher Suite를 결정
- 서버의 TLS 인증서를 사용하여 서버의 신원을 인증(public key로)
- 핸드셰이크가 완료된 후 메시지를 암호화하기 위한 세션 키를 생성
Cipher suite 그 세션에서 사용될 공유 암호 키 또는 세션 키와 같은 세부 정보를 지정하는 알고리즘 집합 encryption keys, session keys 같은 세부 정보를 포함 public key cryptography기술로 암호화된 채널에 맞는 세션 키를 알아낼 수 있다
public key cryptography = asymmetric cryptography.
public key와 private key 두가지 키를 사용한다
public key로 암호화한 데이터는 private key를 사용해서만 풀 수 있다
SSL/TLS certificate는 public key를 포함하고 있다 private key는 서버에 설치된다
TLS handshake는 public key를 origin server의 신원을 인증하고 , 세션 키를 만들기 위해 필요한 데이터를 교환(RSA or Diffie-Hellman)하는데에 사용된다
세션 키는 핸드셰이크가 완료된 후에 symmetric cryptography에 사용된다
클라이언트와 서버는 각 통신 세션마다 새로운 세션 키를 사용해서 악의적인 행위자가 이전 세션키를 식별하거나 도용해도 통신을 해독할 수 없게 할 수 있다
'Developing > TIL(CS)' 카테고리의 다른 글
디자인 패턴 (0) | 2024.04.17 |
---|---|
HTTP/HTTPS (0) | 2024.04.11 |
DB 로직 최소화 하기 (0) | 2024.04.05 |
쿼리 최적화 방법 Query Optimization (0) | 2024.04.05 |
TCP와 UDP (0) | 2024.04.03 |