Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

bbqmsg 님의 블로그

디지털 인증서의 원리와 생성 과정 본문

통신

디지털 인증서의 원리와 생성 과정

bbqmsg 2024. 10. 22. 16:09

보안이 필요한 인터넷 네트워크상에서는 상대방에게 데이터를 전달할 때엔 평문을 암호문으로 바꾸는 암호화 및 데이터를 보낸 사람과 받는 대상이 당사자가 맞음을 증명하는 사용자 인증이 필요합니다.

 

이때 많이 사용하는 방식이 공개키 기반의 비대칭키 암호화(Asymmetric Encryption) 방식입니다. 대칭키 암호화 방식은 공개키와 비밀키(개인키) 2개의 key를 사용하여 메시지를 암호화 및 복호화하는 방식을 의미합니다.

 

 

보기엔 멀쩡해 보이지만, 생각해보면 위 그림에도 여러가지 문제들이 있습니다.

 

  • 철수가 정말 철수가 맞음을 영희는 어떻게 믿고 보안 통신을 할 것인가?
  • 길동이가 본인이 철수라고 속이는 것을 영희는 어떻게 판단할 수 있나?
  • 철수가 영희에게 건네준 Key는 정말 철수가 만들었는지 어떻게 믿을 수 있나?
  • 철수가 실수로 영희에게 잘못 만들어진 Key를 전달하면 영희는 어떻게 알 수 있나?

만약, 철수와 영희 사이에 둘 다 믿을만한 누군가가(부모님 혹은 선생님) 철수와 영희의 신분과 소유한 키가 정상적임을 증명해준다면 철수와 영희는 더욱 믿을 수 있는 통신을 할 수 있게 됩니다.

 

디지털 인증서는 무엇인가?

디지털 인증서(Digital Certificate)는 보안이 필요한 통신에서 상대방이 통신하고자 하는 대상이 맞음을 확인해주는 역할을 합니다.

 

디지털 인증서의 목표는 인증서 소유주의 신분과, 인증서에 포함된 공개키(public key)가 그 소유주 것이 맞음을 증명해줍니다. 이를 위해, 모두가 신뢰할 수 있는 제삼자 인증 기관(CA, Certificate Authority)의 역할이 필요합니다.

 

CA는 디지털 인증서를 발급해주는 신뢰할 수 있는 기관입니다. 일반적으로 잘 알려진 기관이며 금융 기관, 공공기관, 혹은 소프트웨어 회사 등이 CA 역할을 하고 있습니다.

 

디지털 인증서는 어떻게 생성하고, 사용하는가?

철수와 영희가 서로의 신분을 확인하고, 보안적으로 안전한 통신을 해야 한다고 가정해봅시다.

 

  1. 철수는 공개키와 비밀키(개인키) 한 쌍을 생성하여 소유한다.
  2. 철수는 다양한 방법으로 본인이 철수가 맞음을 CA에게 증명한다.
  3. 철수는 자신의 공개키가 본인 것이 맞음을 인증하는 인증서를 CA로부터 발급받는다.
  4. 철수는 발급받은 인증서를 영희에게 전달한다. 인증서에는 철수의 공개키가 포함되어 있다.
  5. 영희는 자신이 신뢰하는 CA(2번 CA와 동일한 기관)가 발급한 인증서가 맞는지 확인한다.
  6. 영희는 인증서에 포함된 철수의 공개키로 데이터를 암호화하여 철수에게 전달한다.
  7. 철수는 1번에서 보유한 비밀키(개인키)로 데이터를 복호화한다.

 

 

디지털 인증서 생성 과정을 좀 더 기술적으로 설명한다면?

1번에서 철수는 공개키/비밀키 한 쌍을 만들어야 하는데, 보통은 키를 생성하는 소프트웨어를 사용하거나 RA가 대신 키 쌍(key pair)을 만들어줄 수 있습니다. 이때엔 생성한 키와 자신을 입증하는 정보(이름, 전화번호, 기타 등등)를 함께 RA(CA가 임무를 맡긴 기관)에 보냅니다.


모든 확인이 완료되면 RA는 철수의 CSR 내용을 CA로 전달하고 CA는 (필요하다면 한 번의 확인을 더 거치고) 디지털 인증서를 X.509 표준 기술 등을 이용하여 생성합니다. CA는 완성된 인증서를 철수에게 전달하고 사본 1부를 CA 내부에 있는 Certificagte Directory에 보관합니다.

 

X.509 방식으로 생성한 디지털 인증서는 위의 형식에서 알 수 있듯이 인증서 버전, 고유 넘버, 서명 알고리즘, 유효 기간, 공개키 정보, 발행자, 대상자, 확장 정보 등이 담겨있습니다.

'통신' 카테고리의 다른 글

[통신] MQTT이란  (0) 2024.10.23