75장. 암호화 CMS 구성 요소


Camel 버전 2.20에서 사용 가능

CMS(Cryptographic Message Syntax) 는 메시지에 서명하고 암호화하기 위한 잘 설정된 표준입니다. Apache Crypto CMS 구성 요소는 이 표준의 다음 부분을 지원합니다. * Content Type "Enveloped Data" with Key Transport (asymmetric key), * 콘텐츠 유형 "로그인 데이터". CMS Enveloped Data 인스턴스를 생성하고, CMS 인코딩 데이터 인스턴스를 암호 해독하고, CMS 서명 데이터 인스턴스를 만들고, CMS 서명 데이터 인스턴스를 검증할 수 있습니다.

이 구성 요소는 Bouncy Castle 라이브러리 bcprov-jdk18on 및 bcpkix-jdk18on을 사용합니다.

Maven 사용자는 이 구성 요소에 대해 pom.xml 에 다음 종속성을 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-crypto-cms</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

이 구성 요소의 끝점을 호출하기 전에 애플리케이션에 Bouncy Castle 보안 공급자를 등록하는 것이 좋습니다.

Security.addProvider(new BouncyCastleProvider());

Bouncy Castle 보안 공급자가 등록되지 않은 경우 Crypto CMS 구성 요소가 공급자를 등록합니다.

75.1. 옵션

Crypto CMS 구성 요소는 아래에 나열된 세 가지 옵션을 지원합니다.

이름설명기본유형

signedDataVerifier 구성 (고급)

확인 작업에 대한 uri 매개변수를 결정하는 공유 SignedDataVerifierConfiguration을 구성하려면 다음을 수행합니다.

 

SignedDataVerifier 구성

envancedDataDecryptor 구성 (고급)

암호 해독 작업의 uri 매개변수를 결정하는 공유 EnvelopedDataDecryptorConfiguration을 구성하려면 다음을 수행합니다.

 

EnvelopedDataDecryptor 구성

resolveProperty Placeholders (advanced)

구성 요소 시작 시 속성 자리 표시자를 자체적으로 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.

true

boolean

Crypto CMS 끝점은 URI 구문을 사용하여 구성됩니다.

crypto-cms:cryptoOperation:name

다음 경로 및 쿼리 매개변수를 사용합니다.

75.1.1. 경로 매개변수 (2 매개변수):

이름설명기본유형

cryptoOperation

필수 입력 사항에서 끝점 uri의 암호화 스키마 이후에 제공된 Crypto 작업을 설정합니다(예: crypto-cms:sign sets sign as the operation). 가능한 값: 기호, 확인, 암호화 또는 암호 해독입니다.

 

CryptoOperation

name

필수 URI의 이름 부분은 사용자가 카멜 컨텍스트 내의 다양한 서명자/확인자/암호화기/암호화자 끝점을 구분하기 위해 선택할 수 있습니다.

 

문자열

75.1.2. 쿼리 매개변수(15 매개변수):

이름설명기본유형

키 저장소 (공용)

서명자 개인 키를 포함하는 키 저장소, 검증기 공개 키, 암호화자 공개 키, 작업에 따라 암호 해독기 개인 키입니다. 이 매개변수 또는 'keyStoreParameters' 매개변수를 사용합니다.

 

KeyStore

keyStoreParameters (공용)

서명자 개인 키, 확인자 공개 키, 암호화기 공개 키, 작업에 따라 암호 해독기 개인 키가 포함된 키 저장소입니다. 이 매개변수 또는 'keystore' 매개변수를 사용합니다.

 

KeyStoreParameters

동기 (고급)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

암호 (decrypt)

개인 키의 암호를 설정합니다. 키 저장소의 모든 개인 키의 암호는 동일한 것으로 가정합니다. 설정되지 않은 경우 개인 키의 암호는 KeyStoreParameters에 지정된 키 저장소 암호로 제공되는 것으로 간주됩니다.

 

Char[]

fromBase64 (decrypt_verify)

true인 경우 CMS 메시지는 기본 64로 인코딩되며 처리 중에 디코딩해야 합니다. 기본값은 false입니다.

false

부울

contentEncryptionAlgorithm (encrypt)

암호화 알고리즘(예: DESede/CBC/PKCS5Padding). 추가 가능한 값: DESede/CBC/PKCS5Padding, AES/CBC/PKCS5Padding, Camellia/CBC/PKCS5Padding, CAST5/CBC/PKCS5Padding.

 

문자열

originator Cryostat 공급자 (암호화)

오리케이터 정보 공급자입니다. https://tools.ietf.org/html/rfc5652#section-6.1 을 참조하십시오. 기본값은 null입니다.

 

Originator Cryostat 공급자

수신자 (암호화)

수신자 정보: org.apache.camel.component.crypto.cms.api.TransRecipientInfo 인터페이스를 구현하는 useful에 대한 참조

 

list

secretKeyLength (encrypt)

콘텐츠 암호화에 사용되는 시크릿 대칭 키의 키 길이입니다. 지정된 콘텐츠 암호화 알고리즘에서 다양한 크기의 키를 허용하는 경우에만 사용됩니다. contentEncryptionAlgorithm=AES/CBC/PKCS5Padding 또는 Camellia/PKCS5Padding 다음 128; contentEncryptionAlgorithm=DESede/CBC/PKCS5Padding then force encryption is enabled then for AES/CBC/PKCS5Padding 또한 Camellia/CBC/PKCS5Padding 키 길이(192 및 256)도 가능합니다.

 

int

unprotectedAttributes GeneratorProvider (encrypt)

보호되지 않은 속성의 생성기를 제공합니다. 기본값은 null이며 이는 보호되지 않은 속성이 Enveloped Data 오브젝트에 추가되지 않음을 의미합니다. https://tools.ietf.org/html/rfc5652#section-6.1 을 참조하십시오.

 

AttributesGenerator 공급자

toBase64 (encrypt_sign)

서명된 데이터 또는 Enveloped Data 인스턴스가 base 64로 인코딩되어야 하는지 여부를 나타냅니다. 기본값은 false입니다.

false

부울

includeContent (sign)

서명된 콘텐츠를 서명된 데이터 인스턴스에 포함해야 하는지 여부를 나타냅니다. false인 경우 분리된 서명 데이터 인스턴스가 CamelCryptoCmsSignedData 헤더에 생성됩니다.

true

부울

서명자 (서명)

서명자 정보: org.apache.camel.component.crypto.cms.api.SignerInfo를 구현하는-20에 대한 참조

 

list

signedDataHeaderBase64 (verify)

CamelCryptoCmsSignedData 헤더의 값이 base64로 인코딩되었는지 여부를 나타냅니다. 기본값은 false입니다. 분리된 서명에만 적용됩니다. 분리된 서명 사례에서 헤더에는 서명된 Data 개체가 포함됩니다.

false

부울

verifySignaturesOfAll Signers (verify)

true인 경우 서명된 Data 오브젝트에 포함된 모든 서명자의 서명이 확인됩니다. false인 경우 서명자 정보가 지정된 인증서 중 하나와 일치하는 하나의 서명만 확인됩니다. 기본값은 true입니다.

true

부울

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.