정보보호론/보안과 암호

전자서명과 은닉서명

retro_blue 2020. 9. 10. 16:18
반응형

■ 전자서명 (디지털 서명 : Digital Signature)

 - 전자상거래 지불 시스템에서 송신자가 일정 금액을 보냈으나 수신자가 금액을 받지 않았다고 부인하는 경우가 생기는데 이를 방지하기 위해 전자서명을 이용한다

 - 전자서명은 원본의 해시값을 구한 뒤, 원본과 해시값을 같이 전송한다

 - 수신자는 수신 받은 원본에서 해시값을 구한 다음 수신 받은 해시값과 비교하여 일치하면 그 문서는 변경되지 않은 것(무결성 확보)

 - 이때 송신자는 그 해시값에 부인방지 기능을 부여하기 위해 공개키 방법을 사용

 - 송신자는 메시지의 해시값을 구한 후 그 해시값을 송신자의 개인키로 암호화하여 보내는 것

 - 수신자는 송신자가 보낸 해시값을 송신자의 공개키로 복호화하여 부인방지 기능을 확인한다

 

 - 전자서명이란 전자문서에 서명한 사람의 신원을 확인하고 서명된 전자문서가 위조되지 않았는지 여부를 확인할 수 있도록 전자문서에 부착된 특수한 디지털정보를 의미

 

 

** 전자서명의 개발 배경

   - 정보를 암호화하여 상대편에게 전송하면 부당한 사용자로부터 도청을 막을 수는 있다. 하지만 그 전송 데이터의 위조나 변조, 그리고 부인 등을 막을 수는 없다. 이러한 문제점들을 방지하고자 전자서명 기술이 개발되었다

 

 

■ 전자서명 서비스

 ① 메시지인증 : 변경여부 확인(해시함수 이용)해 무결성 기능을 제공

 ② 발신자(사용자) 인증 : 발신자 인증 기능을 제공. 즉, 전자서명은 발신자(서명 생성자)를 인증하는 기능이 있음

 ③ 부인방지 : 송신자의 개인키로 메시지 다이제스트를 암호화 후 송신한다. 수신자가 받은 암호화 된 메시지 다이제스트를 송신자의 공개키로 복호화가 된다는 것은 송신자만이 가지고 있는 송신자의 개인키로 메시지를 암호화 했다는 것

 

 

■ 전자서명의 주요 기능

 

1) 위조불가 (Unforgeable)

 - 합법적인 서명자만이 전자서명을 생성하는 것이 가능해야 함. 즉, 위조가 불가능해야 한다

 - 서명된 문서가 변형되지 않았다는 무결성(Integrity)을 보장한다

 

2) 서명자 인증 (User Authentication)

 - 전자서명은 서명 생성자를 인증하는 기능이 있다

 - 전자서명의 서명자를 불특정 다수가 검증할 수 있어야 한다

 - 전자서명 된 문서를 타인이 검증해야 하므로 전자서명 알고리즘은 공개해야 한다

 

3) 부인방지 (=부인봉쇄, Non-repudiation) 

 - 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야 한다

 - 전자서명에서 부인방지는 송신자의 개인키로 해시값을 암호화 한 후(해시 후 서명 방식), 송신자의 공개키로 복호화(써명 검증)하여 부인방지서비스를 제공

 

4) 변경불가 (Unalterable)

 - 서명한 문서의 내용을 변경할 수 없어야 한다

 

5) 재사용 불가 (Not reusable)

 - 전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야 한다 (수신자가 문서를 재사용 할 수 없다)

 - 전자서명에서 송신자와 수신자의 메시지 전송 도중에 갈취되어 복사되거나 도용되지 않도록 해주는 특징이 있다

 

 

■ 공개키를 사용하는 전자서명 방식 (부가형 전자서명 방식)

 - 메시지의 해시값에 서명(개인키로 암호화)하는 전자서명 방식

 

 - 메시지의 해시값에 서명하는 전자서명 방식은 기밀성을 보장하지 않음

 - 메시지를 암호화 하지 않아 기밀성을 보장하지 못하는 이유는 메시지를 B의 공개키로 암호화 하면 속도 저하가 크기 때문

 - 공개키 기반 전자서명에서 메시지에 서명하지 않고 메시지의 해시값과 같은 메시지 다이제스트에 서명하는 이유는 공개키 암호화에 따른 성능 저하를 극복하기 위한 것

 

○ 메시지의 해시값에 서명하는 방법

   - 송신자는 일방향 해시함수로 메시지의 해시값을 계산

   - 송신자는 자신의 개인키로 해시값을 암호화

   - 송신자는 메시지와 서명을 수신자에게 송신

   - 수신자는 수신한 서명을 송신자의 공개키로 복호화

   - 수신자는 얻어진 해시값과 송신자로부터 직접 수신한 메시지의 해시값을 비교

 

