KerberosKey

KerberosKey (Kerberos 장기 비밀 키)

Kerberos 주체의 장기 비밀 키(long term secret key)를 캡슐화하는 클래스입니다.

출처: Java API Reference

본문

KerberosKey 객체는 EncryptionKey, 소유자로서의 KerberosPrincipal, 그리고 키의 버전 번호를 포함합니다. Kerberos 프로토콜 명세(RFC 4120) 4.2.9절에서 EncryptionKey는 다음과 같이 정의되어 있어요.

EncryptionKey ::= SEQUENCE {
    keytype   [0] Int32        -- 실제로는 암호화 타입 --
    keyvalue  [1] OCTET STRING
}

KerberosKey의 키 재료는 위 keyValue의 값입니다. 주체의 비밀번호를 얻어 그로부터 비밀 키를 생성하는 모든 Kerberos JAAS 로그인 모듈은 이 클래스를 사용해야 합니다. 사용자 간 인증 없이 서버를 인증할 때처럼 특정 상황에서는 로그인 모듈이 인증 과정의 커밋 단계에서 이 클래스의 인스턴스를 Subject의 비밀 자격증명 집합에 저장하기도 해요.

키탭(keytab)으로 비밀 키를 읽는 Kerberos 서비스는 필요할 때 최신 키를 읽을 수 있는 KeyTab 클래스를 사용해야 합니다. 애플리케이션이 Subject에서 KerberosKey 인스턴스에 접근해야 한다면 PrivateCredentialPermission을 부여받아야 할 수 있습니다. 기본 JGSS Kerberos 메커니즘으로 접근할 때는 이 권한이 필요 없지만, 그 대신 적절한 ServicePermission이 필요해요.

KerberosKey(KerberosPrincipal, char[], String) 생성자로 키를 만들 때 구현에 따라 비-IANA 알고리즘 이름(예: "rc4-hmac" 대신 "ArcFourMac")을 받아들일 수 있지만, getAlgorithm() 메서드는 항상 IANA 알고리즘 이름을 반환해야 합니다.

더 알아보기 (Learn more)

Java 공식 API