본문 바로가기
정보보호/정보보호학 개론 (2013, 백석대 이근호 교수님)

8-2. 전자서명, 전자봉투, 신용카드

by 규글 2024. 8. 12.

목표

1. 전자 서명에 대해서 이해함

2. 전자 봉투에 대해서 이해함

3. 신용카드 처리에 대해서 이해함

 

전자서명

 

- 계약을 할 때 사용하는 인감도장은 동사묻소 등과 같은 공공기관에 등록하여 공증을 받은 것으로, 계약서 등의 날인에 사용함.

 

- 인감도장의 역할을 하는 것이 전자서명이고, 이 전자서명이 공인 인증기관에 등록되고 검증되어 사용되는 것

 

생성

 

- 원본의 해시값을 구한 뒤 부인방지 기능을 부여하기 위해 공개키 방법을 사용함.

ex) 철수가 영희에게 편지를 보낼 때, 편지의 해시값을 구한 후 자신의 사설키로 암호화하여 보냄

     영희는 철수의 공개키를 이용하여 암호회된 해시값을 복호화하고, 원본 문서를 해시한 값과 비교함

   (복호화한 해시값과 전달된 편지에서 구한 해시값이 일치하면 편지가 철수로부터 온 것이 맞고, 위조되지 않았음을 확신)

 

제공하는 기능

- 위조 불가(Unforgeable)

: 서명자만이 서명문을 생성할 수 있음

 

- 인증(Authentication)

: 서명문의 서명자를 확인할 수 있음

 

- 재사용 불가(Not Reusable)

: 서명문의 해시값을 전자서명에 이용하므로, 한 번 생성된 서명을 다른 문서의 서명으로 사용할 수 없음

 

- 변경 불가(unalterable)

: 서명된 문서는 내용을 변경할 수 없기 때문에 데이터가 변조되지 않았음을 보장하는 무결성(Integrity)을 만족함

 

- 부인 방지(Non Repudiation) : 서명자가 서명 사실을 부인할 수 없음

 

- 미국에는 1994년 만들어진 DSA(Digital Signature Algorithm)를 사용하는 DSS(Digital Signature Standard)가 있음

- DSA는 슈노어와 엘가말의 알고리즘을 기반으로 하며, 서명 생성이나 암호키 생성에서는 SHA-1을 이용함.

 

국내의 전자서명

- 1996년 개발된 KCDSA(Korea Certifice-based Digital Signature Algorithm)가 있음. 전자서명법에 따르면, 전자서명은 인터넷을 통해 전자 문서를 교환할 때 일반 문서에서 쓰이는 인감 도장과 법적으로 동일한 효력을 지님.

 

전자봉투

: 전달하고자 하는 메시지를 암호화하여 한 사람을 통해서 보내고, 암호화 키는 또다른 사람을 통해 보내는 것을 암호학적으로 구현한 것.

 

- 전자서명으로 인한 기밀성, 무결성, 부인방지 기능을 모두 지원함.

 

ex)

- 철수가 전자봉투를 사용하기 위해 전자서명을 생성하고, 전자서명과 원문, 자신의 공캐키가 들어있는 인증서를 비밀키(DES, 알고리즘에 사용되는 대칭키)를 사용하여 암호화.

 

- 인증서를 암호화한 비밀키를 영희의 공개키로 암호화. (전자봉투)

 

- 철수는 최종적으로 비밀키로 암호화한 결과(전자서명 세트)와 비밀키가 암호화 된 전자봉투를 영희에게 보냄.

 

복호화

 

- 전자봉투를 영희의 사설키로 복호화하여 비밀키를 획득함

- 비밀키로 전자서명 세트(전자서명, 철수의 공개키가 있는 인증서, 문서)를 복호화 함

- 철수의 공개키로 전자서명을 복호화하여 원문의 해시 결과와 비교하여 일치 여부를  확인함

 

전자상거래 - 신용카드 결제

SET (Secure Electronic Transaction) Protocol

: 1996년 비자(Visa)와 마스터(Master) 카드 회사의 합의에 의해 만들어진 프로토콜

 

구성


1. 카드 사용자

: 신용카드를 소지한 사람. SET에 이용되는 인증서를 소유.

 

2. 상점

: 인터넷 쇼핑몰을 운영하며, SET을 이용하여 상품을 판매

 

3. 지불 게이트웨이(PG, Payment Gateway)

: 기존의 신용카드 지불 방식으로 은행과 거래 내역을 주고 받음.

 

4. 신용카드 회사(Issuer)

: 사용자에게 신용카드를 발급하고, CA를 운영하여 사용자에게 인증서를 발급함

 

5. 은행 (Acquirer)

: 상점의 계좌가 있으며, PG를 운영. CA 또한 운영하여 상점에 인증서를 발급함

 

6. 인증기관

: SET에 참여하는 모든 구성원들의 정당성을 보장하는 (ROOT)CA.

 

신용카드 결제

이중서명 값 생성

