KerberosKey
KerberosKey (Kerberos 장기 비밀 키)
Kerberos 주체의 장기 비밀 키(long term secret key)를 캡슐화하는 클래스입니다.
본문
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 알고리즘 이름을 반환해야 합니다.