키 위치 지정자
Key Locator(com.ibm.wsspi.wssecurity.config.KeyLocator)는 디지털 서명 및 암호화를 검색하는 메커니즘의 추상입니다.
- Java™ 키 저장소 파일
- 데이터베이스
- LTPA(Lightweight Third Party Authentication) 서버
- 키의 문자열 레이블로, 이는 API(Application Programming Interface)를 통해 명시적으로 전달됩니다. 각 키와 해당 이름(문자열 레이블) 사이의 관계는 Key Locator 내에서 유지보수됩니다.
- Key Locator의 실행 컨텍스트. 명시적인 정보가 Key Locator에 전달되지 않습니다. Key Locator는 실행 컨텍스트에 따라 적절한 키를 판별합니다.
Key Locator의 현재 버전은 현재 웹 서비스 보안 구현이 비밀 키 기반 서명을 지원하지 않기 때문에 검증 키 검색을 지원하지 않습니다. Key Locator는 공개 키 기반의 서명만 지원하기 때문에 검증을 위한 키는 X.509 인증서에 수신 메시지의 <BinarySecurityToken> 요소로 임베드됩니다.
예를 들어, Key Locator는 컨텍스트에서 호출자의 ID를 확보하고 응답 암호화를 위해 호출자의 공개 키를 검색할 수 있습니다.
시나리오 사용법
이 절에서는 Key Locator의 사용 시나리오에 대해 설명합니다.
서명:
서명 키 이름은 웹 서비스 보안 구성에 지정됩니다. 이 값은 Key Locator에 전달되고 실제 키가 리턴됩니다. 해당 X.509 인증서도 리턴 가능합니다.
검증
이전에 설명한 대로 Key Locator는 서명 검증에는 사용되지 않습니다.
암호화:
암호화 키 이름은 웹 서비스 보안 구성에 지정됩니다. 이 값은 Key Locator에 전달되고 실제 키가 리턴됩니다.
복호화:
웹 서비스 보안 스펙은 키 이름 대신 키 ID 사용을 권장합니다. 그렇지만 공개 키 ID 계산 알고리즘이 IETF(Internet Engineering Task Force) RFC(Request for Comment) 3280에 정의되어 있는 동안 비밀 키에 대한 알고리즘에는 동의하지 않습니다. 따라서 현재 웹 서비스 보안의 구현은 공개 키 기반 암호화가 수행되는 경우에만 ID를 사용합니다. 그렇지 않으면 일반 키가 사용됩니다.
공개 키 기반 암호화를 사용하는 경우 키 ID 값은 수신 암호화 메시지에 임베드됩니다. 그런 다음 웹 서비스 보안 구현이 Key Locator에서 관리되는 모든 키를 검색하고 ID 값이 메시지의 값과 일치하는 키를 사용하여 메시지를 복호화합니다.
비밀 키 기반의 암호화를 사용하는 경우 키 이름 값은 수신 암호화 메시지에 임베드됩니다. 웹 서비스 보안 구현은 Key Locator에게 메시지의 이름과 일치하는 키를 요청하여 키를 사용해서 메시지를 복호화합니다.