Re: FIPS Java API provider and non-FIPS provider

David Hook <dgh-rTAZ0PM/[email protected]>
Newsgroups gmane.comp.encryption.bouncy-castle.devel
Message-ID <[email protected]>
The FIPS package can't be changed. You could do a "spongycastle" on the
original Bouncy Castle ones.

The FIPS library doesn't have an implementation of the low-level BC
library. From a FIPS point of view the low-level API breaks most of the
existing rules, and probably a couple they did not consider.

Providers can certainly co-exist, but package name clashes (at least in
the system class loader) are right out.

Regards,

David

On 21/06/18 06:33, Rhuberg,Anthony wrote:
> Is it possible or an option to change the package names of bouncy
> castle fips implementation? Changing the name would create a
> independent provider that would not conflict with any other providers.
>
> ------------------------------------------------------------------------
> *From:* Rhuberg,Anthony <[email protected]>
> *Sent:* Wednesday, June 20, 2018 3:49:52 PM
> *To:* [email protected]; [email protected]
> *Subject:* RE: [dev-crypto] FIPS Java API provider and non-FIPS provider
>  
> Thanks for the clarification. I found at least one class in the same
> package with a different implementation in bc-fips than bcprov. I am
> not sure that affects our workflow, but it explains the conflict.
>
>
> -----Original Message-----
> From: Eckenfels. Bernd [mailto:[email protected]]
> Sent: Wednesday, June 20, 2018 3:19 PM
> To: [email protected]
> Subject: RE: [dev-crypto] FIPS Java API provider and non-FIPS provider
>
> The problem is that BC and BcFiPS have conflicting implementation
> classes. There is some logic to that (be a plugin replacement), but
> overall it seems to hurt more than it helps. Maybe it would be a
> option to offer a FIPS jar with distinct namespace for those cases.
>
> --
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.seeburger.com&data=02%7C01%7CAnthony.Rhuberg%40Cerner.com%7C0480b4cbfcff443e0de708d5d6e2ba56%7Cfbc493a80d244454a815f4ca58e8c09d%7C0%7C1%7C636651191659833148&sdata=fCAqTqOTcglZ49cyLIA6HCPBiNEp3g4i9Ijydu9sXbo%3D&reserved=0
> ________________________________________
> From: Rhuberg,Anthony [[email protected]]
> Sent: Wednesday, June 20, 2018 20:58
> To: David Hook; Matti Aarnio; [email protected]
> Subject: RE: [dev-crypto] FIPS Java API provider and non-FIPS provider
>
> Hi again,
>
> I am trying to understand the conflict further and am not really
> familiar with JCA/JCE.
>
> If both JCE providers 'bcprov´and 'bcfips' are loaded into the same
> class loader, I do not understand the conflict if they both have
> different provider names and implementation classes. If I request a
> Signature.getinstance("SHA256withRSA", "BCFIPS"), would I not get the
> bcfips implementation and NOT the bcprov instance?
>
> Can multiple JCE providers be deployed within an application and the
> application decide which implementation to use without conflict? I
> guess I am expecting providers to coexist.
>
> Is this conflict a BC conflict only? I am asking because if we
> selected another JCE provider (to get around this issue) and still
> have bcprov in the same class loader, would we still have a similar
> conflict between another provider and bcprov?
>
> Thanks again,
> Tony
>
> From: David Hook [mailto:dgh-rTAZ0PM/[email protected]]
> Sent: Tuesday, June 19, 2018 6:18 PM
> To: Rhuberg,Anthony <[email protected]>; Matti Aarnio
> <[email protected]>; [email protected]
> Subject: Re: [dev-crypto] FIPS Java API provider and non-FIPS provider
>
>
> The high risk element is the JCE - it depends how it gets loaded and
> if both things make use of the respective providers. Often this means
> things end up in the system class loader and in that case there can be
> only one.
>
> If bcprov isn't loaded in the system class loader and/or bc-fips is
> able to satisfy the dependency anyway, you will probably be okay.
>
> General the problems you see if it is an issue don't make sense.
> You'll get issues with undefined methods, class not found, missing
> fields. In some cases you will get class cast exceptions where it
> seems impossible as well.
>
> If you want to ask the OpenSAML guys to talk to us we would be happy
> to help them update.
>
> Regards,
>
> David
>
> On 20/06/18 05:04, Rhuberg,Anthony wrote:
> Just a follow up from my previous question.
>
> We have a configuration with a Tomcat Valve which uses opensaml (with
> a dependency on xmlsec -> bcprov-jdk15on). These classes are part of
> the root class loader (call it CLroot).
> We just started using bc-fips-1.0.1.jar for digital signatures in a
> web application. That jar is part of the war (call it CL1).
>
> Based on this configuration, we expected to observe some conflict when
> executing the pathways for the Tomcat Valve and web application.
>
> The applications are "working", but worry that there is some unseen or
> potential problem that we have just not encountered.
>
> Any thoughts? Do you have an examples of how a collision (between the
> 2 jars bcprov-jdk15on - bc-fips-1.0.1.jar ) would be manifest? Do you
> have examples of typical errors when there is a conflict?
>
> Thanks,
> Tony
>
>
> From: Matti Aarnio [mailto:[email protected]]
> Sent: Tuesday, June 05, 2018 2:33 PM
> To: Rhuberg,Anthony
> <[email protected]><mailto:[email protected]>;
> [email protected]<mailto:[email protected]>
> Subject: Re: [dev-crypto] FIPS Java API provider and non-FIPS provider
>
> Hi Tony,
>
> The detail that affects more than "in same JVM" is "are they in same
> class loader?"
>
> WARs are loaded into separate class loader chains.
> WAR1 gets loader chain:  CL1, CLroot.
> WAR2 gets loader chain:  CL2, CLroot.
>
> If neither BCFIPS nor BCPROV are in CLroot, and instead in separate
> WARs, then the libraries will not see each other, and no collision
> happens.
>
> The "CLroot" is server/lib/ in current Tomcats.
> The "CLn" is webapps/warname/WEB-INF/lib/
>
> Best Regards, Matti
>
> On 05.06.2018 21:01, Rhuberg,Anthony wrote:
>
> We have an application deployed within Tomcat and that application is
> uses Apache CXF which has a dependency on bcprov-jdk15on-1.51.
>
> Referring to:
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.bouncycastle.org%2Ffips-java%2FBCFipsIn100.pdf&data=02%7C01%7CAnthony.Rhuberg%40Cerner.com%7C0480b4cbfcff443e0de708d5d6e2ba56%7Cfbc493a80d244454a815f4ca58e8c09d%7C0%7C1%7C636651191659833148&sdata=Uu0MQygo4cUAhLyJarXP1W30tz1sEcvY2u9N993brcY%3D&reserved=0<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.bouncycastle.org%2Ffips-java%2FBCFipsIn100.pdf&data=02%7C01%7CAnthony.Rhuberg%40Cerner.com%7Ce60fa34500a84aeb1a7a08d5cb12c856%7Cfbc493a80d244454a815f4ca58e8c09d%7C0%7C1%7C636638203905695412&sdata=wmqUcMfgAVX7I2s%2F6rXx2ZCBUnzZZRRMKMBWZXLPR3o%3D&reserved=0>:
> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.bouncycastle.org%2Ffips-java%2FBCFipsIn100.pdf&data=02%7C01%7CAnthony.Rhuberg%40Cerner.com%7C0480b4cbfcff443e0de708d5d6e2ba56%7Cfbc493a80d244454a815f4ca58e8c09d%7C0%7C1%7C636651191659833148&sdata=Uu0MQygo4cUAhLyJarXP1W30tz1sEcvY2u9N993brcY%3D&reserved=0%3Chttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.bouncycastle.org%2Ffips-java%2FBCFipsIn100.pdf&data=02%7C01%7CAnthony.Rhuberg%40Cerner.com%7Ce60fa34500a84aeb1a7a08d5cb12c856%7Cfbc493a80d244454a815f4ca58e8c09d%7C0%7C1%7C636638203905695412&sdata=wmqUcMfgAVX7I2s%2F6rXx2ZCBUnzZZRRMKMBWZXLPR3o%3D&reserved=0%3E:>
> "The provider jar itself has no external dependencies, but it cannot
> be used in the same JVM as the regular Bouncy Castle provider. The
> classes in the two jar files do not get along".
>
> We are integrating FIPS Java API provider into another application
> WAR. We have not encountered an issues yet, but wanted to know what
> kinds of errors are expected if two applications use different Bouncy
> Castle Java implementations within the same JVM.
>
> Thanks,Tony
>
>
>
> CONFIDENTIALITY NOTICE This message and any included attachments are
> from Cerner Corporation and are intended only for the addressee. The
> information contained in this message is confidential and may
> constitute inside or non-public information under international,
> federal, or state securities laws. Unauthorized forwarding, printing,
> copying, distribution, or use of such information is strictly
> prohibited and may be unlawful. If you are not the addressee, please
> promptly delete this message and notify the sender of the delivery
> error by e-mail or you may call Cerner's corporate offices in Kansas
> City, Missouri, U.S.A at (+1) (816)221-1024.
>
>
>
>
>
>
>
>
>
>
>
> SEEBURGER AG            Vorstand/SEEBURGER Executive Board:
> Sitz der Gesellschaft/Registered Office:                Axel Haas,
> Michael Kleeberg, Friedemann Heinz, Dr. Martin Kuntz, Matthias Feßenbecker
> Edisonstr. 1
> D-75015 Bretten         Vorsitzende des Aufsichtsrats/Chairperson of
> the SEEBURGER Supervisory Board:
> Tel.: 07252 / 96 - 0            Prof. Dr. Simone Zeuchner
> Fax: 07252 / 96 - 2222
> Internet:
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.seeburger.de&data=02%7C01%7CAnthony.Rhuberg%40Cerner.com%7C0480b4cbfcff443e0de708d5d6e2ba56%7Cfbc493a80d244454a815f4ca58e8c09d%7C0%7C1%7C636651191659833148&sdata=XDo7F4rA%2BTro3va1SqqA9eaq8zlVomq%2BY5RLMdVGYSI%3D&reserved=0              
> Registergericht/Commercial Register:
> e-mail: [email protected]               HRB 240708 Mannheim
>
>
> Dieses E-Mail ist nur für den Empfänger bestimmt, an den es gerichtet
> ist und kann vertrauliches bzw. unter das Berufsgeheimnis fallendes
> Material enthalten. Jegliche darin enthaltene Ansicht oder
> Meinungsäußerung ist die des Autors und stellt nicht notwendigerweise
> die Ansicht oder Meinung der SEEBURGER AG dar. Sind Sie nicht der
> Empfänger, so haben Sie diese E-Mail irrtümlich erhalten und jegliche
> Verwendung, Veröffentlichung, Weiterleitung, Abschrift oder jeglicher
> Druck dieser E-Mail ist strengstens untersagt. Weder die SEEBURGER AG
> noch der Absender (Eckenfels. Bernd) übernehmen die Haftung für Viren;
> es obliegt Ihrer Verantwortung, die E-Mail und deren Anhänge auf Viren
> zu prüfen.
>
>
> This email is intended only for the recipient(s) to whom it is
> addressed. This email may contain confidential material that may be
> protected by professional secrecy. Any fact or opinion contained, or
> expression of the material herein, does not necessarily reflect that
> of SEEBURGER AG. If you are not the addressee or if you have received
> this email in error, any use, publication or distribution including
> forwarding, copying or printing is strictly prohibited. Neither
> SEEBURGER AG, nor the sender (Eckenfels. Bernd) accept liability for
> viruses; it is your responsibility to check this email and its
> attachments for viruses.
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.