CKA

TLS 이론

백셀건전지 2021. 9. 23. 17:23
  • Certificate: 두 집단의 transaction 간에 신뢰를 보증하는 용도. 통신이 암호화되었고, 누가 보낸 요청인지 인증서가 보증
  • Symmetric encryption: 서버에 요청을 보낼 때 평문을 key로 암호화하여 보내지만, key도 함께 보내 해커가 중간에서 암호문과 key를 sniff하면 위험. 같은 키로 암복호화를 하기 때문.
  • Asymmetric encryption: Private key와 public key 동시 사용. 암호문을 복호화하려면 public key에 더해서 private key가 필수적으로 필요함
  • ssh-keygen : id_rsa(private) id_rsa.pub(public)
  • 서버의 ~/.ssh/authorized_keys에 추가하면 서버는 public key로 locked되고, 내가 ssh -i id_rsa로 요청할 때에만 접근 가능
  • 다른 사용자의 접근이 필요할 때에는 다른 사용자의 public key를 authorized_keys에 등록

사용자와 서버간의 통신 암호화 방법

  1. 사용자가 처음 서버로 https 접속을 하면, 사용자의 브라우저에 서버의 public key가 저장됨.
  2. 서버가 사용자의 private key를 받기 위해서는 서버에서 openssl 명령어로 private/public key pair를 생성후, 사용자가 서버의 public key로 사용자의 private key를 암호화한 후 서버로 전송하여 해커가 key를 sniff해도 문제가 없도록 함
  3. 서버는 자신의 public key로 암호화된 사용자의 private key를 자신의 private key로 복호화함.
  4. 사용자는 자신의 private key로 암호화된 암호문만 전달하면, 서버는 복호화할 수 있게 됨.
  • 해커가 도메인을 조작해서 자신이 만든 복제 사이트로 사용자가 접속하게 해버리면, 사용자는 정보를 sniff당할 수 있음.
  • 그래서 public key를 보증하는 인증서와 함께 전송한다.
  • chrome과 같은 브라우저에는 인증서의 진위를 확인하는 메커니즘이 있음
  • Certificate Authority: 인증서가 제대로 된 인증서인지 인증하는 기관

 

  1. Certificate Signing Request : CA에 인증서 요청
  2. Validate Information: CA에서 요청한 정보에 대해서 검증
  3. Sign and Send Certificate: 인증서에 sign 후 사용자에게 자신들의 private key로 암호화하여 인증서 보냄
  • 각 CA는 자신들의 key pair를 가지고 있고, 사용자의 브라우저에 각 CA의 public key가 저장되어 있음. 각 CA의 private key로 암호화된 인증서를 사용자는 로컬 브라우저의 public key로 복호화 가능

!!!!Public Key Infrastructure!!!!

  • 1)CA, 2)서버, 3)사용자, 4)디지털 인증서를 생성하고, 분배하고, 유지하는 프로세스 등을 포함하는 infrastructure

 

  • Public key의 확장자: *.crt, *.pem
  • Private key의 확장자: *.key, *-key.pem

 

Reference

 

'CKA' 카테고리의 다른 글

Certificates API  (0) 2021.09.25
TLS Certificates in Kubernetes  (0) 2021.09.25
Authentication  (0) 2021.09.17
Cluster Maintenance  (0) 2021.09.17
Replication Controller & Replica Sets  (0) 2021.09.08