74장. crypto CMS 구성 요소


Camel 버전 2.20에서 사용 가능

CMS(Cryptographic Message Syntax) 는 메시지에 서명 및 암호화하기 위한 잘 설정된 표준입니다. Apache Crypto CMS 구성 요소는 이 표준의 다음 부분을 지원합니다. * 컨텐츠 유형 "Enveloped Data"와 키 전송(symmetric key), * Content Type "Signed Data"를 사용합니다. CMS Enveloped Data 인스턴스를 생성하고, CMS Enveloped Data 인스턴스를 해독하고, CMS Signed Data 인스턴스를 생성하고, CMS Signed Data 인스턴스를 검증할 수 있습니다.

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

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 구성 요소는 공급자를 등록합니다.

74.1. 옵션

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

이름설명기본값유형

signedDataVerifier 구성 (advanced)

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

 

SignedDataVerifier 구성

EnvvedDataDecryptor 구성 (advanced)

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

 

EnvelopedDataDecryptor 구성

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

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

crypto-cms:cryptoOperation:name

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

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

이름설명기본값유형

cryptoOperation

required: crypto-cms:sign을 작업으로 설정합니다. 예를 들어, crypto-cms:sign의 암호 구성표 뒤에 제공된 Crypto 작업을 설정합니다. 가능한 값: 서명, 확인, 암호화 또는 암호 해독.

 

CryptoOperation

name

필수 URI의 이름 부분은 camel 컨텍스트 내에서 서로 다른 서명자/verifier/encrypt 또는 끝점을 구분하도록 사용자에 의해 선택할 수 있습니다.

 

문자열

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

이름설명기본값유형

키 저장소 (공용)

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

 

KeyStore

keyStoreParameters (common)

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

 

KeyStoreParameters

synchronous (advanced)

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

false

boolean

암호 (암호)

개인 키의 암호를 설정합니다. 키 저장소의 모든 개인 키의 암호가 동일한 것으로 가정합니다. 설정하지 않으면 KeyStoreParameters에 제공된 키 저장소 암호가 개인 키의 암호라고 가정합니다.

 

char[]

fromBase64 (decrypt_verify)

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

false

부울

contentEncryptionAlgorithm (encrypt)

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

 

문자열

originatorInformation Provider (encrypt)

originator 정보에 대한 공급자입니다. https://tools.ietf.org/html/rfc5652#section-6.1 에서 참조하십시오. 기본값은 null입니다.

 

OriginatorInformation 공급자

수신자 ( encrypt)

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

 

list

secretKeyLength (encrypt)

콘텐츠 암호화에 사용되는 비밀 대칭 키의 키 길이입니다. 지정된 콘텐츠 암호화 알고리즘이 다른 크기의 키를 허용하는 경우에만 사용됩니다. contentEncryptionAlgorithm=AES/CBC/PKCS5Padding or Camellia/PKCS5Padding then 128; contentEncryptionAlgorithm=DESede/CBC/PKCS5Padding then 192, 128; 강력한 암호화가 활성화된 경우 AES/CBC/PKCS5Padding 및 Camellia/CBC/PKCS5Padding의 경우 키 길이 192 및 256을 사용할 수 있습니다.

 

int

보호되지 않은Attributes GeneratorProvider (encrypt)

보호되지 않은 특성에 대한 생성기의 공급자입니다. 기본값은 null이며, 보호되지 않은 특성이 Enveloped Data 개체에 추가되지 않음을 의미합니다. https://tools.ietf.org/html/rfc5652#section-6.1 에서 참조하십시오.

 

AttributesGenerator 공급자

toBase64 (encrypt_sign)

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

false

부울

includeContent (sign)

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

true

부울

서명 자(sign)

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

 

list

signedDataHeaderBase64 (verify)

CamelCryptoCmsSignedData 헤더의 값이 base64 인코딩인지 여부를 나타냅니다. 기본값은 false입니다. 분리된 서명에만 관련이 있습니다. 분리된 서명 사례에서 헤더에는 Signed Data 오브젝트가 포함됩니다.

false

부울

verifySignaturesOfAll Signers (verify)

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

true

부울

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.