[개발일지]210825_TIL : 디지털 서명, 전자인증서

Gooder·2021년 8월 25일
1

개발일지

목록 보기
20/28
post-thumbnail

인증

기사 스크랩
위 기사들을 읽어보면 인증서 시장에 후발주자로 등장한 카카오와 네이버가 가입자 수를 빠르게 늘려가는 것에대한 얘기가 나옵니다.
카카오 지갑은 메신저 플랫폼을 기반으로 가입자 수를 늘려감과 동시에 코로나 백신 예방접종, QR 체크인 등 널리 쓰이면서 더욱 빠르게 가입자 수를 늘려가고 있습니다.
네이버는 국내 1위 포털 플랫폼을 기반으로 다양한 생활밀착형 서비스를 제공하면서 몸집을 키우고있습니다.
이 둘의 공통점은 사용자의 편의를 극대화한다는 것입니다.
카카오 지갑과 네이버 뿐만 아니라 페이코, 카카오페이, 토스, 국민은행 역시 인증서 시장에서 경쟁력을 키워나가고 있습니다.
위에서 언급한 기업들은 모두 각자만의 방식으로 고객의 편리성을 극대화하는 전략을 펼치고 있습니다.
그렇기 때문에 개발자로서 기술력 뿐만 아니라 고객의 불편함을 이해하고, 어떻게하면 더 편리하게 사용할 수 있을지 생각하는 능력도 키워야합니다.

그렇다면 많은 기업에서 열을 올리고 있는 전자 서명과 전자인증서는 무엇일까요??

디지털 서명

전자 서명은 서명자가 전자문서에 한 서명이 정말 그 사람이 했다는 것을 보장해주는 것입니다. 그 중 사람이 쓴 서명, 음성 인쇄 또는 전자 이미지 형식의 기호를 나타내는 서명이 아닌 암호화된 메세지 형태의 전자 서명을 디지털 서명이라고 합니다. 디지털 서명은 위조가 불가능하기 때문에 서명자를 기록된 거래의 문서와 안전하게 연결합니다. 국내에서는 전자 서명과 디지털 서명을 혼용해서 사용하는 것 같습니다. 전자 서명의 구현 방법 중 보안성이 높은게 디지털 서명이라서 그런 것 같습니다. 그렇기 때문에 이번 게시글에서는 디지털 서명이라는 용어를 사용해 설명하겠습니다.

디지털 서명은 PKI를 이용해서 구현합니다.
설명에 앞서 PKI가 무엇인지 먼저 알아보겠습니다.

PKI

PKI(공개 키 인프라)는 공개 키와 개인 키라는 한 쌍의 키를 포함합니다. 이런 방식을 비대칭키 알고리즘이라고 합니다. 이름에서 유추할 수 있듯, 개인 키는 공유되지않는 키로 오직 서명자만이 유일하게 전자문서에 사용할 수 있습니다. 공개 키는 공개적으로 사용이 가능하며, 서명자의 전자 서명을 검증해야하는 사람들이 사용합니다.

비대칭키 알고리즘
Encryption과 Decryption을 할 때 서로 다른 키를 쓰는 알고리즘으로 대표적인 알고리즘으로는 RSA가 있습니다.

PKI는 다음과 같은 구조를 가지고있습니다.

출처 : https://wiki.processmaker.com/3.1/Public_Key_Infrastructure_PKI_for_ProcessMaker

다시 디지털 서명의 동작 방식에대한 설명으로 돌아가보겠습니다.
서명자가 문서에 전자적으로 서명할 때, 서명자의 개인 키를 사용해서 서명을 생성합니다. 이 개인 키는 서명자가 항상 안전하게 보관합니다.
수학적 알고리즘을 통해 암호처럼 작동하고, 서명된 문서와 일치하는 해시를 생성하고, 그 해시값을 암호화합니다. 암호화된 결과 데이터가 바로 디지털 서명입니다. 이때 서명에는 문서에 서명한 시간도 표시되기 때문에, 서명 후 문서가 변경되면 디지털 서명이 무효화됩니다.

이를 그림으로 표현하면 다음과 같습니다.
출처 : https://www.docusign.com/how-it-works/electronic-signature/digital-signature/digital-signature-faq

전자 인증서

전자 인증서는 디지털 서명에 포함된 공개 키의 소유권을 증명하는데 사용되는 전자 문서입니다. 전자 인증서는 공동 인증서라고도 합니다. 이 인증서에는 키에 대한 정보, 소유자의 신원정보, 인증서의 내용을 확인한 발급자의 디지털 서명이 포함됩니다.
인증 기관(CA)에서 전자 인증서를 발급하며, CA는 보증인의 역할을 합니다. 그렇기 때문에 인증서는 신뢰할 수 있는 기관에서 발급해야하는 것입니다.

오늘은 일상에서 정말 자주 사용하지만 내부적으로 어떻게 동작하는지 몰랐던 인증서에대해서 알아봤습니다.
글 읽어주셔서 감사합니다.

profile
세상을 변화시킬 신스틸러 서비스를 만들고싶은 개발자 Gooder 입니다.

0개의 댓글