Recent from talks
Nothing was collected or created yet.
BSAFE
View on Wikipedia| BSAFE | |
|---|---|
| Developers | Dell, formerly RSA Security |
| Initial release | 1996 |
| Written in | C, assembly, Java |
| Operating system | BSD, Linux, macOS, Microsoft Windows, Android, iOS, AIX, Solaris |
| Type | Cryptography library, Commercial software |
| License | Proprietary |
| Website | www |
Dell BSAFE, formerly known as RSA BSAFE, is a FIPS 140-2 validated cryptography library, available in both C and Java. BSAFE was initially created by RSA Security, which was purchased by 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.[1][2] BSAFE was one of the most common encryption toolkits before the RSA patent expired in September 2000. It also contained implementations of the RCx ciphers, with the most common one being RC4. From 2004 to 2013 the default random number generator in the library was a NIST-approved RNG standard, widely known to be insecure from at least 2006, containing a kleptographic backdoor from the American National Security Agency (NSA), as part of its secret Bullrun program.[3] In 2013 Reuters revealed that RSA had received a payment of $10 million to set the compromised algorithm as the default option.[3] The RNG standard was subsequently withdrawn in 2014, and the RNG removed from BSAFE beginning in 2015.
Cryptography backdoors
[edit]Dual_EC_DRBG random number generator
[edit]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.[4] 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.[5] In 2007, Bruce Schneier described the backdoor as "too obvious to trick anyone to use it."[5] The backdoor was confirmed in the 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,[3] 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".[3] 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.[6]
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.
— Matthew Green, cryptographer and research professor at Johns Hopkins University, A Few Thoughts on Cryptographic Engineering[4] (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/TLS completely breakable by the party having the private key to the backdoor (i.e. NSA).[5] 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 problem[5] (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.[3]
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.
Extended Random TLS extension
[edit]"Extended Random" was a proposed extension for the Transport Layer Security (TLS) protocol, submitted for standardization to IETF by an NSA employee,[7] 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.[8][9]
The extension was previously not known to be enabled in any implementations, but in December 2017, it was found enabled on some Canon printer models, which use the RSA BSAFE library, because the extension number conflicted a part of TLS version 1.3.[9]
Product suite history
[edit]- Crypto-J is a Java encryption library. In 1997, RSA Data Security licensed Baltimore Technologies' J/CRYPTO library, with plans to integrate it as part of its new JSAFE encryption toolkit[10] and released the first version of JSAFE the same year.[11] JSAFE 1.0 was featured in the January 1998 edition of Byte magazine.[12]
- Cert-J is a Public Key Infrastructure API software library, written in Java. It contains the cryptographic support necessary to generate certificate requests, create and sign digital certificates, and create and distribute certificate revocation lists. As of Cert-J 6.2.4, the entire API has been deprecated in favor of similar functionality provided BSAFE Crypto-J 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, Linux, Solaris and Palm OS.
- BSAFE Micro Edition Suite is a cryptography SDK in C. BSAFE Micro Edition Suite was initially announced in February 2002[13] 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 FIPS-validated cryptographic provider.
- SSL-C is an 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.[14][15] SSL-C reached End Of Life in December 2016.
- SSL-J is a Java toolkit that implements TLS. SSL-J was released as part of RSA JSAFE initial product offering in 1997.[16] Crypto-J is the default cryptographic provider of SSL-J.
Product suite support status
[edit]On November 25, 2015, RSA announced End of Life (EOL) dates for BSAFE.[17] 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.[18] 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.[19]
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.[20]
References
[edit]- ^ "BSAFE support and billing update | Dell US". www.dell.com. Archived from the original on 2021-07-26. Retrieved 2021-07-26.
- ^ RSA (September 1, 2020). "RSA Emerges as Independent Company Following Completion of Acquisition by Symphony Technology Group". RSA. Archived from the original on September 4, 2020. Retrieved June 7, 2023.
- ^ a b c d e Menn, Joseph (December 20, 2013). "Exclusive: Secret contract tied NSA and security industry pioneer". Reuters. San Francisco. Archived from the original on September 24, 2015. Retrieved May 11, 2021.
- ^ a b Matthew Green (September 20, 2013). "RSA warns developers not to use RSA products". A Few Thoughts on Cryptographic Engineering. Archived from the original on October 10, 2013. Retrieved December 28, 2013.
- ^ a b c d Bruce Schneier. "The Strange Story of Dual_EC_DRBG". Archived from the original on 2019-04-23. Retrieved 2013-12-28.
- ^ "We don't enable backdoors in our crypto products, RSA tells customers". Ars Technica. Archived from the original on 2014-10-12. Retrieved 2017-06-14.
- ^ Rescorla, Eric; Salter, Margaret (2 March 2009). "Extended Random Values for TLS". IETF draft standard. I-D draft-rescorla-tls-extended-random-02. Retrieved 2023-09-28.
- ^ Menn, Joseph (31 March 2014). "Exclusive: NSA infiltrated RSA security more deeply than thought - stu". Reuters. Archived from the original on 29 December 2017. Retrieved 28 December 2017.
- ^ a b Green, Matthew (19 December 2017). "The strange story of "Extended Random"". Cryptographic Engineering blog. Archived from the original on 29 December 2017. Retrieved 28 December 2017.
- ^ "RSA licenses Baltimore Technologies J/CRYPTO".
- ^ "RSA's BSafe toolkit spawns new Java version".[dead link]
- ^ "Making Java Development JSafe" (PDF). Archived (PDF) from the original on 2021-09-28. Retrieved 2020-04-27.
- ^ "RSA unveils three new products at its show". IT World. February 20, 2002.
- ^ Simson Garfinkel, Gene Spafford (2002). Web Security, Privacy & Commerce. O'Reilly. p. 114. ISBN 0596000456.
- ^ Ivan Ristic (2013). OpenSSL Cookbook: A Guide to the Most Frequently Used OpenSSL Features and Commands. Qualys. p. 1. ISBN 9781907117053.
- ^ "Securing IT Resources with Digital Certificates and LDAP". Archived from the original on 2020-07-31. Retrieved 2020-04-27.
- ^ RSA (November 25, 2015). "RSA announces End of Life (EOL) dates for RSA BSAFE". RSA. Archived from the original on October 3, 2018. Retrieved October 3, 2018.
- ^ RSA (June 20, 2018). "RSA announces support extension for some of the BSAFE® product suite". RSA. Archived from the original on October 3, 2018. Retrieved October 3, 2018.
- ^ RSA (September 11, 2019). "RSA announces the release of RSA BSAFE® Micro Edition Suite 4.4". RSA. Archived from the original on September 23, 2019. Retrieved September 11, 2019.
- ^ Dell (December 12, 2020). "Dell BSAFE products remain supported beyond January 2022, reversing RSA's past decision to end-of-life BSAFE toolkits". Dell.
External links
[edit]BSAFE
View on GrokipediaOverview
Description and Core Functionality
Dell BSAFE is a family of cryptographic software libraries provided by Dell Technologies, originally developed by RSA Security, intended for developers to embed secure cryptographic operations within applications. It offers implementations in C and Java, targeting diverse environments from general-purpose systems to resource-constrained embedded devices via variants including Crypto-J (Java-based), Crypto-C Micro Edition (lightweight C library), Micro Edition Suite (C/C++ with TLS and certificate support), and Crypto Module (advanced C module). These libraries deliver FIPS-validated cryptographic primitives and protocols to ensure compliance with U.S. federal security standards for protecting sensitive data in transit and at rest.[4] Core functionalities encompass symmetric encryption (e.g., AES in modes such as CBC, GCM, CTR, and CCM), asymmetric operations (e.g., RSA, DSA, ECDSA for encryption and signatures; Diffie-Hellman and ECDH for key agreement), hashing (e.g., SHA-1, SHA-2 family, SHA-3), message authentication codes (e.g., HMAC, AES-CMAC), key derivation (e.g., PBKDF2, HKDF), and deterministic random bit generation (e.g., AES-CTR DRBG, HMAC-DRBG). These primitives support key generation, import/export, and management, enabling secure data encryption/decryption, integrity verification, and authentication.[10][4] Certain variants extend to protocol-level capabilities, such as TLS implementation and X.509 certificate handling in the Micro Edition Suite, facilitating secure network communications and public key infrastructure integration without requiring developers to implement low-level details from scratch. Additional features in specific modules include support for legacy ciphers like 3DES and DES, as well as emerging algorithms like post-quantum signatures (e.g., LMS, ML-DSA in Crypto Module).[4]Key Components and Variants
BSAFE cryptographic libraries consist of modular components providing symmetric and asymmetric encryption, digital signatures, key agreement, message authentication, and hashing primitives, often compliant with standards like PKCS and IEEE P1363. These components are implemented through APIs for operations such as key generation, encryption/decryption, and random number generation, with hardware acceleration support in select variants via instructions like AES-NI. Core primitives include algorithms for RSA, elliptic curve cryptography (ECC), AES block ciphers, and SHA-family hashes, enabling integration into applications for secure data handling.[4] The suite features variants tailored to different environments, including language-specific implementations and editions optimized for resource-constrained devices. BSAFE Crypto-J is a Java-based library supporting PKCS #1, #5, #8, and #12 standards, with FIPS 140-2 validation and ongoing FIPS 140-3 testing; it handles algorithms like RSA, DSA, ECDSA, Diffie-Hellman (DH), ECDH, AES, Triple-DES, SHA-1/2/3, and ChaCha20, targeting platforms such as Solaris, Linux, Windows, and AIX. BSAFE Crypto-C Micro Edition (CCME), a lightweight C implementation, provides similar PKCS support and FIPS 140-2 validation, incorporating RSA, DSA, ECDSA, DH, ECDH, AES, DES, Triple-DES, Camellia, and ARIA, suited for embedded systems on Unix-like OSes and Windows.[4][11] BSAFE Micro Edition Suite (MES) extends CCME with additional GOST algorithms (e.g., GOST 28147-89), targeting the same platforms but lacking explicit FIPS validation in core documentation, focusing on international standards compliance for symmetric encryption and hashing. BSAFE Crypto-Module (BCM), another C variant, emphasizes FIPS 140 modes with support for post-quantum algorithms like LMS and ML-DSA via plugins, alongside traditional primitives including SHA-3 and hardware-optimized AES; it operates on Windows, Linux, and Dell-specific systems like PowerMaxOS, with FIPS 140-3 validation in progress. Historical components like BSAFE SSL-C for TLS/SSL protocols and BSAFE Cert-C for certificate handling have reached end-of-life, integrated or superseded in modern variants.[4]| Variant | Language | FIPS Status | Key Algorithms Supported | Target Platforms |
|---|---|---|---|---|
| Crypto-J | Java | 140-2 validated; 140-3 testing | RSA, ECDSA, AES, SHA-3, ChaCha20 | Solaris, Linux, Windows, AIX |
| Crypto-C ME | C | 140-2 validated | RSA, ECDSA, AES, Camellia, ARIA | Unix variants, Windows |
| Micro Edition Suite | C | Not specified | CCME + GOST suite | Unix variants, Windows |
| Crypto-Module | C | 140 modes; 140-3 testing | RSA, ECDSA, SHA-3, post-quantum (LMS, ML-DSA) | Linux, Windows, PowerMaxOS |
Historical Development
Origins and Early Adoption (Pre-2000)
RSA Data Security, founded in 1982 by cryptographers Ronald Rivest, Adi Shamir, and Leonard Adleman to commercialize their patented public-key encryption algorithm, developed BSAFE as a software toolkit for integrating cryptographic primitives into applications.[12] The toolkit originated in the late 1980s to early 1990s, providing a portable C library with implementations of the RSA algorithm alongside symmetric ciphers like RC2 and RC4, hash functions such as MD5, and digital signature capabilities, all licensed under the RSA patent (U.S. Patent No. 4,405,829, issued September 20, 1983, expiring September 20, 2000).[13] This structure addressed export restrictions and patent licensing requirements, positioning BSAFE as a controlled distribution mechanism for proprietary cryptography amid U.S. government regulations on encryption technology during the Cold War era.[14] Early adoption accelerated in 1990 when RSA licensed BSAFE to Novell for use in network software, though disputes arose over unauthorized resale, leading to litigation that underscored the toolkit's commercial value.[13] That same year, the U.S. Department of Defense approved RSA software, including elements of BSAFE, for secure communications, despite opposition from the National Security Agency, marking a pivotal endorsement for non-classified government applications.[14] By 1991, RSA secured licensing agreements with major firms such as Microsoft, Apple, and Sun Microsystems, enabling BSAFE's integration into operating systems and developer tools for secure data protection in emerging client-server architectures.[15] Version 2.0, released around 1994, enhanced portability across platforms and supported standards like ANSI X9, facilitating broader use in financial and e-commerce prototypes.[16] Through the 1990s, BSAFE became a de facto industry standard for proprietary RSA implementations, with thousands of developers embedding it in products due to patent enforcement and lack of free alternatives, as evidenced by its inclusion in toolkits for privacy-enhanced mail (PEM) and secure sockets precursors.[17] Version 4.0 in 1998 introduced optimizations for Pentium processors and preliminary support for elliptic curve cryptography, reflecting adaptations to hardware advancements and competitive pressures from standards like DSS, while maintaining FIPS compliance for validated modules.[17] Pre-2000 adoption was driven by BSAFE's role in bridging academic cryptography with commercial needs, though its closed-source nature limited scrutiny and tied users to RSA's licensing model until patent expiration.[18]Evolution Post-Patent Expiration (2000–2010)
Following the expiration of U.S. Patent 4,405,829 on the RSA algorithm on September 21, 2000, RSA Security maintained BSAFE as a commercial cryptographic toolkit, shifting emphasis toward certified implementations, expanded platform support, and adaptations for emerging standards amid rising open-source competition. The company released the RSA BSAFE Crypto-C Micro Edition in June 2001, a compact variant optimized for embedded systems and resource-limited devices, building on the core Crypto-C library with reduced footprint while retaining key primitives like RC4, RC5, and RSA encryption.[19] This micro edition underwent iterative updates, including version 1.7.2, which achieved FIPS 140-2 Level 1 validation on April 6, 2004, confirming compliance for symmetric and asymmetric operations on platforms such as Windows and Unix variants.[20] Subsequent releases, such as version 3.0 in August 2005, incorporated support for newly standardized algorithms like AES-256 following its selection as the Advanced Encryption Standard in November 2001, enhancing symmetric encryption capabilities for government and enterprise use.[19] The 2006 acquisition of RSA Security by EMC Corporation, completed on September 18 for $2.1 billion, integrated BSAFE into EMC's data protection ecosystem, accelerating its application in storage security solutions like encrypted file systems and backup appliances.[21] Under EMC, BSAFE variants received additional FIPS validations, including for Crypto-C Micro Edition versions 3.0.0.1 through 3.0.0.23, with security policies documented by August 2010, ensuring ongoing adherence to NIST requirements for key management and random number generation.[22] These updates also extended compatibility to modern operating systems, such as Windows 2000 and Linux distributions prevalent in the era. By 2009, facing intensified competition from free libraries, RSA launched the Share Project on April 20, providing no-cost access to select BSAFE toolkits—including Crypto-C and Crypto-J components—for developers, bundled with documentation and support to encourage secure coding without licensing barriers.[23] This initiative, active through at least May 2009, aimed to sustain BSAFE's market position by lowering entry costs while leveraging its validated robustness over unvetted alternatives, though proprietary extensions remained paid. Overall, the decade saw BSAFE evolve from patent-dependent dominance to a resilient, standards-compliant suite, with over a dozen FIPS certificates issued for its modules between 2001 and 2010.[24]Corporate Acquisitions and Transitions (2010–Present)
In the years following EMC Corporation's 2006 acquisition of RSA Security, the BSAFE cryptographic libraries operated as part of RSA's product portfolio within EMC's Information Security Division, with ongoing development and maintenance focused on FIPS 140 validations and algorithm updates through the early 2010s.[21] On September 7, 2016, Dell Technologies completed its $67 billion acquisition of EMC Corporation, incorporating RSA Security—and by extension BSAFE—into Dell's broader infrastructure and security offerings under the Dell EMC banner. This transition integrated BSAFE into Dell's enterprise ecosystem, emphasizing its use in data-at-rest encryption and software development kits for C and Java environments.[25] In February 2020, Dell Technologies agreed to sell RSA Security to a consortium led by Symphony Technology Group for $2.075 billion, finalizing the transaction later that year. However, Dell strategically retained the BSAFE product line, with RSA transferring BSAFE products, including Crypto-C Micro Edition, Crypto-J, and related customer maintenance agreements, to Dell prior to closing to ensure continuity of support and development.[26][27] As of May 2024, Dell announced the end of all net new sales for BSAFE FIPS 140-validated cryptographic modules and TLS libraries, shifting focus to maintenance for existing deployments while recommending migrations to alternative solutions.[28] Support for legacy versions continues under Dell's lifecycle policies, reversing prior RSA end-of-life decisions for certain toolkits.[29]Technical Specifications
Supported Algorithms and Primitives
RSA BSAFE libraries, including Crypto-C and Crypto-C Micro Edition variants, provide implementations of standard cryptographic primitives for symmetric and asymmetric encryption, key exchange, hashing, and random number generation. These are designed for FIPS 140-2 compliance in validated modules, supporting operations such as encryption, decryption, digital signatures, and key generation.[30][31] Symmetric algorithms include block ciphers like AES (with key sizes of 128, 192, and 256 bits in modes such as CBC, ECB, and GCM) and Triple DES, alongside legacy options like DES, RC2, RC4, and RC5 for backward compatibility in non-FIPS contexts.[32][33] Stream ciphers such as RC4 are supported but deprecated in modern FIPS-approved configurations due to vulnerabilities. Asymmetric primitives encompass RSA for encryption and signatures (key sizes from 1024 to 4096 bits), Diffie-Hellman (DH) and Elliptic Curve Diffie-Hellman (ECDH) for key agreement, DSA and ECDSA for signatures, and elliptic curve cryptography (ECC) over NIST curves (P-192 to P-521). Key generation for these follows standards like PKCS#1 for RSA and FIPS 186 for DSA/ECDSA.[10] Hash functions supported include SHA-1 (legacy), SHA-2 family (SHA-224, SHA-256, SHA-384, SHA-512), and message authentication via HMAC with these hashes. Deterministic random bit generators (DRBGs) implement HMAC-DRBG, CTR-DRBG (using AES), and Hash-DRBG per NIST SP 800-90A, with historical inclusion of Dual_EC_DRBG as a default in some versions despite its later-disclosed weaknesses.| Category | Algorithms/Primitives | Standards/Notes |
|---|---|---|
| Symmetric Ciphers | AES-128/192/256 (CBC, ECB, GCM), TDES, DES, RC2/4/5 | FIPS-approved for AES/TDES; CAVP certs vary by module version[34] |
| Asymmetric/Key Exchange | RSA (enc/sig), DH/ECDH, DSA/ECDSA, ECC (NIST curves) | Key gen per FIPS 186-4; sizes up to 4096-bit RSA[10] |
| Hashes/MACs | SHA-1/2 series, HMAC-SHA | Approved per FIPS 180/198; used in DRBGs[35] |
| DRBGs | HMAC-DRBG, CTR-DRBG (AES), Hash-DRBG, Dual_EC-DRBG (legacy) | SP 800-90A compliance; Dual_EC default in pre-2013 configs |
