내 응용 프로그램은 공통 채널을 통해 여러 클라이언트에 파일을 게시해야합니다. 나는 아래의 암호화 과정을 수행하고있다.Java의 공개 키를 사용하여 데이터를 암호화하는 표준 방법
- 데이터를 암호화하기 위해 대칭 키를 생성한다.
- 이 키를 RSA 공개 키로 암호화하여 게시합니다.
이 응용 프로그램의 모든 클라이언트가 응용 프로그램의 RSA 공개 키를 가지고 있다고 생각할 때 파일을 게시하기 전에 파일을 암호화하는 표준 형식이 있습니까?
내 응용 프로그램은 공통 채널을 통해 여러 클라이언트에 파일을 게시해야합니다. 나는 아래의 암호화 과정을 수행하고있다.Java의 공개 키를 사용하여 데이터를 암호화하는 표준 방법
이 응용 프로그램의 모든 클라이언트가 응용 프로그램의 RSA 공개 키를 가지고 있다고 생각할 때 파일을 게시하기 전에 파일을 암호화하는 표준 형식이 있습니까?
분명히 암호화에는 몇 가지 표준 형식이 있습니다. 가장 널리 사용되는 표준 형식 중 하나가 Cryptographic Message Syntax (CMS)입니다. CMS의 사양은 Internet Standard을 참조하십시오. 이 형식은 메일 메시지 보안 S/MIME
에 널리 사용됩니다.
Bouncy Castle API은 이에 대한 훌륭한 지원을 제공합니다. BC의 bcmail-jdkNN-MMM.jar
은 Bouncy Castle SMIME/CMS
라이브러리입니다. 이는 PKCS#7
(이전 RFC 2630, 3369
)이라고도하며 S/MIME
개체 (RFC 3851
)를 처리하는 RFC 3852
CMS (암호화 메시지 구문) 개체를 처리하기위한 패키지입니다.
다른 일반적인 표준 형식 인 XML Encryption format. 구조화 된 데이터의 안전한 교환이 필요한 응용 프로그램의 종단 간 보안. XML
자체는 데이터 구조화에 가장 널리 사용되는 기술이므로 XML 기반 암호화는 데이터 교환 응용 프로그램의 보안 요구 사항을 처리하는 자연스러운 방법입니다.
하나만 추가할까요? 예를 들어 PGP는 어떻습니까? XML을 암호화에 사용하는 것은 자신이하는 일을 알지 못하면 매우 위험합니다. –
XML과 마찬가지입니다. 어쨌든 XML 암호화 형식을 도입하기 위해 표현을 변경했습니다. :) –
설명이 이상합니다. # 2는 "공통"채널에있는 모든 클라이언트가 동일한 개인 키를 갖는다는 것을 의미합니다. 이것은 대개 완료되지 않습니다. 그런 다음 모든 사람이 응용 프로그램의 RSA 공개 키 *를 가지고 있다고 말합니다. 당신은 당신의 시스템에 대해 자세히 설명 할 수 있습니까? 또한 메시지 인코딩에 대해 정말로 묻고 있습니까? –
@ArtjomB. 너무에 대한 암호화 질문에 관심을 가져 주셔서 감사합니다, 당신의 공헌은 (저에 의해 어쨌든) 매우 중요합니다. –