이중 서명
From CS Wiki
- Dual Signature
- SET에서 고객의 프라이버시 보호 및 거래의 정당성 인증을 위해 고안된 전자서명 프로토콜
- 판매자에게 결제 정보를 노출하지 않으면서 고객이 정상 결제 했음을 확인시켜 줄 수 있다.
- PG에게 주문정보를 노출하지 않으면서 해당 결제요청이 정당한 요청임을 확인할 수 있다.
절차
- 고객의 이중서명 생성
- 구매정보 OI에 대해 Hash함수를 적용하여 160 비트의 메시지 다이제스트 M1을 생성
- 결제정보 PI에 대해 Hash함수를 적용하여 160 비트의 메시지 다이제스트 M2를 생성
- 생성된 두개의 메시지다이제스트 M1,M2를 연접(Concatenation)한 후 연접된 결과에 Hash함수를 적용하여 메시지 다이제스트 M을 생성
- M에 고객의 개인키로 전자서명
- PG에게 전해질 전자봉투 생성 및 필요데이타의 판매자앞 전송
- 비밀키를 Random Generate하여 결제정보(PI)를 암호화 시킨후 해당키를 PG의 공개키로 암호화하여 전자봉투 생성
- 구매정보, 암호화된 결제정보, M1M2, 고객의 전자서명, 전자봉투를 판매자에게 전송
- 판매자는 구매정보와 이중서명 확인후 암호화된 결제정보를 PG에게 전송
- 판매자는 수신된 구매정보(OI)에 고객과 동일한 Hash함수를 적용하여 메시지 다이제스트 M1을 생성
- 판매자는 수신된 M1M2 중 M1을 새로 생성한 M1으로 대체시킨후, 대체된 M1M2에 동일한 Hash함수를 적용하여 메시지다이제스트 M을 구함
- 판매자는 수신된 이중서명을 고객의 공개키로 복호화하여 메시지다이제스트 M을 추출
- 판매자는 ㉡과 ㉢의 메시지다이제스트를 비교하여 동일한 경우 정당한 구매요청으로 간주하여 처리
- 판매자는 고객으로부터 전송받은 암호화된 결제정보(PI), 전자봉투, 이중서명, M1M2를 자신의 승인요청전문 전송시 PG로 전송
- PG의 전자봉투 및 결제정보 복호화
- PG는 자신의 개인키를 사용하여 전자봉투를 복호화
- 전자봉투에서 획득한 비밀키를 이용하여 결제정보, M1M2값, 고객의 서명값을 추출
- PG의 고객 이중서명 확인 및 결제정보 확인
- PG는 복호화된 결제정보에 고객과 동일한 Hash함수를 적용하여 메시지다이제스트 M2를 생성
- PG는 수신된 M1M2 중 M2을 새로 생성한 M2으로 대체시킨후, 대체된 M1M2에 동일한 Hash함수를 적용하여 새로운 메시지다이제스트 M을 구함
- PG는 수신된 고객의 이중서명을 고객의 공개키로 복호화하여 메시지다이제스트 M을 추출
- PG는 2과 3의 메시지다이제스트를 비교하여 동일한 경우 정당한 결제요청으로 간주하여 처리