전자서명값
전자서명값
이용기관은 출금동의 검증(verifyCMS) 함수를 호출하여 전자서명값(signedData)을 응답 받을 수 있습니다. Base64 인코딩 되어 있는 전자서명값은 Base64 디코딩을 통해 전자서명 원문과 인증서 정보를 확인하여 검증 및 부인방지 용도로 활용할 수 있습니다. 네이버써트는 프로그램 공급사의 연동개발 편의를 위하여 전자서명값 복호화를 위한 자체 개발한 모듈 및 가이드를 지원합니다.[검증모듈 신청]
![전자서명 검증 및 복호화 프로세스](/images/document/guide/naver/decrypt-signdata-cms.webp)
환경 설정
전자서명값 확인 모듈은 Ruby v2.3 이상에서 정상작동을 보장합니다. 하위 버전을 이용하실 경우 추가문의가 필요합니다.
기능 구현
전자서명값 확인 모듈의 파싱 함수를 호출하는 예제입니다. 검증모듈 신청을 통해서 전자서명값 확인 모듈을 제공합니다. [검증모듈 신청]
require_relative './navercertExample/helper.rb'
sampleSignedData = "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwGggCS…"
verifySignedDataHelper = VerifySignedDataHelper.instance()
# 서명 원문 확인 (서명 원문 유형이 PDF인 경우, SignedData에 원문이 포함되지 않습니다)
puts verifySignedDataHelper.getContent(sampleSignedData)
# 서명 인증서 알고리즘 확인
puts verifySignedDataHelper.getCertAlgorithm(sampleSignedData)
# 서명 인증서 고유 일련번호 확인
puts verifySignedDataHelper.getCertSerialNumber(sampleSignedData)
# 서명 인증서 발급자 서명 확인
puts verifySignedDataHelper.getCertSignature(sampleSignedData)
# 서명 인증서 발급자 정보
puts verifySignedDataHelper.getCertIssuer(sampleSignedData)
# 서명 인증서 발급자 공개키 식별값 확인
puts verifySignedDataHelper.getCertAuthorityKeyIdentifier(sampleSignedData)
# 서명 인증서 사용자 정보 확인
puts verifySignedDataHelper.getCertSubject(sampleSignedData)
# 서명 인증서 사용자 공개키 식별값 확인
puts verifySignedDataHelper.getCertSubjectKeyIdentifier(sampleSignedData)
# 서명 인증서 유효기간 확인
puts verifySignedDataHelper.getCertValidity(sampleSignedData)
# 서명 인증서 제약사항 확인
puts verifySignedDataHelper.getCertPolicyQualifierInfo(sampleSignedData)
# 서명 인증서 인증서 용도 확인
puts verifySignedDataHelper.getCertKeyUsage(sampleSignedData)
인증서 규격
네이버 인증서는 X.509.V3의 규격을 따릅니다.
RFC 5280 상세 - https://www.ietf.org/rfc/rfc5280.txt
구분 | 상세 |
---|---|
Version | 인증서 버전 |
Algorithm | 인증서 알고리즘 |
SerialNumber | 고유 일련번호 |
Signature | 발급자 서명 |
Issuer | 발급자 정보 |
AuthorityKeyIdentifier | 발급자 공개키 식별값 |
Subject | 사용자 정보(성명, 국가정보) |
SubjectKeyIdentifier | 사용자 공개키 식별값 |
Validity | 유효기간 |
PolicyQualifierInfo | 제약사항 |
KeyUsage | 인증서 용도 |