□ 공개키 방식을 이용한 전자서명의 문제점

 - 공개키 암호화 방식은 공개키 저장소(공개키 레파지토리)의 공개키가 바꿔치기 당하는 중간자 공격에 취약

 - 공개키가 누구의 것인지 확인해 주는 과정이 필요. 즉 공개키 인증서(Public Key Certificate) 확인 과정이 필요

 

 

■ 전자서명 특징 

 - 디지털 서명은 기밀성을 지키기 위한 것은 아니다

 - 서명을 복사하더라도 서명자, 메시지의 내용이 바뀌지는 않기 때문에 서명이 무의미해지는 것은 아니다

 

■ 전자서명 구비조건 (제공기능)

 ① 무결성 (Integrity) 기능 제공 : 문서내용 변경 여부를 확인할 수 있어야 함

 ② 서명자 인증 기능 제공 (User Authentication) : 서명자 이외의 타인이 서명을 위조하기 어려워야 한다. 또한 전자서명의 서명자를 누구든지 검증할 수 있어야 한다

 ③ 부인방지 (Non-repudiation) 기능 제공 : 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야 함

 ④ 재사용 불가 (Not reusable) : 전자문서의 서명을 다른 전자문서의 서명으로 재사용 할 수 없다

 ⑤ 위조불가 (Unforgeable) : 합법적인 서명자만이 전자서명을 생성할 수 있어야 한다. 즉 서명자 이외의 타인의 서명을 위조하기 어려워야 한다

 

 

 

■ 메시지 복원형 전자서명 (메시지에 직접 서명하는 방식)

 - 해시함수를 사용하지 않고 송신자가 메시지를 송신자의 개인키로 암호화하여 전송한 후 수신자는 송신자의 공개키로 메시지를 복호화하여 검증하는 방법

 - 기존의 공개키 암호 방식을 사용하여 별도의 전자서명 프로토콜이 필요하지 않다는 장점이 있으나, 메시지를 일정한 크기의 블록으로 나누어 그 각각의 블록에 서명을 해야 하므로 많은 시간이 소요되어 실제로는 사용되지 않는다

 

 

 

■ 전자서명이 제공하는 보안 서비스

 ① 본인 인증 : 사용자 인증을 의미하는 것으로서 인터넷상에서 전자문서의 작성자와 송신자의 신원을 확인하는 것

 ② 무결성 : 전자적 거래의 문서가 중간에 위조되거나 변조될 위험성을 해결하는 것으로서 메시지 인증 기술로 송신자가 수신자에게 보낸 메시지가 위조, 변조되지 않은 진본임을 확인하는 것

 ③ 부인방지 : 전자적 거래 이후 거래 사실을 부인하지 못하도록 하는 것으로서 부인방지는 메시지를 보낸 사람의 행위를 부인할 수 없을 뿐 아니라 메시지를 받은 사실 역시 부인할 수 없게 하여 전자적 거래를 완성시킨다

 

 

** 전자서명 자체가 기밀성(비밀성)을 보장하지 않는다

  - 기밀성이란 전자문서의 내용이 외부로 유출될 위험성을 해결하는 것으로서 전송되는 메시지를 송신자와 수신자를 제외한 제3자는 볼 수 없도록 하는 것을 말함. 하지만 전자서명은 전자서명 자체가 문서 내용에 대한 기밀성을 보장하지는 않는다

  - 메시지를 수신자의 공개키로 암호화하여 기밀성을 제공할 수 있으나 전자서명 특성상 결제 시 빠른 동작이 중요하고 메시지 자체가 기밀성을 요구하지 않아 메시지를 암호화 하지 않는다

 

 

 

■ 서명 방식의 종류

 

1) 은닉서명 (Bind Signature)

 - 서명자가 자신이 서명하는 메시지를 알 수 없는 형식으로 봉투 내의 내용을 보지 않고 겉면에 서명을 하면 내부의 잉크에 의해 서류에 서명이 되는 원리를 이용하는 방식 (먹지)

 

2) 수신자 지정서명

 - 서명을 검증할 때 특정 검증자만이 서명을 확인할 수 있으며 만일 서명에 문제가 있을 경우, 검증자의 비밀 정보를 노출시키지 않고 제3자에게 서명의 정당성을 증명하는 서명 방식

 

3) 부인방지 서명 (Undeniable Signature)

 - 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 방식

 

4) 위임서명 (Proxy Signature)

 - 위임서명자로 하여금 서명자를 대신해서 대리로 서명할 수 있도록 한 방식

 

5) 다중서명 (Multisignature)

 - 동일한 전자문서에 여러 사람이 서명하는 방식

 

