296장. XML Security DataFormat

Camel 버전 2.0에서 사용 가능

XMLSecurity 데이터 형식은 문서, 요소 및 요소 콘텐츠 수준에서 XML 페이로드의 암호화 및 암호 해독을 용이하게 합니다(Axx를 사용한 동시 멀티 노드 암호화/암호화 포함). XML Signature 사양을 사용하여 메시지에 서명하려면 Camel XML 보안 구성 요소를 참조하십시오.

암호화 기능은 Apache XML Security(Santuario) 프로젝트를 사용하여 지원되는 형식을 기반으로 합니다. 대칭 암호화/암호화는 현재 Triple-DES 및 AES(128, 192 및 256) 암호화 형식을 사용하여 지원됩니다. 나중에 필요에 따라 추가 형식을 쉽게 추가할 수 있습니다. 이 기능을 통해 Camel 사용자는 경로를 따라 디스패치되거나 수신되는 동안 페이로드를 암호화/암호 해독할 수 있습니다.

Camel 2.9에서사용할 수 있는
XMLSecurity Data Format은 비대칭 키 암호화를 지원합니다. 이 암호화 모델에서는 대칭 키가 생성되고 XML 콘텐츠 암호화 또는 암호 해독을 수행하는 데 사용됩니다.In this encryption model a symmetric key is generated and used to perform XML content encryption or decryption. 이 "컨텐츠 암호화 키"는 수신자의 공개 키를 "키 암호화 키"로 활용하는 비대칭 암호화 알고리즘을 사용하여 자체적으로 암호화됩니다. 비대칭 키 암호화 알고리즘을 사용하면 수신자의 개인 키 보유자만 생성된 대칭 암호화 키에 액세스할 수 있습니다.Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. 따라서 개인 키 소유자만 메시지를 디코딩할 수 있습니다. XMLSecurity 데이터 형식은 비대칭 키 암호화를 사용하여 메시지 콘텐츠 및 암호화 키를 암호화하고 암호 해독하는 데 필요한 모든 논리를 처리합니다.The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.

XMLSecurity Data Format은 암호화를 위해 콘텐츠를 선택하는 XPath 쿼리를 처리할 때 네임스페이스에 대한 지원이 향상되었습니다. 네임스페이스 정의 매핑은 데이터 형식 구성의 일부로 포함될 수 있습니다. 이렇게 하면 XPath 쿼리의 접두사 값과 대상 xml 문서의 접두사 값이 동일한 문자열이 아닌 경우에도 true 네임스페이스 일치가 활성화됩니다.This enables true namespace matching, even if the prefix values in the XPath query and the target xml document are not equivalent strings.

296.1. XMLSecurity 옵션

XML Security dataformat은 아래에 나열된 13가지 옵션을 지원합니다.

이름기본값Java Type설명

xmlCipherAlgorithm

TRIPLEDES

문자열

XML 메시지 콘텐츠의 암호화/암호 해독에 사용되는 암호화 알고리즘입니다. 사용 가능한 옵션은 다음과 같습니다. XMLCipher.TRIPLEDES XMLCipher.AES_128 XMLCipher.AES_192 XMLCipher.AES_192_GCM XMLCipher.AES_256 XMLCipher.AES_256_GCM XMLCipher.SEED_128 XMLCipher.SEED_128 XMLCipher ipher.CAMELELLIA_128 XMLCipher.192 XMLCipher.CAMELLIA_256 기본값은 MLCipher.TRIPLEDES입니다.

passPhrase

 

문자열

암호화/암호화 콘텐츠를 암호화하기 위해 passPhrase로 사용되는 문자열입니다. PassPhrase를 제공해야 합니다. passPhrase를 지정하지 않으면 기본 passPhrase가 사용됩니다. passPhrase는 적절한 암호화 알고리즘과 함께 사용해야 합니다. 예를 들어, TRIPLEDES를 사용한 passPhase는 다른 24 Byte 키 일 수 있습니다.

passPhraseByte

 

byte[]

암호화/암호화 콘텐츠를 암호화하기 위해 passPhrase로 사용되는 바이트입니다. PassPhrase를 제공해야 합니다. passPhrase를 지정하지 않으면 기본 passPhrase가 사용됩니다. passPhrase는 적절한 암호화 알고리즘과 함께 사용해야 합니다. 예를 들어, TRIPLEDES를 사용한 passPhase는 다른 24 Byte 키 일 수 있습니다.

secureTag

 

문자열

암호화/암호 해독에 대해 선택된 XML Element에 대한 XPath 참조입니다. 태그를 지정하지 않으면 전체 페이로드가 암호화되고 해독됩니다.

secureTagContents

false

부울

XML Element가 암호화되는지 또는 XML Element false의 내용 여부를 지정하는 부울 값 = Element Level = Element Content Level

keyCipherAlgorithm

RSA_OAEP

문자열

비대칭 키의 암호화/암호 해독에 사용되는 암호화 알고리즘입니다.The cipher algorithm to be used for encryption/decryption of the asymmetric key. 사용 가능한 옵션은 XMLCipher.RSA_v1dot5 XMLCipher.RSA_OAEP.RSA_OAEP_11 기본값은 XMLCipher.RSA_OAEPEP입니다.

recipientKeyAlias

 

문자열

비대칭 키 암호화 또는 암호 해독을 수행할 때 사용할 키 별칭은 KeyStore에서 수신자의 공개 또는 개인 키를 검색할 때 사용됩니다.

keyOrTrustStoreParametersId

 

문자열

레지스트리에서 조회할 KeyStore 인스턴스를 나타냅니다. 이 인스턴스는 보낸 사람의 trustStore 또는 수신자의 키Store를 나타내는 KeyStore 인스턴스를 생성하고 로드하는 데 사용되는 구성 옵션에 사용됩니다.

keyPassword

 

문자열

KeyStore에서 개인 키를 검색하는 데 사용할 암호입니다. 이 키는 비대칭 암호 해독에 사용됩니다.This key is used for symmetric decryption.

digestAlgorithm

SHA1

문자열

RSA OAEP 알고리즘과 함께 사용할 다이제스트 알고리즘입니다. 사용 가능한 선택 사항은 XMLCipher.SHA1 XMLCipher.SHA256 XMLCipher.SHA512입니다. 기본값은 XMLCipher.SHA1입니다.

mgfAlgorithm

MGF1_SHA1

문자열

RSA OAEP 알고리즘과 함께 사용할 MGF Algorithm 사용 가능한 옵션은 EncryptionConstants.MGF1_SHA1 EncryptionConstants.MGF1_SHA256 EncryptionConstants.MGF1_SHA512입니다. 기본값은 EncryptionConstants.MGF1_SHA1_SHA1입니다.

addKeyValueForEncryptedKey

true

부울

Session 키를 EncryptedKey 구조의 KeyValue로 암호화하는 데 사용되는 공개 키를 추가할지 여부입니다.Whether to add the public key used to encrypt the session key as a KeyValue in the EncryptedKey structure or not.

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

296.1.1. 키 암호화 알고리즘

Camel 2.12.0부터 기본 키 캐싱 알고리즘은 이제 XMLCipher.RSA_v1dot5 대신 XMLCipher.RSA_OAEP입니다. XMLCipher.RSA_v1dot5는 다양한 공격으로 인해 사용되지 않습니다. RSA v1.5를 키 암호화 알고리즘으로 사용하는 요청은 키 암호 알고리즘으로 명시적으로 구성된 경우가 아니면 거부됩니다.