전자서명값
전자서명값
이용기관은 출금동의 검증(verifyCMS) 함수를 호출하여 전자서명값(signedData)을 응답 받을 수 있습니다. Base64 인코딩 되어 있는 전자서명값은 Base64 디코딩을 통해 전자서명 원문과 인증서 정보를 확인하여 검증 및 부인방지 용도로 활용할 수 있습니다. 카카오써트는 프로그램 공급사의 연동개발 편의를 위하여 전자서명값 복호화를 위한 자체 개발한 모듈 및 가이드를 지원합니다. [검증모듈 신청]
환경 설정
전자서명값 확인 모듈은 node v0.10.x 이상에서 정상작동을 보장합니다. 하위 버전을 이용하실 경우 추가문의가 필요합니다.
기능 구현
전자서명값 확인 모듈의 파싱 함수를 호출하는 예제입니다. 검증모듈 신청을 통해서 전자서명값 확인 모듈을 제공합니다. [검증모듈 신청]
const VerifySignedDataHelper = require('./kakaocertExample/helper')
const sampleSignedData = "MIIIXAYJKoZIhvcNAQcCoIIITTCCCEkCAQExDzANBglghkgBZQMEAgEFADArBgkqhki…"
//서명 원문 확인
console.log(VerifySignedDataHelper.getContent(sampleSignedData));
//서명 인증서 알고리즘 확인
console.log(VerifySignedDataHelper.getCertAlgorithm(sampleSignedData));
//서명 인증서 고유 일련번호 확인
console.log(VerifySignedDataHelper.getCertSerialNumber(sampleSignedData));
//서명 인증서 발급자 서명 확인
console.log(VerifySignedDataHelper.getCertSignature(sampleSignedData));
//서명 인증서 발급자 정보
console.log(VerifySignedDataHelper.getCertIssuer(sampleSignedData));
//서명 인증서 발급자 공개키 식별값 확인
console.log(VerifySignedDataHelper.getCertAuthorityKeyIdentifier(sampleSignedData));
//서명 인증서 사용자 정보 확인
console.log(VerifySignedDataHelper.getCertSubject(sampleSignedData));
//서명 인증서 사용자 공개키 식별값 확인
console.log(VerifySignedDataHelper.getCertSubjectKeyIdentifier(sampleSignedData));
//서명 인증서 유효기간 확인
console.log(VerifySignedDataHelper.getCertValidity(sampleSignedData));
//서명 인증서 제약사항 확인
console.log(VerifySignedDataHelper.getCertPolicyQualifierInfo(sampleSignedData));
// 서명 인증서 인증서 용도 확인
console.log(VerifySignedDataHelper.getCertKeyUsage(sampleSignedData));
// 서명 인증서 원문 서명 확인
console.log(VerifySignedDataHelper.getSignature(sampleSignedData));
// 서명 인증서 공개키 확인
console.log(VerifySignedDataHelper.getPublicKey(sampleSignedData));
인증서 규격
카카오 인증서는 X.509.V3의 규격을 따릅니다.
RFC 5280 상세 - https://www.ietf.org/rfc/rfc5280.txt
구분 | 상세 |
---|---|
Version | 인증서 버전 |
Algorithm | 인증서 알고리즘 |
SerialNumber | 고유 일련번호 |
CertSignature | 발급자 서명 |
Issuer | 발급자 정보 |
AuthorityKeyIdentifier | 발급자 공개키 식별값 |
Subject | 사용자 정보(성명, 국가정보) |
SubjectKeyIdentifier | 사용자 공개키 식별값 |
Validity | 유효기간 |
PolicyQualifierInfo | 제약사항 |
KeyUsage | 인증서 용도 |