[2022] 정보 보안 - 서명의 원리 및 RSA를 활용한 공인 서명 과정 - Whitmem
[2022] 정보 보안 - 서명의 원리 및 RSA를 활용한 공인 서명 과정
개발 기타
2023-03-11 07:22 게시 a4cc815b7ac3d5343ea1

0
0
222
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
이 게시물은 2022년 작성된 게시물을 whitmem.kr에 복제한 게시물입니다.
본 게시물에 언급된 내용은 일부 특허 내용 또는 제 3자의 라이선스를 언급하고 있을 수 있습니다. 이 모든 과정은 오직 공부목적이며, 실시를 목적으로 설명하지 않습니다. 또한 틀린 내용이 있을 수 있기에 참고만 하십시오.

컴퓨터 네트워크가 이토록 발전할 수 있었던 이유는, 정보 보안 시스템도 그 만큼 같이 발전해왔기 때문이다. 그 중 제일 크게 작용한 암호화 시스템은 바로 단방향 암호화이다. 단방향 암호화는 같은 열쇠로 열고 잠글 수 있는 양방향 암호화와 달리, 다른 특징을 가진다.
1. 잠글 수 있는 열쇠와 열 수 있는 열쇠가 따로 있다. 2. 잠가진 자물쇠는, 잠글 때 사용한 키가 아닌 다른 키로만 열 수 있다.
예로, 한 자물쇠에 반드시 2개의 키가 존재하며, A키로 잠가진 자물쇠는 다시 A키로 열 수 없다. B키로만 열 수 있다. 반대로 B키로 잠가진 자물쇠는 다시 B키로 열 수 없으며, A키로만 열 수 있다.
이러한 특성은 컴퓨터 네트워크 통신에서 보안 관리에 매우 큰 역할을 한다. 기본적으로 여기서는 서명에 관해서만 언급한다.
서명
기본적으로 어떤 문서가 만들어지고, 제 3자에게 전송되는 과정에서 데이터가 변조될 수 있다. 그렇기에 서명이라는 것을 같이 하게 된다. 서명의 과정은 기본적으로 단방향 암호화의 원리를 이용해 진행된다.
대표적인 암호화 알고리즘은 RSA 라는 알고리즘이 존재한다.

예를 들어 ABC 라는 내용의 문서가 존재할 때, 문서 작성자의 컴퓨터에는 개인키, 공개키 각 쌍의 키를 생성한다. 그런 뒤, 개인키를 이용해 문서 ABC를 암호화한다. 암호화하면 그 문자가 "개인키"로 암호화된 이상한 문자열이 나올텐데, 이 과정을 서명한다로, 결과본을 서명본이라고 한다.
ABC라는 문자열을 문서 작성자 컴퓨터 개인키로 암호화하면 QWERWQQQWERTTR... 와 같은 "서명본"을 얻을 수 있다. 단방향 알고리즘의 특성에 의해 이렇게 서명본 문자열은 다시 개인키로 복호화할 수 없다. 공개키를 이용해서 복호화를 하면 다시 "ABC"라는 문자열을 얻을 수 있게 된다.
즉, ABC라는 문서 내용에 대해 개인키로 암호화 해서 QWEREWQQQ... 을 얻어낼 수 있고, 이 결과 본을 다시 공개키로 복호화 해야 원본 ABC를 얻어낼 수 있다. QWEREWQQQ 라는 문자열은 다시 개인키로 복호화할 수는 없다. 그 반대도 마찬가지다. 공개키로 암호화된 문자열은, 다시 개인키로만 복호화할 수 있다.

이러한 특성을 이용하게 되면, 문서가 위조된지 확인할 수 있게 된다. 문서 작성자가 모든 문서를 작성하고, 그 문서 결과본을 개인키로 서명한다. 그런 뒤, 서명본을 문서 아래에 첨부한다. 그리고 다른이에게 전달할 때, 자신의 공개키를 같이 전달한다.
그러면, 받는이의 입장에서는, 해당 문서가 조작되지 않은지 확인하기 위해서는, 공개키로 서명본을 복호화해 원본과 동일한지 확인하면 된다.
하지만 이 방법에는 약간의 문제가 있다. 공개키도 같이 조작되는 경우는 그 방법을 알 수 없다. 그렇기 때문에 실제로는 공개키를 같이 문서에 언급하기 보다는, 신뢰할 수 있는 ROOT 인증서를 이용한다. 이는, 신뢰할 수 있는 인증서 발급자를 미리 각 모든 컴퓨터에 등록한다. 이는 컴퓨터가 만들어질 때 부터 (정확히는 소프트웨어가 배포될 때 부터) 제공된다. (보통)

신뢰할 수 있는 발급자에 대한 공개키를 컴퓨터 설치시부터 저장해 놓는 방법이다. 예를 들어 우리가 사용하는 컴퓨터에서는 웹브라우저가 있다. https 로 접속할 때, 신뢰할 수 있는 발급자가 발급한 인증서인지 확인을 진행한다. 이러한 인증서의 공개키 데이터는 컴퓨터에 저장이 되어있다.
이러한 신뢰되는 인증서들은 각 기관마다 개인키를 소중하게 보관하고 있을 것이고, 실제 문서나 증명 프로그램, 데이터를 만들 때 마다 이러한 인증서에게 해당 원본을 보내며 (정확히는 해시) 발급을 요청한다. 발급을 요청하고 받게 되면, 문서 제작자는 발급자로부터 그에 대한 서명본을 받게 되고, 이를 일반인에게 전달하면, 일반인은 신뢰할 수 있는 루트 인증서를 기반으로(공개키) 복호화를 시도한다.
즉, A에서 ABC라는 문서를 만든 뒤, 해당 문서를 들고가 신뢰할 수 있는 인증센터에 발급을 요청한다. 발급이 완료된 후 서명본을 문서뒤에 붙인 뒤, 발급기관은 ???인증센터라고 명시를한다.
그러면 받는이 입장에서는, 자신의 컴퓨터에 기본적으로 신뢰되고 있는 저장소에 존재하는 ???인증센터라는 이름의 발급기관의 공개키를 가져와 그대로 서명 내용을 "검증"복호화하면 발급자에게 발급된 후 조작된 여부인지 확인할 수 있다.

다만 이 방법은 발급자가 매우 신뢰될 수 있는 기관이어야 하고, 신뢰할 수 있는 문서, 그리고 정당한 문서만 "발급"해준다는 조건하 이용이 가능한 방법이다.
댓글 0개
댓글을 작성하는 경우 댓글 처리 방침에 동의하는 것으로 간주됩니다. 댓글을 작성하면 일회용 인증키가 발급되며, 해당 키를 분실하는 경우 댓글을 제거할 수 없습니다. 댓글을 작성하면 사용자 IP가 영구적으로 기록 및 부분 공개됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.