Face-to-face meetings: OTC and Committers, Day 1

OTC Retrospective (Tim Hudson)

In our OTC retrospective, we identified strengths and weaknesses, recognizing the need for diversity and better outward communication. We proposed a Special Interest Group (SiG) model to target specific areas like OpenSSL providers. The aim is to attract diverse contributors, simplifying their inclusion and facilitating the formation of SiGs. The OTC team is tasked with streamlining new member acceptance and establishing the first SiG. Furthermore, we will ensure consistent, regular communication with our communities.

What Is Technical Debt with Some Examples (slides) (David von Oheimb)

David led an informative session about this technical debt, providing real-world examples and further emphasising the urgency for improvements. We acknowledged the technical debt in OpenSSL and the challenges it poses, including issues such as code redundancy, inconsistent APIs, and limitations in the build system. Understanding the pressing need for refactoring, we aim to improve consistency and make the API more user-friendly.

CMP Updates Forward Planning (slides) (David von Oheimb)

David gave a quick introduction to what the Certificate Management Protocol (CMP) is, including its main features, security objectives, and specific benefits. Then he presented an overview of the new features of CMPv3 as defined in the upcoming CMP Updates and Lightweight CMP Profile RFCs and what the size of the respective contributions to OpenSSL will be. These new features were already implemented in an intermediate library, which was crucial for the standardisation process. In the conversation, we delved into various aspects of CMP, including the importance of interoperability and rigorous testing with other implementations, and discussed the extent and timeline of the new CMP features and extensions being added to OpenSSL.

Performance Measurement (slides) (Ales Marecek)

Ales initiated a discussion on performance measurements, focusing on proof-of-concept tests and the need for baselines before making improvements. The conversation included addressing technical debt, the potential for dedicated hardware, sharing results with the community, and automating alerts in the review process. The importance of relevant metrics and historical analysis was recognized. Overall, there was enthusiasm for expanding the performance testing system and increasing community involvement.

Sessions with the Red Hat Security team (slides)

Lessons learned from FIPS 140-3

Red Hat engineers discussed their journey towards FIPS-140-3 compliance, sharing relevant modifications and patches potentially beneficial for OpenSSL. A key topic was the new FIPS 140-3 concept of indicators, analysing their impacts on compatibility and the need for API changes.

Constant-Time P-384

We briefly discussed the needs for better implementation of the P-384 curve. It is the recommended curve by CNSA 1.0, but it is the slowest of all former Suite-B curves. We touched on ECCKiila and the necessity for assembly implementations across numerous hardware platforms - a task we welcome external contributions. It was noted that ECCKiila code is not currently acceptable due to its licensing.

Providers per-app initialization

We delved into solutions for managing parameters and configurations, allowing the use of providers programmatically configured by an application. Several approaches were discussed. The dialogue also encompassed the challenges of preserving backwards compatibility while integrating new functionality. We concluded with the consensus that this request is both valid and achievable.

RNG simplifications on Linux

We discussed the challenges of accessing entropy sources from a provider and talked about enhancing randomness providers by decoupling entropy sources from deterministic random bit generators (DRBGs) to allow direct access. Red Hat emphasised the importance of modularity, customizability, and compatibility in improving the flexibility, efficiency, and quality of randomness generation in cryptographic systems. While acknowledging potential areas of improvement, we agreed on the need for a detailed proposal. Simo from Red Hat suggested that someone with a better understanding of the implementation details should work on it.

Post-Quantum Cryptography

We engaged in discussions regarding the implementation and integration of quantum cryptography algorithms in OpenSSL. The focus of our conversation was centred around plans, concerns, and considerations associated with the adoption of quantum cryptography standards and the development of compatible software. Participants emphasised the importance of a transparent transition and compatibility between OQS and OpenSSL in the future. We also explored the possibility of multiple providers offering the same algorithm, which may introduce variations in names and tweaks. Furthermore, potential challenges were identified in maintaining compatibility over time, including potential naming and compatibility issues.

Some issues raised by Red Hat

Red Hat presented several significant issues they are eager to see resolved. Both openssl/openssl#20789 and openssl/openssl#20850 have been confirmed as bugs. Meanwhile, openssl/openssl#12467 is more of a feature that requires thorough consideration and decomposition. The openssl/openssl#20131, which involves EVP_SKEY, has been a long-standing internal discussion within OpenSSL and holds great importance, though it is not an immediate requirement. Additionally, the possibility of adding the ability to remove keys via OpenSSL store interface was discussed, and an example of in-memory session keys was provided.

PKCS#11 provider

Simo shared his experience in writing a PKCS#11 provider. The experience could be enhanced through improved documentation, blog posts, tutorials, and examples. This aspect emphasises the need for comprehensive documentation, informative blog posts, helpful tutorials, and practical examples to improve the overall experience.

Return to Face-to-face Summary page.