전자서명값
전자서명값
이용기관은 간편로그인 검증(verifyLogin) 함수를 호출하여 전자서명값(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 | 인증서 용도 |