cURL Up Canceled

The cURL Project and wolfSSL are sorry to inform you that Daniel Stenberg tested positive for COVID-19 this morning, and is unable to fly to the US for the cURL Up event. We have decided to cancel the cURL Up event happening June 6th. We are planning on rescheduling cURL Up for sometime in September.

Thank you for your understanding. Stay tuned for more news.

If you have any questions or run into any issues, contact us at facts@wolfssl.com, or call us at +1 425 245 8247.

Secure boot and glitching attacks

In general, a “glitch” is a momentary fault that may happen on a system, preventing it from working properly, for a brief amount of time. The effects of a single glitch on proper software execution may be multiple, including catastrophic consequences that may prevent the system from continuing the execution.

Glitching attacks are complex and expensive to execute, but can be a real issue for secure boot mechanisms, and often very hard to prevent or mitigate. They aim at exploiting predictable consequences of single glitches in order to take control of the execution or the data contained in the system. The glitch can be injected using different techniques, which often rely on well known weaknesses of the specific microcontroller or CPU. The most common glitch injection consists in varying the voltage supplied to the chip at a specific time, or modifying the profile of the clock signal to mangle the timing of the execution of the instructions. More advanced attacks can rely on irradiating the device with strong electromagnetic interference.

In the specific context of secure boot, the goal for an attacker is to circumvent the security checks in those critical sections of the code, e.g. the code that performs verifications on the firmware authenticity, integrity or versioning. These attacks could eventually defeat the security checks, and take control of the system by uploading an unauthorized firmware image. While they require an accurate synchronization and several attempts, these attacks will eventually succeed in injecting a fault in the hardware at the required time in order to skip the verification.

Our secure bootloader, wolfBoot, follows the indication of RFC9019 to provide a secure, public key based verification of the integrity and authenticity of the firmware and its updates. It runs on several different architectures, from small microcontrollers up to x86_64 systems. wolfBoot is OS-agnostic and provides best-in-class security thanks to the FIPS 140-2 certified algorithms implemented in the wolfCrypt security engine. 

wolfBoot already comes with plenty of unique features. Now it is also the first open source secure bootloader to implement mitigations against glitching attacks. Our development team has recently added an optional feature that can be activated at compile time, to reinforce the security of the critical variables and decision points in the code. This has required an evaluation of the code flow of wolfBoot from a point of view that includes the possibility for an attacker to skip single specific instructions. Introducing these mitigations has been tricky, because redundant code written in C is usually discarded by the compiler. For this reason the countermeasures must be programmed in assembly, which makes this code architecture specific.

Our latest release of wolfBoot contains these countermeasures. Glitching support mitigation can be freely compiled and used in GPL projects for evaluation and auditing purposes.

To compile wolfBoot with glitching and side-channel attack mitigations turned on, it is sufficient to add ARMORED=1 to the configuration options (i.e. via command line when invoking make, or through the .config file). The ARMORED option is currently supported on ARM Cortex-M architecture. Support for other architectures will be added in the future.

You can download wolfBoot today from our download page or from our github repository

What is the next feature that you want to see implemented in wolfBoot? Is there any architecture or platform that we don’t yet support that could benefit from our glitch-resistant secure boot mechanism? Let us know! 

If you have any questions or run into any issues, contact us at facts@wolfssl.com, or call us at +1 425 245 8247.

wolfSentry preview release 0.4.0 — the wolfSSL Embedded IDPS

Today wolfSSL Inc. releases the 4th preview release of wolfSentry, wolfSSL’s IDPS (Intrusion Detection and Prevention System) for embedded and IoT systems. wolfSentry is address- and bus-agnostic, and brings static and dynamic firewalls, event-driven notification and logging support, and unlimited extensibility, to deeply embedded and realtime systems.

This release has several new features of note:

  • The JSON configuration format now allows user-defined key-value pairs. The JSON configuration can then be used as a unified configuration package for both the wolfSentry core and user-installed plugin logic. Binary objects can be supplied in the configuration using base64 encoding, and user plugins can then access it in the decoded raw binary form. The key-value facility also supports a custom validator callback to enforce constraints on user-defined config params in the JSON.
  • User-defined address families are now available, allowing idiomatic formats for non-Internet addresses in the JSON config. This allows plugin support for various buses and device namespaces beyond the core builtin IP and MAC address support.
  • A generic JSON DOM (random access) facility is now included, for use as a helper in user plugins and applications.
  • This release also introduces substantial improvements in infrastructure to support default policies, statistics, notification, and logging.

Because this is a preview release, some capabilities are only partially implemented. In particular, dynamic defenses and thread safety are only partially implemented.

Follow this blog and our GitHub for the latest — the first production-ready release of wolfSentry is coming soon!

We particularly seek to enable researchers with this release. We want wolfSentry to be fully vetted by the best in the OSS community. If you have any questions or run into any issues, contact us at facts@wolfssl.com, or call us at +1 425 245 8247.

Download wolfSentry now from https://github.com/wolfSSL/wolfsentry, and tell us what your IDPS priorities are!

wolfSSL Support for OpenSSH 9.0

wolfSSL has updated support for OpenSSH to version 9.0! The patch and instructions for applying and testing the patch are available here. OpenSSH 9.0 is the first exciting version to add support for the Streamlined NTRU Prime key encapsulation mechanism. It is a small lattice-based quantum-safe KEM. It is paired with the X25519 ECDH KEM to provide a fallback in the event of flaws being discovered in Streamlined NTRU Prime. This “quantum resistant” algorithm prevents adversaries from collecting and storing encrypted traffic now and decrypting it at a later date when quantum computers become a feasible attacking tool on current public key cryptographic algorithms. NTRU Prime makes use of the SHA-512 hashing algorithm. When compiling with wolfSSL, the SHA-512 algorithm is supplied by wolfSSL.

Read about all of the changes in OpenSSH 9.0 here.

If you have any questions or run into any issues, contact us at facts@wolfssl.com, or call us at +1 425 245 8247.

Posts navigation

1 2