{{Short description|Cryptography library}} {{Infobox software | name = BSAFE | released = 1996 | developer = [[Dell]], formerly [[RSA Security]] | programming_language = [[C (programming language)|C]], [[Assembly language|assembly]], [[Java (programming language)|Java]] | genre = [[Cryptography]] [[Library (computer science)|library]], [[Commercial software]] | license = [[Proprietary software|Proprietary]] | website = {{URL|https://www.dell.com/}} | operating system = [[BSD]], [[Linux]], [[macOS]], [[Microsoft Windows]], [[Android (operating system)|Android]], [[iOS]], [[AIX]], [[Solaris (operating system)|Solaris]] }}
'''Dell BSAFE''', formerly known as '''RSA BSAFE''', is a [[FIPS 140-2]] validated [[cryptography]] library, available in both [[C (programming language)|C]] and [[Java (programming language)|Java.]] BSAFE was initially created by [[RSA Security]], which was purchased by [[Dell EMC|EMC]] and then, in turn, by Dell. When Dell sold the RSA business to [[Symphony Technology Group]] in 2020, Dell elected to retain the BSAFE product line.<ref>{{Cite web|title=BSAFE support and billing update {{!}} Dell US|url=https://www.dell.com/support/kbdoc/en-us/000125778/bsafe-support-and-billing-update|access-date=2021-07-26|website=www.dell.com|archive-date=2021-07-26|archive-url=https://web.archive.org/web/20210726191644/https://www.dell.com/support/kbdoc/en-us/000125778/bsafe-support-and-billing-update|url-status=live}}</ref><ref>{{cite news |url= https://www.rsa.com/en-us/company/news/rsa--emerges-as-independent-company |title= RSA Emerges as Independent Company Following Completion of Acquisition by Symphony Technology Group |author= RSA |date= September 1, 2020 |publisher= RSA |access-date= June 7, 2023 |archive-date= September 4, 2020 |archive-url= https://web.archive.org/web/20200904082109/https://www.rsa.com/en-us/company/news/rsa--emerges-as-independent-company |url-status= live }}</ref> BSAFE was one of the most common encryption toolkits before the [[RSA (cryptosystem)#Patent|RSA]] patent expired in September 2000. It also contained implementations of the RC''x'' ciphers, with the most common one being [[RC4]]. From 2004 to 2013 the default [[Random number generation|random number generator]] in the library was a [[National Institute of Standards and Technology|NIST]]-approved RNG standard, widely known to be insecure from at least 2006, containing a [[kleptographic]] [[backdoor (computing)|backdoor]] from the American [[National Security Agency]] (NSA), as part of its secret [[Bullrun (decryption program)|Bullrun]] program.<ref name="NSApaid">{{cite news | url=https://www.reuters.com/article/us-usa-security-rsa-idUSBRE9BJ1C220131220 | title=Exclusive: Secret contract tied NSA and security industry pioneer | date=December 20, 2013 | work=Reuters | access-date=May 11, 2021 | author=Menn, Joseph | location=San Francisco | archive-date=September 24, 2015 | archive-url=https://web.archive.org/web/20150924191918/http://www.reuters.com/article/2013/12/20/us-usa-security-rsa-idUSBRE9BJ1C220131220 | url-status=live }}</ref> In 2013 Reuters revealed that RSA had received a payment of $10 million to set the compromised algorithm as the default option.<ref name="NSApaid"/> The RNG standard was subsequently withdrawn in 2014, and the RNG removed from BSAFE beginning in 2015.
== Cryptography backdoors ==
===Dual_EC_DRBG random number generator=== From 2004 to 2013, the default [[cryptographically secure pseudorandom number generator]] (CSPRNG) in BSAFE was [[Dual_EC_DRBG]], which contained an alleged backdoor from [[NSA]], in addition to being a biased and slow CSPRNG.<ref name="green">{{cite web|url=http://blog.cryptographyengineering.com/2013/09/rsa-warns-developers-against-its-own.html|title=RSA warns developers not to use RSA products|work=A Few Thoughts on Cryptographic Engineering<!--: Some random thoughts about crypto. Notes from a course I teach. Pictures of my dachshunds.-->|date=September 20, 2013|author=Matthew Green|access-date=December 28, 2013|archive-date=October 10, 2013|archive-url=https://web.archive.org/web/20131010085457/http://blog.cryptographyengineering.com/2013/09/rsa-warns-developers-against-its-own.html|url-status=live}}</ref> The cryptographic community had been aware that Dual_EC_DRBG was a very poor CSPRNG since shortly after the specification was posted in 2005, and by 2007 it had become apparent that the CSPRNG seemed to be designed to contain a hidden backdoor for NSA, usable only by NSA via a secret key.<ref name="schneier">{{cite web|url=https://www.schneier.com/blog/archives/2007/11/the_strange_sto.html|title=The Strange Story of Dual_EC_DRBG|author=Bruce Schneier|access-date=2013-12-28|archive-date=2019-04-23|archive-url=https://web.archive.org/web/20190423212823/https://www.schneier.com/blog/archives/2007/11/the_strange_sto.html|url-status=live}}</ref> In 2007, [[Bruce Schneier]] described the backdoor as "too obvious to trick anyone to use it."<ref name="schneier" /> The backdoor was confirmed in the [[Global surveillance disclosure|Snowden leaks]] in 2013, and it was insinuated that NSA had paid RSA Security US$10 million to use Dual_EC_DRBG by default in 2004,<ref name="NSApaid" /> though RSA Security denied that they knew about the backdoor in 2004. The Reuters article which revealed the secret $10 million contract to use Dual_EC_DRBG described the deal as "handled by business leaders rather than pure technologists".<ref name="NSApaid" /> RSA Security has largely declined to explain their choice to continue using Dual_EC_DRBG even after the defects and potential backdoor were discovered in 2006 and 2007, and has denied knowingly inserting the backdoor.<ref name="ars">{{cite web|url=https://arstechnica.com/security/2013/09/we-dont-enable-backdoors-in-our-crypto-products-rsa-tells-customers/|title=We don't enable backdoors in our crypto products, RSA tells customers|publisher=Ars Technica|access-date=2017-06-14|archive-date=2014-10-12|archive-url=https://web.archive.org/web/20141012130722/http://arstechnica.com/security/2013/09/we-dont-enable-backdoors-in-our-crypto-products-rsa-tells-customers/|url-status=live}}</ref>
{{blockquote|text=So why would RSA pick Dual_EC as the default? You got me. Not only is Dual_EC hilariously slow – which has real performance implications – it was shown to be a just plain bad random number generator all the way back in 2006. By 2007, when Shumow and Ferguson raised the possibility of a backdoor in the specification, no sensible cryptographer would go near the thing. And the killer is that RSA employs a number of highly distinguished cryptographers! It's unlikely that they'd all miss the news about Dual_EC.|author=Matthew Green, cryptographer and research professor at Johns Hopkins University |source=A Few Thoughts on Cryptographic Engineering<ref name="green" /> (From after the backdoor was confirmed, but before the $10 million secret deal was revealed by Reuters.)}}
As a cryptographically secure random number generator is often the basis of cryptography, much data encrypted with BSAFE was not secure against NSA. Specifically it has been shown that the backdoor makes SSL/[[Transport Layer Security|TLS]] completely breakable by the party having the private key to the backdoor (i.e. NSA).<ref name="schneier" /> Since the US government and US companies have also used the vulnerable BSAFE, NSA can potentially have made US data less safe, if NSA's secret key to the backdoor had been stolen. It is also possible to derive the secret key by solving a single instance of the algorithm's [[elliptic curve cryptography|elliptic curve]] problem<ref name="schneier" /> (breaking an instance of elliptic curve cryptography is considered unlikely with current computers and algorithms, but a breakthrough may occur).
In June 2013, [[Edward Snowden]] began leaking NSA documents. In November 2013, RSA switched the default to HMAC DRBG with SHA-256 as the default option. The following month, Reuters published the report based on the Snowden leaks stating that RSA had received a payment of $10 million to set Dual_EC_DRBG as the default.<ref name="NSApaid" />
With subsequent releases of Crypto-C Micro Edition 4.1.2 (April 2016), Micro Edition Suite 4.1.5 (April 2016) and Crypto-J 6.2 (March 2015), Dual_EC_DRBG was removed entirely.
=== {{Anchor|Extended Random}}Extended Random TLS extension === "Extended Random" was a proposed extension for the [[Transport Layer Security]] (TLS) protocol, submitted for standardization to [[Internet Engineering Task Force|IETF]] by an NSA employee,<ref>{{Cite ietf |draft=draft-rescorla-tls-extended-random-02 |title=Extended Random Values for TLS |first1=Eric |last1=Rescorla |first2=Margaret |last2=Salter |date=2 March 2009 |website=IETF draft standard |language=en |access-date=2023-09-28 |url=https://web.archive.org/web/20171219203836/https://tools.ietf.org/html/draft-rescorla-tls-extended-random-02 }}</ref> although it never became a standard. The extension would otherwise be harmless, but together with the Dual_EC_DRBG, it would make it easier to take advantage of the backdoor.<ref>{{Cite news|url=https://uk.reuters.com/article/us-usa-security-nsa-rsa/exclusive-nsa-infiltrated-rsa-security-more-deeply-than-thought-study-idUKBREA2U0TY20140331|title=Exclusive: NSA infiltrated RSA security more deeply than thought - stu|last=Menn|first=Joseph|date=31 March 2014|work=Reuters|language=en-GB|access-date=28 December 2017|archive-date=29 December 2017|archive-url=https://web.archive.org/web/20171229112257/https://uk.reuters.com/article/us-usa-security-nsa-rsa/exclusive-nsa-infiltrated-rsa-security-more-deeply-than-thought-study-idUKBREA2U0TY20140331|url-status=dead}}</ref><ref name=":0">{{Cite news|url=https://blog.cryptographyengineering.com/2017/12/19/the-strange-story-of-extended-random/|title=The strange story of "Extended Random"|last=Green|first=Matthew|date=19 December 2017|work=Cryptographic Engineering blog|language=en-US|access-date=28 December 2017|archive-date=29 December 2017|archive-url=https://web.archive.org/web/20171229020021/https://blog.cryptographyengineering.com/2017/12/19/the-strange-story-of-extended-random/|url-status=live}}</ref>
The extension was previously not known to be enabled in any implementations, but in December 2017, it was found enabled on some [[Canon Inc.|Canon]] printer models, which use the RSA BSAFE library, because the extension number conflicted a part of TLS version 1.3.<ref name=":0" />
==Product suite history==
* Crypto-J is a Java encryption library. In 1997, [[RSA Security|RSA Data Security]] licensed Baltimore Technologies' J/CRYPTO library, with plans to integrate it as part of its new JSAFE encryption toolkit<ref>{{cite web|title=RSA licenses Baltimore Technologies J/CRYPTO|url=https://www.itnews.com/article/2076999/news-and-new-product-briefs--7-15-97-.html?page=2}}</ref> and released the first version of JSAFE the same year.<ref>{{cite web|title=RSA's BSafe toolkit spawns new Java version|url=https://www.javaworld.com/article/2076942/-em-javaworld--em--news-briefs--5-1-97-.html?page=4}}{{Dead link|date=January 2026 |bot=InternetArchiveBot }}</ref> JSAFE 1.0 was featured in the January 1998 edition of [[Byte (magazine)|Byte]] magazine.<ref>{{cite web|title=Making Java Development JSafe|url=https://vintageapple.org/byte/pdf/199801_Byte_Magazine_Vol_23-01_Next_Years_Top_Tech.pdf|access-date=2020-04-27|archive-date=2021-09-28|archive-url=https://web.archive.org/web/20210928213114/https://vintageapple.org/byte/pdf/199801_Byte_Magazine_Vol_23-01_Next_Years_Top_Tech.pdf|url-status=live}}</ref> * Cert-J is a [[Public Key Infrastructure]] [[Application Programming Interface|API]] software library, written in [[Java (programming language)|Java]]. It contains the cryptographic support necessary to generate certificate requests, create and sign [[Public key certificate|digital certificates]], and create and distribute [[certificate revocation list]]s. As of Cert-J 6.2.4, the entire API has been deprecated in favor of similar functionality provided BSAFE Crypto-J [[Java Cryptography Extension|JCE]] API. * BSAFE Crypto-C Micro Edition (Crypto-C ME) was initially released in June 2001 under the name "RSA BSAFE Wireless Core 1.0". The initial release targeted [[Microsoft Windows]], [[EPOC (operating system)|EPOC]], [[Linux]], [[Solaris (operating system)|Solaris]] and [[Palm OS]]. * BSAFE Micro Edition Suite is a cryptography [[Software development kit|SDK]] in C. BSAFE Micro Edition Suite was initially announced in February 2002<ref>{{cite news|date=February 20, 2002|title=RSA unveils three new products at its show|publisher=IT World|url=https://www.itworld.com/article/2792505/rsa-unveils-three-new-products-at-its-show.html}}</ref> as a combined offering of BSAFE SSL-C Micro Edition, BSAFE Cert-C Micro Edition and BSAFE Crypto-C Micro Edition. Both SSL-C Micro Edition and Cert-C Micro Edition reached EOL in September 2014, while Micro Edition Suite remains supported with Crypto-C Micro Edition as its [[Federal Information Processing Standards|FIPS]]-validated cryptographic provider. * SSL-C is an [[Secure Sockets Layer|SSL]] toolkit in the BSAFE suite. It was originally written by Eric A. Young and Tim J. Hudson, as a fork of the open library [[SSLeay]], that they developed prior to joining RSA.<ref name="0596000456-114">{{cite book |title= Web Security, Privacy & Commerce |author= Simson Garfinkel, Gene Spafford |publisher= O'Reilly |date= 2002 |page= [https://archive.org/details/websecuritypriva0000garf/page/114 114] |isbn= 0596000456 |url= https://archive.org/details/websecuritypriva0000garf/page/114 }}</ref><ref name="9781907117053-1">{{cite book |title= OpenSSL Cookbook: A Guide to the Most Frequently Used OpenSSL Features and Commands |author= Ivan Ristic |date= 2013 |isbn= 9781907117053 |publisher= Qualys |page= 1 }}</ref> SSL-C reached End Of Life in December 2016. * SSL-J is a Java toolkit that implements [[Transport Layer Security|TLS]]. SSL-J was released as part of RSA JSAFE initial product offering in 1997.<ref>{{cite web|url=https://www.educause.edu/ir/library/html/cnc9707/cnc9707.html|title=Securing IT Resources with Digital Certificates and LDAP|access-date=2020-04-27|archive-date=2020-07-31|archive-url=https://web.archive.org/web/20200731083811/https://www.educause.edu/ir/library/html/cnc9707/cnc9707.html|url-status=live}}</ref> Crypto-J is the default cryptographic provider of SSL-J.
==Product suite support status== On November 25, 2015, RSA announced End of Life (EOL) dates for BSAFE.<ref>{{cite web |url= https://community.rsa.com/docs/DOC-59312 |title= RSA announces End of Life (EOL) dates for RSA BSAFE |author= RSA |date= November 25, 2015 |publisher= RSA |access-date= October 3, 2018 |archive-date= October 3, 2018 |archive-url= https://web.archive.org/web/20181003181713/https://community.rsa.com/docs/DOC-59312 |url-status= live }}</ref> The End of Primary Support (EOPS) was to be reached on January 31, 2017, and the End of Extended Support (EOXS) was originally set to be January 31, 2019. That date was later further extended by RSA for some versions until January 31, 2022.<ref>{{cite web |url= https://community.rsa.com/docs/DOC-93720 |title= RSA announces support extension for some of the BSAFE® product suite |author= RSA |date= June 20, 2018 |publisher= RSA |access-date= October 3, 2018 |archive-date= October 3, 2018 |archive-url= https://web.archive.org/web/20181003181732/https://community.rsa.com/docs/DOC-93720 |url-status= live }}</ref> During Extended Support, even though the support policy stated that only the most severe problems would be patched, new versions were released containing bugfixes, security fixes and new algorithms.<ref>{{cite web |url= https://community.rsa.com/docs/DOC-107002 |title= RSA announces the release of RSA BSAFE® Micro Edition Suite 4.4 |author= RSA |date= September 11, 2019 |publisher= RSA |access-date= September 11, 2019 |archive-date= September 23, 2019 |archive-url= https://web.archive.org/web/20190923221524/https://community.rsa.com/docs/DOC-107002 |url-status= live }}</ref>
On December 12, 2020, Dell announced the reversal of RSA's past decision, allowing BSAFE product support beyond January 2022 as well as the possibility to soon acquire new licenses. Dell also announced it was rebranding the toolkits to '''Dell BSAFE'''.<ref>{{cite news |url= https://www.dell.com/support/kbdoc/000180496 |title= Dell BSAFE products remain supported beyond January 2022, reversing RSA's past decision to end-of-life BSAFE toolkits. |author= Dell |date= December 12, 2020|publisher= Dell}}</ref>
==References== {{reflist}}
== External links == * [https://www.dell.com/support/home/product-support/product/bsafe-cert-j BSAFE Cert-J Support Page] * [https://www.dell.com/support/home/product-support/product/bsafe-crypto-j BSAFE Crypto-J Support Page] * [https://www.dell.com/support/home/product-support/product/bsafe-ssl-j BSAFE SSL-J Support Page] * [https://www.dell.com/support/home/product-support/product/bsafe-crypto-c-micro-edition BSAFE Crypto-C Micro Edition Support Page] * [https://www.dell.com/support/home/product-support/product/bsafe-micro-edition-suite BSAFE Micro Edition Suite Support Page]
{{Cryptographic software}} {{SSL/TLS}}
[[Category:C (programming language) libraries]] [[Category:Cryptographic software]] [[Category:Transport Layer Security implementation]] [[Category:1996 software]]