사람들이 Java의 내장 JCE 공급자 대신 bouncycastle을 사용하는 이유는 무엇입니까? 차이점은 무엇입니까?


79

사람들이 Java Cryptography Extension 대신 bouncycastle을 사용하는 이유는 무엇입니까? 차이점은 무엇입니까?


7
JCE는 모든 암호화 알고리즘이 구현할 수있는 표준 API로 공급자에 대한 코딩 종속성없이 액세스 할 수 있습니다. 즉, JCE API를 사용하면 코드를 변경하지 않고도 (대부분의 경우) 암호 및 암호 공급자를 전환 할 수 있습니다. BC는 JCE API를 통해 액세스 할 수있는 암호를 구현하는 공급자입니다. BC보다 더 나은 알고리즘을 구현하는 다른 공급자 나 새롭고 강력한 알고리즘을 구현하는 경우 코드를 변경하지 않고도 전환 할 수 있습니다 (아마도).
nicerobot

답변:


81

BouncyCastle에는 Sun에서 제공 하는 기본 JCE 보다 더 많은 암호 그룹과 알고리즘 이 있습니다 .

그 외에도 BouncyCastle에는 PEM 및 ASN.1과 같은 비정상적인 형식을 읽는 데 필요한 많은 유틸리티가 있으므로 정상적인 사람이 스스로 다시 작성하고 싶지 않습니다.


9
Sun은 완전한 암호 제공 업체를 의도하지 않았습니다. 이것이 JCE가 BC가 bouncycastle.org/specifications.html#install을 지원하는 공급자 프레임 워크를 사용하는 이유 입니다. BC의 모든 사용자는 가능하면 JCE API를 통해 사용하는 것이 현명 할 것입니다.
nicerobot

26

Bouncy Castle은 호주 출신이므로 미국으로부터의 암호화 수출 대상이 아닙니다 .

미국 이외의 지역에 있고 그러한 제한에서 허용하는 것보다 더 크게 키 크기를 관리해야하는 경우에 유용합니다. 이 경우 미국의 소프트웨어를 사용할 수 없습니다.


5
실제로 얼마나 많은 제한이 남아 있는지 궁금합니다. anno 2016? 미국 상무부의 산업 및 보안 국 (BIS)에 등록하는 한 더 이상 키 크기에 대한 제한이 없다는 것을 이해하는 한, 오라클이 이미하고있는 일입니다. 그러나 규정은 모호합니다 (말장난 의도).
peterh

1
어, 내가 미국 밖에 있으면 아무것도 허용 할 필요가 없습니다. 프로젝트가 무언가를 배송하도록 허용해야 할 수도 있습니다.
Petar Donchev

서구 세계의 대부분의 제한은 요즘 키 크기가 아닌 수출 위치를 기반으로합니다. 키 크기 제한은 90 년대 말에 완화 된 것 중 하나였습니다. 현재의 호주 규정에 관해서는이 답변이 의미하는 것만 큼 느슨하지는 않지만 몇 년 전의 두려움이 우려했던 것만 큼 나쁘지는 않습니다 (새로운 알고리즘과 한두 가지 다른 것을 발명하지 않는 한. 일반적으로 Wassenar Arrangement 및 ITAR 규정 (AU DoD를 통해)이 적용됩니다
Ben

위 의견에 대한 부록으로 호주에서 무엇을 할 수 있는지 표시 할 수 있습니다. 나는 단일 지점 (어쨌든 "명확을 위해 우리에게 전화"유형 응답에 불과했다)없이 DoD ITAR 검사를 완료했으며, Java에는 없지만 FOSS 암호화 작업에는 장벽이 없습니다. AU 문제가 더 새롭고 혁신적인 암호 개발,하지 잘 어쨌든 모든 곳에서 알려진 것들로하기 때문에이 (또한 "공개"의 AU 국방부 정의입니다 하지 그들은 그것을 분류 아니에요 것을 의미하는 데 사용, 일반적인 저작권 하나 한정된).
Ben

8

서버 또는 데스크탑에서 Sun JCE에서 지원하지 않는 레거시 암호 또는 형식을 처리해야하는 경우가 아니면 BC를 사용할 이유가 없습니다.

그러나 많은 JRE는 모바일 또는 임베디드 환경과 같이 JCE 공급자와 함께 제공되지 않습니다. BC는 이러한 경우에 유용합니다.


2
서버에서 서버가 TLS를 사용하고 있고 보안에 관심이 있다면 확실히 이유가 있습니다 (그렇지 않으면 왜 TLS를 사용하고 있습니까?). JCE에 포함 된 암호 제품군에는 CBC 모드의 AES 만 포함되어 있으며 여기에는 몇 가지 알려진 문제가 있습니다. googleonlinesecurity.blogspot.dk/2013/11/… .
Søren Boisen 2015

1
참고로 이것은 최소한 (Oracle에서) Java8이 아닙니다.
Usman Ismail
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.