전자서명값
전자서명값
이용기관은 간편로그인 검증(verifyLogin) 함수를 호출하여 전자서명값(signedData)을 응답 받을 수 있습니다. Base64 인코딩 되어 있는 전자서명값은 Base64 디코딩을 통해 전자서명 원문과 인증서 정보를 확인하여 검증 및 부인방지 용도로 활용할 수 있습니다. 카카오써트는 프로그램 공급사의 연동개발 편의를 위하여 전자서명값 복호화를 위한 자체 개발한 모듈 및 가이드를 지원합니다. [검증모듈 신청]
환경 설정
전자서명값 확인 모듈은 Python v2.7 이상에서 정상작동을 보장합니다. 하위 버전을 이용하실 경우 추가문의가 필요합니다.
기능 구현
전자서명값 확인 모듈의 파싱 함수를 호출하는 예제입니다. 검증모듈 신청을 통해서 전자서명값 확인 모듈을 제공합니다. [검증모듈 신청]
from kakaocertExample.helper import VerifySignedDataHelper
sampleSignedData = "MIIIXAYJKoZIhvcNAQcCoIIITTCCCEkCAQExDzANBglghkgBZQMEAgEFADArBgkqhki…"
helper = VerifySignedDataHelper()
# 서명 원문 확인
print(helper.getContent(sampleSignedData))
# 서명 인증서 알고리즘 확인
print(helper.getCertAlgorithm(sampleSignedData))
# 서명 인증서 고유 일련번호 확인
print(helper.getCertSerialNumber(sampleSignedData))
# 서명 인증서 발급자 서명 확인
print(helper.getCertSignature(sampleSignedData))
# 서명 인증서 발급자 정보
print(helper.getCertIssuer(sampleSignedData))
# 서명 인증서 발급자 공개키 식별값 확인
print(helper.getCertAuthorityKeyIdentifier(sampleSignedData))
# 서명 인증서 사용자 정보 확인
print(helper.getCertSubject(sampleSignedData))
# 서명 인증서 사용자 공개키 식별값 확인
print(helper.getCertSubjectKeyIdentifier(sampleSignedData))
# 서명 인증서 유효기간 확인
print(helper.getCertValidity(sampleSignedData))
# 서명 인증서 제약사항 확인
print(helper.getCertPolicyQualifierInfo(sampleSignedData))
# 서명 인증서 인증서 용도 확인
print(helper.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 | 인증서 용도 |