JUST WRITE

SSL 본문

Network

SSL

천재보단범재 2021. 9. 18. 15:15

SSL

SSL

Secure Socket Layer

  • CA(Certificate Authority) 서드 파티로부터 Server와 Client 인증하는 데 사용
  • TLS(Transport Layer Security)가 표준화되면서 SSL로 바뀜
  • TCP/IP 사용하는 통신에 적용, 전송계층(Transport Layer)에서 보안, 데이터 무결성 확보
  • Netscape사에서 발명 => IETF의 관리로 TLS로 명명(TLS 1.0은 SSL 3.0 계승)

TCP/IP에서 SSL

SSL 암호화

대칭키 Symmetric-key Cryptography

  • 동일한 키로 암호화와 복호화를 같이 하는 방식
  • DES
    • Data Encryption Standard
    • 56bit의 key를 이용하여 64bit 암호화
    • Feistel Cipher 방식 이용
    • 현재는 취약한 방식으로 사용 X

공개키 Public-key Cryptography

  • 한쌍의 키를 통해 암호화, 복호화를 하는 방식
  • RSA
    • Ron Rivest, Adi Shamir, Leonard Adleman의 이름에서 차용
    • 공개키(Public key), 개인키(Private key)를 이용
    • 공개키로 암호화하면 개인키로 복호화 -> 특정받는 사람이 있는 경우(암호화)
    • 개인키로 암호화하면 공개키로 암호화 -> 보낸 사람을 확실하게 알아야 할 경우(전자서명)

SSL 인증서

  • Client와 Server 간 통신을 제3자가 보증해주는 전자화된 문서
  • 서비스 정보(CA, 서비스 도메인, 유효기간 등), 공개키 정보(공개키 내용과 암호화 방식) 포함
  • 동작 방식
    1. Client가 Server 접속, Server가 Client에게 인증서 정보 전달
    2. Client(Web Browser)는 인증서 발급한 CA가 자신이 가지고 있는 CA 리스트에 있는지 확인
    3. 해당 CA의 공개키로 인증서를 복호화
    4. 복호화가 가능하다면 인증서는 공인된 CA에서 제공한 것으로 판단, 검증 완료

SSL CA 인증

CA

  • Certificate Authority
  • 인증서를 보장하는 공인된 민간기업
  • Root Certufucate라고도 하며 신뢰성이 엄격하게 공인된 기업만 가능
  • CA는 서비스가 제출한 인증서를 자신의 비공개키로 암호화
  • Browser는 내부적으로 CA 리스트와 각 CA 공개키를 소유
  • 점유율
    • Symantec(VeriSign, Thawte, Geotrust) -> 42.9%
    • Comodo -> 26%
    • GoDaddy -> 14%
    • GlobalSign -> 7.7%

SSL 동작 방식

  • 대칭키와 공개키를 혼합해서 사용
    • 실제 데이터는 대칭키로 암호화
    • 대칭키는 공개키로 암호화
  • 순서 : HandShake -> Transfer -> Session Close
    1. Client Hello
      • Client -> Server 데이터 전송
      • Client에서 생성한 랜덤 데이터, Client에서 지원하는 암호화 방식, Session ID(이전에 HandShake 있었던 경우)
    2. Server Hello
      • Server -> Client에 데이터 전송
      • Server에서 생성한 랜덤 데이터, Client에서 지원하는 암호화 방식 중 Server가 선택한 방식, 인증서
    3. Server Certificate - Server Hello Done
      • Client 인증서 확인을 위해 Browser에서 CA 리스트 체크
      • 없으면 경고, 있을 경우 해당 CA의 공개키로 인증서 복호화 -> 복호화 정상적으로 되면 인증 확인
    4. Exchange Pre-master Secret
      • Client에서 생성한 랜덤 데이터와 Server에서 생성한 랜덤 데이터 조합 -> Pre-master Secret 대칭키 생성
      • Pre-master Secret 키를 인증서 복호화한 공개키로 암호화
      • 암호화한 Pre-master Secret 키를 Server에 전송
    5. Master Secret - Session Key
      • Server에서 개인키로 Pre-master Secret 키 복호화
      • Server, Client 모두 일련의 과정을 토해 Master-Secret 이란 값 생성
      • Master-Secret은 Session Key값 생성, Session Key는 데이터 송수신 시에 대칭키로 사용
      • 해당 Session 만료되면 폐기

SSL 과정

 

[참고사이트]

더보기
728x90
반응형

'Network' 카테고리의 다른 글

Synchronous vs Asynchronous  (0) 2021.11.12
GET vs POST  (0) 2021.09.22
HTTP vs HTTPS  (0) 2021.09.17
Session Clustering  (0) 2021.09.02
Load Balancing  (0) 2021.08.31
Comments