6) 이중서명 (Dual Signature)

 - 신용카드 기반 지불시스템인 SET (Secure Electronic Transaction) 에서는 상점이 카드 사용자의 계좌번호와 같은 정보를 모르게 하는 동시에, 상점에 대금을 지불하는 은행은 카드 사용자가 구매한 물건을 알지 못하지만 상점이 요구한 결제 대금이 정확한지 확인할 수 있게 하기 위해 사용되는 방식

 - 전자지불시스템(SET)에서 판매자(상점)에게 구매자의 결제정보(주문정보)를 보호하고 지불게이트웨이(PG)에게 구매자의 구매정보를 보호하기 위한 서비스이다 (상인은 고객의 잔고를, 은행은 구입정보를 모르게 한다)

 - 주문정보의 메시지 다이제스트(해시값)와 지불정보의 메시지 다이제스트(해시값)를 구하고, 두 정보의 메시지 다이제스트(해시값)를 합하여 생성된 새로운 메시지의 메시지 다이제스트(해시값)를 구한 후, 고객의 서명용 개인키로 암호화한 것

 - 즉 이중서명은 고객의 겨제 정보가 판매자를 통하여 해당 지급정보 중계기관으로 전송됨으로 인하여 고객의 결제정보가 판매자에게 노출될 가능성과 판매자에 의해 결제정보가 위ㆍ변조될 가능성을 제거한다

 

 

 

■ 은닉서명 (like 먹지를 이용한 서명)

  - D.Chaum이 제시한 특수 형태의 전자서명 기법으로 사용자 A가 서명자 B에게 자신의 메시지를 보여 주지 않고 서명을 얻는 방법을 말함

 - 메시지의 비밀을 지키면서 타인의 인증을 받고자 하는 경우에 주로 사용 (눈 감고 서명하기)

 - 전자화폐를 사용하는 데 있어서 사용자의 사생활을 보호하는 차원에서 제시된 서명 기법

 - 사용자가 서명자, 즉 은행에게 서명을 받으려는 문서를 비밀로 한 채 은행의 서명을 받는 방법으로 전자화폐에 대한 추적을 불가능하게 할 수 있는 기능을 제공한다

 - 전자화폐 사용자의 신원노출 문제점을 해결하기 위한 서명 기술

 - 전자서명과 서명자의 추적성을 차단한 전자서명 기술

 

★ 은닉서명의 목적 

 - 전자서명 사용 시 이용자의 프라이버시 노출을 보호하기 위해 사용

 - 전자화폐 이용 시에 사용자의 신원 노출 문제점을 해결하기 위해 사용

 

★ 은닉서명의 특징

 - 사용자의 익명성 보장

 - 송신자의 익명성 보장

 - 기본적으로 임의의 전자서명을 만들 수 있는 서명자와 서명 받을 메시지를 제공하는 제공자로 구성되어 있는 서명 방식으로, 제공자의 신원과 쌍(메시지, 서명)을 연결시킬 수 없는 익명성을 유지할 수 있는 서명 방식

 

★ 은닉서명의 문제점

 - 은닉서명을 악용하는 사례 발생

 - 전자화폐를 이용한 자금 세탁 등의 부작용이 발생

 - 범죄에 대한 추적의 어려움이 발생 (강탈, 돈세탁)

 - 전자서명 발급 이후에(메시지+서명) 쌍의 유효성을 확인할 수 있으나 자신이 언제, 누구에게 발행했는지를 알 수 없다(송신자의 익명성 보장)

 - 검증자는(메시지+서명) 쌍의 유효성을 확인할 수 있으나, 송신자의 신분을 알 수 없다

 

 

 

 

■ 은닉서명의 역기능 방지 기술과 특징

 

 1) 은닉서명의 역기능 방지를 위한 공정은닉서명 (Fair Blind Signature)

   - 은닉서명의 익명성 보장 문제를 해결하기 위한 서명기술

   - 익명성 보장에 대하여 법원의 추적 명령으로 신원 추적이 가능 (Linkable)

   - 기본 프로토콜은 익명성을 보장하나 필요시에 익명성 추적이 가능토록 설계

   - 전자화폐 사용 시 범죄 행위에 대한 해결 기능이 내장되었음

 

2) 은닉서명과 공정한 은닉서명의 특징 비교

구분 Blind Signature (은닉서명) Fair Blind Signature (공정한 은닉서명)
목적 - 프라이버시보호 익명성 보장 - 한정된 프라이버시 보호 기본 프로토콜
- 익명성 보장 및 제어추적성 보장됨
특징 - 프라이버시 보장 - 은닉서명의 역기능 방지

 

■ 은닉서명의 응용분야

 - 전자화폐 : 사용자의 프라이버시 보호 (발행 프로토콜)

 - 전자투표 분야 : 익명성이 보장된 투표 참여

반응형

'정보보호론 > 보안과 암호' 카테고리의 다른 글

키, 난수  (0) 2020.09.10
공개키 기반 구조 (PKI)  (0) 2020.09.10
해시함수 (Hash Function)  (0) 2020.09.10
대칭키와 공개키 비교  (0) 2020.09.10
공개키(비대칭키) 암호시스템  (0) 2020.09.10