Warum verwenden die Leute Hüpfburg anstelle von Javas eingebautem JCE-Anbieter? Was ist der Unterschied?

79

Warum verwenden Menschen Bouncycastle anstelle der Java Cryptography Extension? Was ist der Unterschied?

Clyfe
quelle
7
JCE ist eine Standard-API, die jeder Krypto-Algorithmus implementieren kann, damit auf ihn zugegriffen werden kann, ohne dass Abhängigkeiten vom Anbieter codiert werden müssen. Mit anderen Worten, mithilfe der JCE-APIs können Sie Chiffren und Verschlüsselungsanbieter wechseln, ohne Ihren Code zu ändern (in vielen Fällen). BC ist ein Anbieter, dh sie implementieren Chiffren, auf die über die JCE-APIs zugegriffen werden kann. Wenn ein anderer Anbieter hinzukommt, der den gewünschten Algorithmus besser als BC oder einen neueren, stärkeren Algorithmus implementiert, können Sie (wahrscheinlich) wechseln, ohne Ihren Code zu ändern.
Nicerobot

Antworten:

81

BouncyCastle verfügt über viel mehr Cipher Suites und Algorithmen als das von Sun bereitgestellte Standard-JCE .

Darüber hinaus bietet BouncyCastle viele Dienstprogramme zum Lesen arkaner Formate wie PEM und ASN.1, die keine vernünftige Person selbst neu schreiben möchte.

Kevin
quelle
9
Sun hatte nie vor, ein erschöpfender Anbieter von Chiffren zu sein. Aus diesem Grund verwendet JCE das Provider-Framework, das BC von bouncycastle.org/specifications.html#install unterstützt . Jeder Benutzer von BC sollte es nach Möglichkeit über die JCE-APIs verwenden.
Nicerobot
26

Bouncy Castle ist australischen Ursprungs und unterliegt daher nicht dem Export von Kryptografie aus den USA .

Dies ist nützlich, wenn Sie sich außerhalb der USA befinden und Schlüsselgrößen besser verwalten müssen, als dies durch diese Einschränkung zulässig ist. In diesem Fall dürfen Sie dafür keine Software aus den USA verwenden.

Laurence R. Ugalde
quelle
5
Ich frage mich, wie viele Einschränkungen tatsächlich noch bestehen, anno 2016? Soweit ich weiß, gibt es keine Beschränkung der Schlüsselgröße mehr, solange Sie sich beim Büro für Industrie und Sicherheit (BIS) des US-Handelsministeriums registrieren. Ich denke, Oracle tut dies bereits. Aber die Vorschriften sind kryptisch (Wortspiel beabsichtigt).
Peterh
1
Ugh, wenn ich außerhalb der USA bin, muss mir nichts erlaubt werden. Dem Projekt muss möglicherweise gestattet werden, etwas zu versenden.
Petar Donchev
Die meisten Einschränkungen in der westlichen Welt hängen davon ab, wohin sie heutzutage exportiert werden und nicht von der Schlüsselgröße. Die Beschränkung der Schlüsselgröße war eines der Dinge, die Ende der 90er Jahre gelockert wurden. Was die aktuellen australischen Vorschriften betrifft, ist es nicht ganz so lasch, wie diese Antwort impliziert, aber es ist nicht so schlimm, wie es die Angstmacherei von vor einigen Jahren betraf (es sei denn, Sie erfinden einen neuen Algorithmus und ein oder zwei andere Dinge. Im Allgemeinen Es wird durch das Wassenar-Arrangement und die ITAR-Bestimmungen (über AU DoD) abgedeckt.
Ben
Ein Nachtrag zu dem obigen Kommentar, der darauf hinweisen könnte, was von Australien aus getan werden kann; Ich habe die DoD ITAR-Überprüfungen abgeschlossen, ohne einen einzigen Punkt auszulösen (alle waren ohnehin nur Antworten vom Typ "Rufen Sie uns zur Klärung an"), und daher gibt es keine Hindernisse für meine FOSS-Kryptoarbeit, obwohl nichts davon in Java ist. Dies liegt daran, dass sich AU mehr mit neuen und innovativen Kryptografieentwicklungen befasst, die ohnehin nicht überall bekannt sind (auch die AU DoD-Definition von "gemeinfrei" ist nicht die übliche urheberrechtliche, sie bedeutet, dass sie nicht klassifiziert ist oder beschränkt).
Ben
8

Auf Servern oder Desktops sehe ich keinen Grund, BC zu verwenden, es sei denn, Sie müssen sich mit einigen älteren Chiffren oder Formaten befassen, die von Sun JCE nicht unterstützt werden.

Viele JREs verfügen jedoch nicht über einen JCE-Anbieter, wie in mobilen oder eingebetteten Umgebungen. BC ist in solchen Fällen praktisch.

ZZ Coder
quelle
2
Auf dem Server gibt es definitiv einen Grund, warum Ihr Server TLS verwendet und Sie sich um die Sicherheit kümmern (wenn nicht, warum verwenden Sie TLS überhaupt?). Die in JCE enthaltenen Cipher Suites enthalten nur AES im CBC-Modus, bei dem einige Probleme bekannt sind: googleonlinesecurity.blogspot.dk/2013/11/… .
Søren Boisen
1
Zu Ihrer Information: Dies ist zumindest kein echtes Java8 (von Oracle).
Usman Ismail