전자서명값

이용기관은 전자서명 검증(verifySign) 함수를 호출하여 전자서명값(signedData)을 응답 받을 수 있습니다. Base64 인코딩 되어 있는 전자서명값은 Base64 디코딩을 통해 전자서명 원문과 인증서 정보를 확인하여 검증 및 부인방지 용도로 활용할 수 있습니다. 카카오써트는 프로그램 공급사의 연동개발 편의를 위하여 전자서명값 복호화를 위한 자체 개발한 모듈 및 가이드를 지원합니다. [검증모듈 신청]

전자서명 검증 및 복호화 프로세스

환경 설정

전자서명값 확인 모듈은 Ruby v2.3 이상에서 정상작동을 보장합니다. 하위 버전을 이용하실 경우 추가문의가 필요합니다.

기능 구현

기능 구현은 전자서명값 확인 모듈의 파싱 함수를 호출하는 예제입니다. 검증모듈 신청을 통해서 전자서명값 확인 모듈을 제공합니다.

require_relative './kakaocertExample/helper.rb'
				
sampleSignedData = "MIIIXAYJKoZIhvcNAQcCoIIITTCCCEkCAQExDzANBglghkgBZQMEAgEFADArBgkqhki…"
verifySignedDataHelper = VerifySignedDataHelper.instance()

# 서명 원문 확인
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 고유 일련번호
CertSignature 발급자 서명
Issuer 발급자 정보
AuthorityKeyIdentifier 발급자 공개키 식별값
Subject 사용자 정보(성명, 국가정보)
SubjectKeyIdentifier 사용자 공개키 식별값
Validity 유효기간
PolicyQualifierInfo 제약사항
KeyUsage 인증서 용도