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