Security Protocol

hong·2022년 10월 17일
0

22 정보보호

목록 보기
6/8

🔎 Transport Layer Security(TLS)

  • 개인 정보와 데이터 보안을 용이하게 하기 위해 채택된 보안 프로토콜 (전송 계층 보안 서비스)
  • 신뢰할 수 있는 end-to-end 서비스 제공하기 위해 TCP 사용
  • 두 계층(TCP, IP)에 걸친 프로토콜
  • 기밀성, 무결성 제공
  • SSL(Secure Sockets Layer)에서 발전
  • end-to-end 보안

💡SSL(TLS) 구조
→ TCP 위에서 동작
→ 헤더와 페이로드로 구성된 record라는 자체 단위를 가짐
→ 네 개의 record 타입: user data, handshake message, alerts, change cipher spec
➕ alerts protocol
fatal: 예상못한 메세지, mac이 깨졌을 때, 압축해제 실패, handshake 실패
warning: 인증서 없음, 인증서 유효기간 만료, 인증서 폐지

👉 SSL session

  • 클라이언트-서버 사이 연결
  • handshake protocol에 의해 생성
  • 여러 SSL 연결 공유할 수 있음

👉 confidentiality

  • hanshake protocol로 정의한 공유된 비밀 키와 대칭키 암호화 사용

👉 message integrity

  • 공유된 비밀 키와 MAC을 사용
    ➕ MAC 구현 방식: Block cipher, CBC / HMAC(k||m) / 서명
  • HMAC과 비슷하지만, padding 다름

➕ SSL record 프로토콜 작업

→ 이렇게 작업된 프로토콜을 TCP 이용하여 전송


🔎 TLS Handshake Protocol

  • 클라이언트-서버 서로 인증
  • 클라이언트-서버 사이 암호화&MAC 알고리즘과 사용할 암호화 키 협상
  • 기밀성, 무결성 제공
  • 부인 봉쇄 제공x

❓과정
1. client: 통신 원하는 서버에게 자신이 지원 가능한 암호들과 랜덤 숫자 R1 전송
2. server: client가 보낸 암호들 중에서 사용할 암호(공개키/대칭키/해시 한 쌍 RSA_AES_SHA256 가장 많이 사용) 선택하고 랜덤 숫자 R2 전송
3. client: 랜덤 숫자 s 생성하여 server의 공개키로 암호화한 값, 여태까지 주고 받은 패킷들을 hash한 값을 server에게 전달. f(s, R1, R2) 암호화 하여 키 생성
4. server: 전달 받은→암호를 복호화 하여 s 얻고, f(s, R1, R2) 암호화 하여 키 생성
→ 클라이언트-서버 동일한 키 생성. 길게 생성된 키를 6부분으로 나누어서 4개의 대칭키와 2개의 IV로 사용


➕ 키 보관 장소

  • sever keystore: 서버 개인키 보관 장소
  • client truststore: 클라이언트가 신뢰하는 공개키 보관 장소




References:
https://velog.io/@saseungmin/SSLTLS-%EB%B3%B4%EC%95%88

profile
🐶 ☕️ 🧳

0개의 댓글