"서명"의 두 판 사이의 차이
잔글 |
잔글 (→같이 보기) |
||
(사용자 3명의 중간 판 10개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''서명'''( | + | '''서명'''(signature)이란 기본적으로 이름을 기록하는 행위로, 누군가의 이름, 가명 또는 누군가가 문서에 기록했다는 증거, 자기 동일성을 위한 표시를 의미한다. 사인(sign) 혹은 시그니처라고도 부른다. 사이버 공간에서의 서명에서는 [[전자서명]] 또는 [[디지털서명]] 등으로 구분되어 있고, 이 역시 기본적으로 문서에 서명한 서명자를 확인하고 서명자가 해당 문서에 서명했다는 사실을 나타내는 데 이용한다. |
== 개요 == | == 개요 == | ||
− | 서명은 기본적으로 누구인지를 확인하게 만들어주는 징표이다. 서명엔 법적인 의사표시를 나타내는 것이 가능하기 때문에 | + | 서명은 기본적으로 누구인지를 확인하게 만들어주는 징표이다. 서명엔 법적인 의사표시를 나타내는 것이 가능하기 때문에 참정권에서 투표나 청구와 더불어 정치 참여 수단의 하나로 쓰인다. 한국에서 서명이 정치적인 의사표시로 쓰이는 경우는 주민 투표 발의를 위한 서명운동 정도가 있으며 그 외에 서명운동은 시민운동의 활동 등에서 나타나지만 법적인 효력은 없다. 서명은 문서를 작성한 것이 누구인지를 확인시켜줄 장치가 필요해서 생겨났다. 신원을 증명하는 수단의 일종으로 서명을 사용했고, 계약에서의 서명은 계약을 체결하는 것을 본인이 직접 확인했다는 의미로 서명을 한다. 이는 법적인 효력을 발휘한다. 컴퓨터와 인터넷이 발달하면서 이처럼 신원을 증명하는 수단이 디지털 상에서도 필요하기 시작해졌다. 이런 과정에서 만들어진 것이 [[전자서명]]과 [[디지털서명]]이다. |
− | |||
− | |||
− | 서명은 문서를 작성한 것이 누구인지를 확인시켜줄 장치가 필요해서 생겨났다. 신원을 증명하는 수단의 일종으로 서명을 사용했고, 계약에서의 서명은 계약을 체결하는 것을 본인이 직접 확인했다는 의미로 서명을 한다. 이는 법적인 효력을 발휘한다. 컴퓨터와 인터넷이 발달하면서 이처럼 신원을 증명하는 수단이 디지털 상에서도 필요하기 시작해졌다. 이런 과정에서 만들어진 것이 [[전자서명]]과 [[디지털서명]]이다. | ||
== 특징 == | == 특징 == | ||
− | + | 인터넷상에서의 서명으로 흔히들 듣는 것이 전자서명과 디지털서명이다. 이는 같은 것으로 인식될 수 있지만, 실제로는 차이점이 있다. | |
=== 전자 서명 === | === 전자 서명 === | ||
− | + | 전자서명은 계약 또는 기타 기록에 첨부된 서명으로 서명하려는 사람의 실행, 채택하는 전자기호 및 프로세스라고 정의된다. 기본적으로 생각하는 손으로 작성하는 서명을 그대로 디지털화한 것을 의미한다.<ref name="차이점">유서트, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ucert&logNo=221193365141&proxyReferer=https%3A%2F%2Fwww.google.com%2F 전자 서명(Electronic Signatures)과 디지털 서명(Digital Signatures)]〉, 《네이버 블로그》, 2018-01-25</ref> 문서 내용이나 조건을 확인하는데 사용할 수 있다. 특정 전자 문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보를 말한다. 또한 서명된 전자 문서의 위˙변조 사실을 알 수 있도록 한다. 전자서명은 인감도장의 역할을 하는 '생성'과 인감증명의 역할을 하는 '검증' 등 한 쌍의 전자서명키로 구성되는데 생성키는 서명자만 보관해서 사용하고, 검증키는 정보통신망을 통해 누구나 알 수 있도록 공개된다. 전자서명에 대한 인증은 한국증권전산(증권분야), 금융결제원(금융분야), 한국정보인증(전자거래분야), 정부전산정보관리소(행정분야) 등 4개 공인인증기관에서 하게 된다. 인증받은 전자서명키로 서명한 전자문서에서 문제가 생길 경우에는 국가가 책임을 진다. 특히 암호화 기술이 이용되기 때문에 당사자 외에는 정보가 유출되지 않아 전자상거래에서 활발하게 사용된다. {{자세히|전자서명}} | |
− | |||
− | 전자서명은 인감도장의 역할을 하는 '생성'과 인감증명의 역할을 하는 '검증' 등 한 쌍의 전자서명키로 구성되는데 생성키는 서명자만 보관해서 사용하고, 검증키는 정보통신망을 통해 누구나 알 수 있도록 공개된다. 전자서명에 대한 인증은 한국증권전산(증권분야), 금융결제원(금융분야), 한국정보인증(전자거래분야), 정부전산정보관리소(행정분야) 등 4개 공인인증기관에서 하게 된다. 인증받은 전자서명키로 서명한 전자문서에서 문제가 생길 경우에는 국가가 책임을 진다. 특히 암호화 기술이 이용되기 때문에 당사자 외에는 정보가 유출되지 않아 전자상거래에서 활발하게 사용된다. | ||
전자서명의 요구사항은 다음과 같다. | 전자서명의 요구사항은 다음과 같다. | ||
23번째 줄: | 18번째 줄: | ||
=== 디지털 서명 === | === 디지털 서명 === | ||
− | + | 디지털서명이란 첨단 기술로 보안이 강화된 [[전자서명]]의 한 종류로서, [[개인키]]와 [[공개키 암호]](비대칭 암호화라고도 불림)를 이용한 전자서명이다. 송신자의 개인 키를 사용하여 서명을 보내면 수신 측에서는 송신자의 공용키를 이용해 보내온 메시지를 해독한 다음 이를 보관하게 되고, 송신자는 디지털 서명을 통해 본인임을 인증, 수신인은 해당 메시지가 위, 변조되지 않았음을 확인한다. 그리고 [[블록체인]]에 기록되는 데이터의 보안 및 무결성을 보장하는 주요 측면 중 하나이다. 예를 들어 송신자(A), 수신자(B)라 칭하게 된다면, A는 B에게 데이터를 보낼 때 A의 개인 키로 문서를 암호화하여 B에게 보내고 B는 A의 공개키로 복호화한 후, 그것이 정말 A가 보낸 것이 맞는지 확인을 하는 방식이 디지털 서명이다. 디지털 서명은 [[휫필드디피]](Whitfield Diffie)와 [[마틴헬만]](Martin Hellman)이 1976년 처음으로 설명했다. 하지만 그것은 아직 확실하지 않은 추측이었다. 그 이후 [[로널드리베스트]] (Ron Rivest)와 [[아디샤미어]] (Adi Sh amir), [[레오나르도아델만]](Leonard Ad leman)이 디지털 서명에 사용될 수 있는 [[RSA]] 알고리즘을 발명하였다. 하지만 아직도 개념만 증명하는 단계였다. 디지털 서명을 제공하기 위하여 처음으로 판매된 소프트웨어는 Lotus Notes 1.0이었고 [[RSA]] 알고리즘을 사용하여 제작되었고 1989년에 출시되었다. 그 이후로 계속해서 디지털 서명 기법이 개발되었는데, [[Lamport 서명]]부터 [[머클서명]], [[Rabin 서명]] 등이 개발되었다. | |
− | 디지털 서명은 | + | 디지털 서명은 데이터의 신뢰성을 확인하는 데 사용되는 암호화 출력이고, 서명 키를 사용하여 원시 데이터에 대한 서명을 생성하는 서명 작업, 서명 키를 알지 못하는 사람이 서명을 검증할 수 있는 확인 작업이 있으며, 디지털 서명은 공개키 암호화라고도 하는 비대칭 암호화를 사용한다. 비대칭 키는 공개키/비공개 키 쌍으로 구성되며, 비공개 키는 서명을 만드는 데 사용되고, 해당 공개키는 서명을 확인하는 데 사용된다.<ref name="구">구글클라우드 공식 홈페이지 -〈http://a.to/19oLuJq〉 </ref> 메시지 인증 방식은 송수신 자의 메시지 교환을 제3자로부터 보호할 수 있다. 그러나 송수신 자 간의 서로를 보호할 수 없다. A가 B에게 메시지 M을 보냈는데 B가 M을 위조하여 N을 받았다고 주장할 수 있다. 혹은 A가 B에게 메시지 M을 보내놓고 그런 메시지를 보낸 적이 없다고 부정할 수 있다. 즉 메시지 인증 방식은 신뢰가 깨진 상태에는 대응을 못 한다. 디지털 서명이 제공한다, 저자, 날짜 및 서명 시간, 메시지 내용 인증, 분쟁 해결을 위한 제3자의 확인이 있다. 비트 패턴은 서명되는 메시지에 의존된다. [[forgery]]와 [[denial]]을 방지하기 위해 송신자의 고유한 정보를 사용해야 하고 서명을 만드는 것이 쉬워야 하고 쉽게 인식하고 증명해야 하며, 계산상 불가능하도록 위조를 못 하게 해야 한다. 기존 디지털 서명에 새로운 메시지로 바꿀 수 없고, 주어진 메시지에 대한 사기성 디지털 서명을 만들 수 없으며, 저장소에 디지털 서명의 사본을 보관하는 것이 실용적이다. 디지털 서명은 서명의 진위 여부가 아니라 특정 서명자와 특정 메시지 간에 결부되어있다는 사실을 증명하는 것이다. 즉, 문서에 기재되는 서명의 위조 방지보다는 후에 서명된 그 문서에 대해 변경 행위의 검출에 주안점을 둔 것이다. {{자세히|디지털서명}} |
− | |||
− | 디지털 서명은 서명의 진위 여부가 아니라 특정 서명자와 특정 | ||
=== 링 서명 === | === 링 서명 === | ||
− | + | 링서명(ring signature)은 사용자의 [[공개키]]를 섞어 특정 사용자를 식별하지 못하게 해 사용자를 추적 불가능하게 만드는 서명 기술이다. 블록체인 기술을 활용할 때, 두 가지의 큰 장애물이 있다. 하나는 확장성, 또 다른 하나는 개인정보보호이다. 확장성의 경우는 많은 블록체인 플랫폼들이 고민하고 있는 중대한 문제로, [[POS]], [[DPOS]], [[POA]] 등의 많은 방식으로 해결책을 고민하고 있다. 또 다른 하나인 개인정보보호는 확장성에 비해 비교적 해결 가능성이 있는 문제지만, 모든 케이스에 적용할 수 있는 방법은 없기 때문에 각 케이스에 맞춘 부분적인 해결법을 적용해야 한다.<ref>김병하, 〈[https://medium.com/humanscape-tech/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EA%B3%BC-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EB%B3%B4%ED%98%B8-d056863045f8 블록체인과 개인정보보호]〉, 《미디엄》, 2018-08-14</ref> | |
− | 고리서명이라고 | + | 고리서명이라고 불리기도 하는 링서명은 거래자 결제키를 [[블록체인]]에서 접근 가능한 공개키들과 섞어 잠재적 사용자들의 키를 링으로 만들어 보여주는 방법이다.<ref>관쨩, 〈[https://blog.naver.com/nonexit/221165612574 비트코인 종류, 비트코인 모네로 정보/요약]〉, 《네이버 블로그》, 2017-12-18</ref> 이를 통해 외부자가 거래의 대상자를 특정할 수 없도록 만들어준다. 링을 통해서 보이는 사용자들은 모두 거래에 적용 가능한 사람들이기 때문에 외부자는 거래 대상자를 골라낼 수가 없다.<ref>수석 매니저, 〈[https://blog.naver.com/sailrol/221428951614 모네로코인 호재, 전망, 일정(리치코인)]〉, 《네이버 블로그》, 2018-12-28</ref> 또한 거래할 때 송금자만 이용 가능한 일회성 주소가 발급된다. 이에, [[코인]]을 받는 사람도 누가 보낸 건지 추적을 할 수 없다.<ref>crzymon, 〈[https://steemit.com/coinkorea/@crzymon/monero-xmr Monero(XMR) 모네로 코인 정리 및 요약]〉, 《스팀잇》</ref> 이렇게 거래자의 신원을 보호하는 한편 링 기밀거래 기술로 거래액 보안이 될 수 있는 서비스를 제공한다. {{자세히|링서명}} |
=== 전자서명과 디지털서명의 차이점 === | === 전자서명과 디지털서명의 차이점 === | ||
* '''[[전자서명]]''' : 전자서명은 계약 또는 기타 기록에 첨부되거나 관련이 있는 문서의 내용이나 조건을 확인하는 데 주로 사용된다. 전자서명은 계약 또는 기타 기록에 첨부된 서명으로 서명하려는 사람의 실행, 채택하는 전자기호 및 프로세스라고 정의되며, 기본적으로는 손으로 작성된 서명을 디지털화한 것이라 볼 수 있고 문서 내용이나 조건을 확인하는 데 사용한다. | * '''[[전자서명]]''' : 전자서명은 계약 또는 기타 기록에 첨부되거나 관련이 있는 문서의 내용이나 조건을 확인하는 데 주로 사용된다. 전자서명은 계약 또는 기타 기록에 첨부된 서명으로 서명하려는 사람의 실행, 채택하는 전자기호 및 프로세스라고 정의되며, 기본적으로는 손으로 작성된 서명을 디지털화한 것이라 볼 수 있고 문서 내용이나 조건을 확인하는 데 사용한다. | ||
+ | |||
* '''[[디지털서명]]''' : 디지털 서명은 메시지를 확인하는 데 사용되고, 기본적으로 메시지의 암호화 된 해시이다. 수신자는 수신된 메시지를 해싱하고 이 값을 암호 해독된 서명과 비교하여 메시지가 조되었는지 확인할 수 있으며, 서명을 해독하려면 해당 공개 키가 필요하다. 디지털 서명은 서명을 한 사람이 본인이 맞는지, 문서의 내용이 위조 혹은 변조가 된 것은 아닌지 확인하는 데 주로 사용된다. 한마디로 신뢰할 수 있는 CA 인증기관이 신원을 확인하는 과정에서 공증인 역할을 하는 것으로, 인증기관은 사용자의 신원을 [[PKI]] 기반 디지털인증서에 연결하여 디지털 서명을 문서 및 [[클라우드]] 기반 서명 [[플랫폼]]에 적용할 수 있도록 하는데 이때 디지털 서명을 문서에 적용하면 암호화 작업이 진행되고, 이 작업이 디지털 인증서와 서명된 데이터를 하나의 유일한 지문으로 바인딩하는 것이다. | * '''[[디지털서명]]''' : 디지털 서명은 메시지를 확인하는 데 사용되고, 기본적으로 메시지의 암호화 된 해시이다. 수신자는 수신된 메시지를 해싱하고 이 값을 암호 해독된 서명과 비교하여 메시지가 조되었는지 확인할 수 있으며, 서명을 해독하려면 해당 공개 키가 필요하다. 디지털 서명은 서명을 한 사람이 본인이 맞는지, 문서의 내용이 위조 혹은 변조가 된 것은 아닌지 확인하는 데 주로 사용된다. 한마디로 신뢰할 수 있는 CA 인증기관이 신원을 확인하는 과정에서 공증인 역할을 하는 것으로, 인증기관은 사용자의 신원을 [[PKI]] 기반 디지털인증서에 연결하여 디지털 서명을 문서 및 [[클라우드]] 기반 서명 [[플랫폼]]에 적용할 수 있도록 하는데 이때 디지털 서명을 문서에 적용하면 암호화 작업이 진행되고, 이 작업이 디지털 인증서와 서명된 데이터를 하나의 유일한 지문으로 바인딩하는 것이다. | ||
+ | |||
# 인증된 문서이며 출처가 분명하다. | # 인증된 문서이며 출처가 분명하다. | ||
# 변경 사항이 있을 경우 서명은 유효하지 않은 것으로 표시되므로 문서가 변조되지 않음을 증명해 준다. | # 변경 사항이 있을 경우 서명은 유효하지 않은 것으로 표시되므로 문서가 변조되지 않음을 증명해 준다. | ||
# 신뢰할 수 있는 기관에 의해 확인된다. | # 신뢰할 수 있는 기관에 의해 확인된다. | ||
+ | |||
* '''[[디지털인증서]]''' : 디지털 인증서는 공개 키를 사람 또는 다른 개체에 바인딩하는 데 사용되고, 인증서가 없으면 받는 사람이 공개 키가 보낸 사람인지 여부를 확인할 수 없기 때문에 쉽게 서명을 위조 할 수 있다. 인증서 자체는 VeriSign과 같은 인증 기관인 신뢰할 수 있는 제3 자에 의해 서명된다.<ref>〈[https://codeday.me/ko/qa/20190320/105128.html 디지털 서명 – 디지털 서명과 디지털 인증서의 차이점은 무엇입니까?]〉, 《코드로그》, 2019-03-20</ref> | * '''[[디지털인증서]]''' : 디지털 인증서는 공개 키를 사람 또는 다른 개체에 바인딩하는 데 사용되고, 인증서가 없으면 받는 사람이 공개 키가 보낸 사람인지 여부를 확인할 수 없기 때문에 쉽게 서명을 위조 할 수 있다. 인증서 자체는 VeriSign과 같은 인증 기관인 신뢰할 수 있는 제3 자에 의해 서명된다.<ref>〈[https://codeday.me/ko/qa/20190320/105128.html 디지털 서명 – 디지털 서명과 디지털 인증서의 차이점은 무엇입니까?]〉, 《코드로그》, 2019-03-20</ref> | ||
+ | |||
+ | == 활용 == | ||
+ | [[파일:블록체인에서_디지털서명.png|오른쪽|400픽셀]] | ||
+ | |||
+ | === 블록체인 === | ||
+ | 서명은 [[블록체인]]에서 많이 사용되고 있다. 블록체인에서는 거래를 전송할 때 디지털 서명을 이용한다. 거래 내역을 암호화하고, 서명한 거래 내용과 함께 서명에 사용된 개인키와 쌍을 이루는 공개키를 같이 전송한다. 이 거래의 수신자는 거래 내용과 함께 수신된 공개키로 거래 내용을 열어서 거래 내용의 원본과 동일한지 비교하게 된다. 비교했을 때 두 거래 내용이 동일하다면 공개키 주인이 보낸 것임을 확신할 수 있게 되는 것이다. <ref name="이타인">이타인, 〈[https://opentutorials.org/course/2865/16863 디지털 서명]〉, 《오픈튜토리얼스》, 2017-07-16</ref> 디지털서명은 블록체인에서 [[비대칭키]]와 [[해시함수]]를 이용해서 다음과 같은 방식으로 데이터의 진위 여부를 확인할 수 있게 해준다. 블록체인에 담겨 있는 모든 거래 정보에는 디지털 서명이 포함되어 있어서 거래 정보에 대해 신뢰할 수 있다.<ref>HomoEfficio, 〈[http://a.to/19k7Hy4 블록체인 한 번에 이해하기]〉, 《깃허브》, 2017-11-19</ref> | ||
+ | |||
+ | === 코드서명 === | ||
+ | 또한 이러한 서명기술은 응용프로그램을 연구, 개발하고 배포하는 개발자들에게도 유용하게 사용된다. 바로 [[코드서명]](Code-Sign)이라는 기술이다. 코드서명은 응용프로그램의 코드에 서명을 해서 제대로 된 인증절차를 거쳐 배포되고 있음을 확인할 수 있게 하는 것이다. 이는 응용프로그램을 배포하는 배포자가 너무도 많이 때문이다. 이렇게 엄청나게 많은 배포자가 배포하게 되면 여러가지 프로그램을 설치하는 사용자 입장에서는 어떤 프로그램이 신뢰할 수 있는지 판단하기 힘들다. 코드서명은 [[안드로이드]] 등 모바일 프로그램에서도 폭넓게 적용된다. | ||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
− | * 유서트, 〈[http://a.to/19k0kWF 전자 서명(Electronic Signatures)과 디지털 서명(Digital Signatures)]〉, 《네이버 블로그》, | + | * 유서트, 〈[http://a.to/19k0kWF 전자 서명(Electronic Signatures)과 디지털 서명(Digital Signatures)]〉, 《네이버 블로그》, 2018-01-25 |
* 〈[https://codeday.me/ko/qa/20190320/105128.html 디지털 서명 – 디지털 서명과 디지털 인증서의 차이점은 무엇입니까?]〉, 《코드로그》, 2019-03-20 | * 〈[https://codeday.me/ko/qa/20190320/105128.html 디지털 서명 – 디지털 서명과 디지털 인증서의 차이점은 무엇입니까?]〉, 《코드로그》, 2019-03-20 | ||
* puka, 〈[http://puka.tistory.com/attachment/cfile2.uf@1159FE184A3BAA4970891F.pdf 2009년 1학기 암호알고리즘]〉, 《티스토리》, 2009-06-20 | * puka, 〈[http://puka.tistory.com/attachment/cfile2.uf@1159FE184A3BAA4970891F.pdf 2009년 1학기 암호알고리즘]〉, 《티스토리》, 2009-06-20 | ||
* 차재복, 〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=1059 Digital Signature, Electronic Signature 전자 서명, 디지털 서명, 시그니처]〉, 《차재복 개인연구실》, 2017-03-01 | * 차재복, 〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=1059 Digital Signature, Electronic Signature 전자 서명, 디지털 서명, 시그니처]〉, 《차재복 개인연구실》, 2017-03-01 | ||
+ | * 이타인, 〈[https://opentutorials.org/course/2865/16863 디지털 서명]〉, 《오픈튜토리얼스》, 2017-07-16 | ||
+ | * HomoEfficio, 〈[http://a.to/19k7Hy4 블록체인 한 번에 이해하기]〉, 《깃허브》, 2017-11-19 | ||
+ | * 조각배, 〈[http://a.to/19NUOmD Code Sign이란?]〉, 《네이버 블로그》, 2010-08-31 | ||
== 같이 보기 == | == 같이 보기 == | ||
* [[전자서명]] | * [[전자서명]] | ||
* [[디지털서명]] | * [[디지털서명]] | ||
+ | * [[블록체인]] | ||
+ | * [[합의 알고리즘]] | ||
− | {{ | + | {{금융|검토 필요}} |
+ | {{계약}} | ||
+ | {{암호 알고리즘}} |
2022년 4월 2일 (토) 18:52 기준 최신판
서명(signature)이란 기본적으로 이름을 기록하는 행위로, 누군가의 이름, 가명 또는 누군가가 문서에 기록했다는 증거, 자기 동일성을 위한 표시를 의미한다. 사인(sign) 혹은 시그니처라고도 부른다. 사이버 공간에서의 서명에서는 전자서명 또는 디지털서명 등으로 구분되어 있고, 이 역시 기본적으로 문서에 서명한 서명자를 확인하고 서명자가 해당 문서에 서명했다는 사실을 나타내는 데 이용한다.
목차
개요[편집]
서명은 기본적으로 누구인지를 확인하게 만들어주는 징표이다. 서명엔 법적인 의사표시를 나타내는 것이 가능하기 때문에 참정권에서 투표나 청구와 더불어 정치 참여 수단의 하나로 쓰인다. 한국에서 서명이 정치적인 의사표시로 쓰이는 경우는 주민 투표 발의를 위한 서명운동 정도가 있으며 그 외에 서명운동은 시민운동의 활동 등에서 나타나지만 법적인 효력은 없다. 서명은 문서를 작성한 것이 누구인지를 확인시켜줄 장치가 필요해서 생겨났다. 신원을 증명하는 수단의 일종으로 서명을 사용했고, 계약에서의 서명은 계약을 체결하는 것을 본인이 직접 확인했다는 의미로 서명을 한다. 이는 법적인 효력을 발휘한다. 컴퓨터와 인터넷이 발달하면서 이처럼 신원을 증명하는 수단이 디지털 상에서도 필요하기 시작해졌다. 이런 과정에서 만들어진 것이 전자서명과 디지털서명이다.
특징[편집]
인터넷상에서의 서명으로 흔히들 듣는 것이 전자서명과 디지털서명이다. 이는 같은 것으로 인식될 수 있지만, 실제로는 차이점이 있다.
전자 서명[편집]
전자서명은 계약 또는 기타 기록에 첨부된 서명으로 서명하려는 사람의 실행, 채택하는 전자기호 및 프로세스라고 정의된다. 기본적으로 생각하는 손으로 작성하는 서명을 그대로 디지털화한 것을 의미한다.[1] 문서 내용이나 조건을 확인하는데 사용할 수 있다. 특정 전자 문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보를 말한다. 또한 서명된 전자 문서의 위˙변조 사실을 알 수 있도록 한다. 전자서명은 인감도장의 역할을 하는 '생성'과 인감증명의 역할을 하는 '검증' 등 한 쌍의 전자서명키로 구성되는데 생성키는 서명자만 보관해서 사용하고, 검증키는 정보통신망을 통해 누구나 알 수 있도록 공개된다. 전자서명에 대한 인증은 한국증권전산(증권분야), 금융결제원(금융분야), 한국정보인증(전자거래분야), 정부전산정보관리소(행정분야) 등 4개 공인인증기관에서 하게 된다. 인증받은 전자서명키로 서명한 전자문서에서 문제가 생길 경우에는 국가가 책임을 진다. 특히 암호화 기술이 이용되기 때문에 당사자 외에는 정보가 유출되지 않아 전자상거래에서 활발하게 사용된다. 전자서명에 대해 자세히 보기
전자서명의 요구사항은 다음과 같다.
- 인증(authentic) : 누가 서명하였는지 확인 가능해야 함
- 위조불가(unforgeable) : 위조가 불가능해야 함
- 재사용불가(not reusable) : 서명을 다시 사용할 수 없어야 함
- 변경불가(unalterable) : 서명된 문서의 내용을 변경할 수 없어야 함
- 부인방지(non-repundiation) : 나중에 부인할 수 없어야 함[2]
디지털 서명[편집]
디지털서명이란 첨단 기술로 보안이 강화된 전자서명의 한 종류로서, 개인키와 공개키 암호(비대칭 암호화라고도 불림)를 이용한 전자서명이다. 송신자의 개인 키를 사용하여 서명을 보내면 수신 측에서는 송신자의 공용키를 이용해 보내온 메시지를 해독한 다음 이를 보관하게 되고, 송신자는 디지털 서명을 통해 본인임을 인증, 수신인은 해당 메시지가 위, 변조되지 않았음을 확인한다. 그리고 블록체인에 기록되는 데이터의 보안 및 무결성을 보장하는 주요 측면 중 하나이다. 예를 들어 송신자(A), 수신자(B)라 칭하게 된다면, A는 B에게 데이터를 보낼 때 A의 개인 키로 문서를 암호화하여 B에게 보내고 B는 A의 공개키로 복호화한 후, 그것이 정말 A가 보낸 것이 맞는지 확인을 하는 방식이 디지털 서명이다. 디지털 서명은 휫필드디피(Whitfield Diffie)와 마틴헬만(Martin Hellman)이 1976년 처음으로 설명했다. 하지만 그것은 아직 확실하지 않은 추측이었다. 그 이후 로널드리베스트 (Ron Rivest)와 아디샤미어 (Adi Sh amir), 레오나르도아델만(Leonard Ad leman)이 디지털 서명에 사용될 수 있는 RSA 알고리즘을 발명하였다. 하지만 아직도 개념만 증명하는 단계였다. 디지털 서명을 제공하기 위하여 처음으로 판매된 소프트웨어는 Lotus Notes 1.0이었고 RSA 알고리즘을 사용하여 제작되었고 1989년에 출시되었다. 그 이후로 계속해서 디지털 서명 기법이 개발되었는데, Lamport 서명부터 머클서명, Rabin 서명 등이 개발되었다.
디지털 서명은 데이터의 신뢰성을 확인하는 데 사용되는 암호화 출력이고, 서명 키를 사용하여 원시 데이터에 대한 서명을 생성하는 서명 작업, 서명 키를 알지 못하는 사람이 서명을 검증할 수 있는 확인 작업이 있으며, 디지털 서명은 공개키 암호화라고도 하는 비대칭 암호화를 사용한다. 비대칭 키는 공개키/비공개 키 쌍으로 구성되며, 비공개 키는 서명을 만드는 데 사용되고, 해당 공개키는 서명을 확인하는 데 사용된다.[3] 메시지 인증 방식은 송수신 자의 메시지 교환을 제3자로부터 보호할 수 있다. 그러나 송수신 자 간의 서로를 보호할 수 없다. A가 B에게 메시지 M을 보냈는데 B가 M을 위조하여 N을 받았다고 주장할 수 있다. 혹은 A가 B에게 메시지 M을 보내놓고 그런 메시지를 보낸 적이 없다고 부정할 수 있다. 즉 메시지 인증 방식은 신뢰가 깨진 상태에는 대응을 못 한다. 디지털 서명이 제공한다, 저자, 날짜 및 서명 시간, 메시지 내용 인증, 분쟁 해결을 위한 제3자의 확인이 있다. 비트 패턴은 서명되는 메시지에 의존된다. forgery와 denial을 방지하기 위해 송신자의 고유한 정보를 사용해야 하고 서명을 만드는 것이 쉬워야 하고 쉽게 인식하고 증명해야 하며, 계산상 불가능하도록 위조를 못 하게 해야 한다. 기존 디지털 서명에 새로운 메시지로 바꿀 수 없고, 주어진 메시지에 대한 사기성 디지털 서명을 만들 수 없으며, 저장소에 디지털 서명의 사본을 보관하는 것이 실용적이다. 디지털 서명은 서명의 진위 여부가 아니라 특정 서명자와 특정 메시지 간에 결부되어있다는 사실을 증명하는 것이다. 즉, 문서에 기재되는 서명의 위조 방지보다는 후에 서명된 그 문서에 대해 변경 행위의 검출에 주안점을 둔 것이다. 디지털서명에 대해 자세히 보기
링 서명[편집]
링서명(ring signature)은 사용자의 공개키를 섞어 특정 사용자를 식별하지 못하게 해 사용자를 추적 불가능하게 만드는 서명 기술이다. 블록체인 기술을 활용할 때, 두 가지의 큰 장애물이 있다. 하나는 확장성, 또 다른 하나는 개인정보보호이다. 확장성의 경우는 많은 블록체인 플랫폼들이 고민하고 있는 중대한 문제로, POS, DPOS, POA 등의 많은 방식으로 해결책을 고민하고 있다. 또 다른 하나인 개인정보보호는 확장성에 비해 비교적 해결 가능성이 있는 문제지만, 모든 케이스에 적용할 수 있는 방법은 없기 때문에 각 케이스에 맞춘 부분적인 해결법을 적용해야 한다.[4]
고리서명이라고 불리기도 하는 링서명은 거래자 결제키를 블록체인에서 접근 가능한 공개키들과 섞어 잠재적 사용자들의 키를 링으로 만들어 보여주는 방법이다.[5] 이를 통해 외부자가 거래의 대상자를 특정할 수 없도록 만들어준다. 링을 통해서 보이는 사용자들은 모두 거래에 적용 가능한 사람들이기 때문에 외부자는 거래 대상자를 골라낼 수가 없다.[6] 또한 거래할 때 송금자만 이용 가능한 일회성 주소가 발급된다. 이에, 코인을 받는 사람도 누가 보낸 건지 추적을 할 수 없다.[7] 이렇게 거래자의 신원을 보호하는 한편 링 기밀거래 기술로 거래액 보안이 될 수 있는 서비스를 제공한다. 링서명에 대해 자세히 보기
전자서명과 디지털서명의 차이점[편집]
- 전자서명 : 전자서명은 계약 또는 기타 기록에 첨부되거나 관련이 있는 문서의 내용이나 조건을 확인하는 데 주로 사용된다. 전자서명은 계약 또는 기타 기록에 첨부된 서명으로 서명하려는 사람의 실행, 채택하는 전자기호 및 프로세스라고 정의되며, 기본적으로는 손으로 작성된 서명을 디지털화한 것이라 볼 수 있고 문서 내용이나 조건을 확인하는 데 사용한다.
- 디지털서명 : 디지털 서명은 메시지를 확인하는 데 사용되고, 기본적으로 메시지의 암호화 된 해시이다. 수신자는 수신된 메시지를 해싱하고 이 값을 암호 해독된 서명과 비교하여 메시지가 조되었는지 확인할 수 있으며, 서명을 해독하려면 해당 공개 키가 필요하다. 디지털 서명은 서명을 한 사람이 본인이 맞는지, 문서의 내용이 위조 혹은 변조가 된 것은 아닌지 확인하는 데 주로 사용된다. 한마디로 신뢰할 수 있는 CA 인증기관이 신원을 확인하는 과정에서 공증인 역할을 하는 것으로, 인증기관은 사용자의 신원을 PKI 기반 디지털인증서에 연결하여 디지털 서명을 문서 및 클라우드 기반 서명 플랫폼에 적용할 수 있도록 하는데 이때 디지털 서명을 문서에 적용하면 암호화 작업이 진행되고, 이 작업이 디지털 인증서와 서명된 데이터를 하나의 유일한 지문으로 바인딩하는 것이다.
- 인증된 문서이며 출처가 분명하다.
- 변경 사항이 있을 경우 서명은 유효하지 않은 것으로 표시되므로 문서가 변조되지 않음을 증명해 준다.
- 신뢰할 수 있는 기관에 의해 확인된다.
- 디지털인증서 : 디지털 인증서는 공개 키를 사람 또는 다른 개체에 바인딩하는 데 사용되고, 인증서가 없으면 받는 사람이 공개 키가 보낸 사람인지 여부를 확인할 수 없기 때문에 쉽게 서명을 위조 할 수 있다. 인증서 자체는 VeriSign과 같은 인증 기관인 신뢰할 수 있는 제3 자에 의해 서명된다.[8]
활용[편집]
블록체인[편집]
서명은 블록체인에서 많이 사용되고 있다. 블록체인에서는 거래를 전송할 때 디지털 서명을 이용한다. 거래 내역을 암호화하고, 서명한 거래 내용과 함께 서명에 사용된 개인키와 쌍을 이루는 공개키를 같이 전송한다. 이 거래의 수신자는 거래 내용과 함께 수신된 공개키로 거래 내용을 열어서 거래 내용의 원본과 동일한지 비교하게 된다. 비교했을 때 두 거래 내용이 동일하다면 공개키 주인이 보낸 것임을 확신할 수 있게 되는 것이다. [9] 디지털서명은 블록체인에서 비대칭키와 해시함수를 이용해서 다음과 같은 방식으로 데이터의 진위 여부를 확인할 수 있게 해준다. 블록체인에 담겨 있는 모든 거래 정보에는 디지털 서명이 포함되어 있어서 거래 정보에 대해 신뢰할 수 있다.[10]
코드서명[편집]
또한 이러한 서명기술은 응용프로그램을 연구, 개발하고 배포하는 개발자들에게도 유용하게 사용된다. 바로 코드서명(Code-Sign)이라는 기술이다. 코드서명은 응용프로그램의 코드에 서명을 해서 제대로 된 인증절차를 거쳐 배포되고 있음을 확인할 수 있게 하는 것이다. 이는 응용프로그램을 배포하는 배포자가 너무도 많이 때문이다. 이렇게 엄청나게 많은 배포자가 배포하게 되면 여러가지 프로그램을 설치하는 사용자 입장에서는 어떤 프로그램이 신뢰할 수 있는지 판단하기 힘들다. 코드서명은 안드로이드 등 모바일 프로그램에서도 폭넓게 적용된다.
각주[편집]
- ↑ 유서트, 〈전자 서명(Electronic Signatures)과 디지털 서명(Digital Signatures)〉, 《네이버 블로그》, 2018-01-25
- ↑ puka, 〈2009년 1학기 암호알고리즘〉, 《티스토리》, 2009-06-20
- ↑ 구글클라우드 공식 홈페이지 -〈http://a.to/19oLuJq〉
- ↑ 김병하, 〈블록체인과 개인정보보호〉, 《미디엄》, 2018-08-14
- ↑ 관쨩, 〈비트코인 종류, 비트코인 모네로 정보/요약〉, 《네이버 블로그》, 2017-12-18
- ↑ 수석 매니저, 〈모네로코인 호재, 전망, 일정(리치코인)〉, 《네이버 블로그》, 2018-12-28
- ↑ crzymon, 〈Monero(XMR) 모네로 코인 정리 및 요약〉, 《스팀잇》
- ↑ 〈디지털 서명 – 디지털 서명과 디지털 인증서의 차이점은 무엇입니까?〉, 《코드로그》, 2019-03-20
- ↑ 이타인, 〈디지털 서명〉, 《오픈튜토리얼스》, 2017-07-16
- ↑ HomoEfficio, 〈블록체인 한 번에 이해하기〉, 《깃허브》, 2017-11-19
참고자료[편집]
- 유서트, 〈전자 서명(Electronic Signatures)과 디지털 서명(Digital Signatures)〉, 《네이버 블로그》, 2018-01-25
- 〈디지털 서명 – 디지털 서명과 디지털 인증서의 차이점은 무엇입니까?〉, 《코드로그》, 2019-03-20
- puka, 〈2009년 1학기 암호알고리즘〉, 《티스토리》, 2009-06-20
- 차재복, 〈Digital Signature, Electronic Signature 전자 서명, 디지털 서명, 시그니처〉, 《차재복 개인연구실》, 2017-03-01
- 이타인, 〈디지털 서명〉, 《오픈튜토리얼스》, 2017-07-16
- HomoEfficio, 〈블록체인 한 번에 이해하기〉, 《깃허브》, 2017-11-19
- 조각배, 〈Code Sign이란?〉, 《네이버 블로그》, 2010-08-31
같이 보기[편집]
|
|