공인인증서

공인인증서의 역할

오프라인에서 주민등록증으로 신원확인을 하듯이 온라인에서 실제 내가 맞는지 신원확인

주민등록증은 동사무소에서 발급하듯, 공인인증서는 법으로 정해진 인증기관에서 발급함


비대칭키 방식

암호화/복호화에 같은 키를 사용하면 대칭키(AES, DES등) 방식, 다른키를 사용하면 비대칭키(RSA등)라고 함

비대칭키에서 암호화/복호화에 사용되는 두 개의 키를 공개키/개인키라 칭함


인증기관의 역할

해킹방지를 위해 인증기관은 공인인증서를 인증기관의 개인키로 암호화함

그리고서 암호화된 인증서와, 인증기관의 공개키는 모두에게 알려줌

암호화된 인증서가 공개키로 풀린다는 사실을 통해 인증기관의 개인키로 암호화된 문서라는게 입증됨 ← 중요

약간의 디테일

  • 전체 인증서를 암호화하면 느리므로, 실제로는 HASH하여 얻어진 해시값(MD, Message Digest)에 대해서 암호화 함
  • 인증기관의 공개키를 모두에게 알려준다고 썼는데, 실제로는 차상위 기관의 인증서 안에 인증기관의 공개키가 들어있는 체인 구조임
  • 인증기관 체인을 따라 올라가다보면 최상위 인증기관(Root CA)이 존재하는데, 이건 스스로 인증함
  • Root CA를 포함한 전체 체인을 위조하면 해킹될 수 있으나, OS에서 Root CA는 별도 검증을 해주므로 비교적 안전함
  • 후술하겠지만, 전자서명을 위해 개인의 공개키를 인증서 내용에 집어넣어서 같이 인증해줌



전자서명

일반적인 설명

오프라인에서 주민등록증만 필요한게 아니라, 문서마다 인감날인이나 서명이 필요한 경우가 있듯이,

온라인에서도 신원확인을 위한 공인인증서만 필요한게 아니라, 문서마다 인감날인 또는 서명에 해당하는 전자서명이 필요


기술적인 설명

전자서명은 원본문서를 HASH함수를 통해 짧게 줄인 해시값(MD, Message Digest)에 대해서 개인키로 암호화한 값을 의미

원본문서의 진위여부를 검증하고자 하는 측에서는 이 전자서명값을 공개키로 복원하고,

자체적으로 원본문서를 같은 방식으로 HASH함수를 통해 짧게 줄인 해시값(MD)과 비교하여 같은지 여부를 보는 식으로 진위여부를 판단함

(아래는 금결원 사이트의 설명그림 https://www.yessign.or.kr/home/subIndex/395.do)

공인인증서에서 개인의 공개키/개인키?

위의 공인인증서 설명에 나온 개인키와 공개키는 모두 인증기관의 것인데,

전자서명을 하기위해서는 개인의 공개키와 개인키가 필요함

개인의 공개키는 다음과 같이 인증서 내부에 포함되어 있으며,

개인의 개인키는 인증서가 저장되는 폴더의 signPri.key 파일에 저장되어 있고, 공인인증서 암호를 통해 다시한번 암호화 되어 있다.


반응형

+ Recent posts