: 카드 사용자가 구매 정보와 지불 정보를 각각 해시한 후, 두 해시값을 합한 뒤 다시 해시. 이렇게 만들어진 최종 해시값을 카드 사용자의 사설키로 암호화(서명)

 

목적

- 상점이 카드 사용자의 계좌번호같은 지불 정보를 모르게 하고, 상점에 대금을 지불하는 은행이 카드 사용자가 상점에서 산 물건이 무엇인지 모르게 하면서 상점이 요구한 결제 대금이 정확한지 확인할 수 있게 함.

 

 

비밀키 생성

: 카드 사용자가 생성.(대칭키) 비밀키를 사용하여 지불정보를 암호화하고, 은행이 운영하는 PG의 공개키로 암호화함.

 

상점으로 데이터 전송

 

- 카드 사용자의 구매정보

- 카드 사용자가 구매정보와 지불정보를 각각 해시한 이중서명 정보

- 카드 사용자가 지불 정보를 비밀키로 암호화한 것

- 카드 사용자가 생성한 자신의 비밀키를 PG의 공개키로 암호화한 것

 

상점에서의 구매 정보 확인

 

1. 카드 사용자가 신청한 물건에 대한 구매정보의 해시를 구함

 

2. 카드 사용자가 보내온 한 쌍의 해시값을 새로 구한 해시로 대치

3. 새로운 이중 해시를 구함

 

4. 카드 사용자의 사설 키로 암호화된 해시값을 복호화

5 새로운 이중 해시값과 카드 사용자의 공개키로 복호화한 해시값을 비교하여 카드 사용자가 보내온 구매 정보가 카드 사용자의 것이 맞는지, 혹은 구매 정보가 변조되지는 않았는지 확인함

 

상점에서 PG로 지불 정보 전송

 

- 카드 사용자가 구매정보와 지불정보를 각각 해시한 이중서명 정보

- 카드 사용자가 지불 정보를 비밀키로 암호화한 것

- 카드 사용자가 생성한 자신의 비밀키를 PG의 공개키로 암호화한 것

 

PG에서 지불 정보 확인

 

- PG에서는 자신의 사설키로 카드 사용자의 비밀키를 복호화

- 카드 사용자의 비밀키로 카드 사용자의 지불 정보를 복호화하여 지불 정보 확인

 

- 상점에서와 마찬가지로 해시값을 지불정보를 새롭게 해시한 값으로 대치한 후, 기존의 해시값과 일치하는지 여부를 확인하여 지불 정보의 변조 여부를 확인한 뒤, 상점에 대금을 지급함

 

Cyber Cash

- 1995년부터 서비스하고 있고 미국에서는 80%의 은행이 가입했지만, 세계적으로 널리 쓰이지는 않음

 

- 고객이 웹 브라우저를 이용하여 원하는 상점에 구입 의사를 표시하고 해당 물건에 대한 지불 버튼을 누르면 웹 브라우저가 자동으로 Cyber Cash의 소프트웨어를 실행시킴

- 소비자는 이 소프트웨어에서 어떤 신용카드로 대금을 지불할 것인지 선택한 후 확인 버튼을 눌러 판매자에게 주문 및 결제 정보를 보냄. 이때 소프트웨어는 결제 정보를 암호화.

 

- 판매자는 결제 정보에 확인 정보를 추가하고, 이를 사설키로 암호화한 뒤 Cyber Cash 서버에 보냄

- 이때 판매자는 SET처럼 고객의 신용카드 정보를 확인할 수 없음

 

- 서버에서는 구매자와 판매자의 신원을 확인한 후 거래를 처리하며, 처리한 정보를 은행에 보냄

 

- 현재 국내의 상당수 신용카드 결제 시스템이 이와 비슷하게 동작하고 있음

 

- SET과 달리 Cyber Cash에서는 PG 역할을 하는 Cyber Cash 서버가 고객이 어떤 물건을 구입했는지에 대한 정보를 알게 된다는 문제점이 있음

 

First Virtual

- 전자상거래에서의 메시지 전달을 통해 거래 정보를 교환함

- 메시지 전달은 이메일(전자우편) 즉, SMTP 프로토콜로 이루어짐

 

- 고객이 상점에 물건을 구입할 의사를 밝히면 상점은 서버에 대금 지불을 요구하는 전송-요청(Transferreqeust) 메시지를 전송

- 서버는 고객에게 전송-질의(transfer-query) 메시지를 전송

- 고객은 구매 확인 이메일을 받게 되고, 이에 회신을 보내는 것으로 구매 절차가 완료.

- 전달되는 이메일에는 Yes(구매 확인) / No(구매 취소) / Fraud(구매한 적 없음, 사기) / Help 중 하나를 반드시 선택하도록 되어 있음.

 

- Fraud의 경우 누군가 ID를 도용한 것이므로, 서버가 해당 ID를 취소하고 새로운 ID를 부여함

 

- 신뢰도가 낮은 편이라 100달러 이하의 거래에 이용됨.

댓글