SoundOff: Breakthrough in Low-Cost Passive Ultrasound Tags
Introducing SoundOff, a new technology enabling low-cost, passive ultrasound tags for innovative sensing applications.

The embedded world is drowning in connectivity, and with it, an ever-expanding attack surface. For engineers building the next generation of IoT devices, industrial controllers, and smart appliances, robust security isn’t a feature; it’s the bedrock of trust. This is where Mbed TLS, a high-performance, open-source cryptographic and TLS implementation, steps into the spotlight, particularly with its recent strides in modularity and its deep integration with Arm’s Platform Security Architecture (PSA) Cryptography API.
Mbed TLS’s adoption of the PSA Cryptography API is a game-changer for embedded developers. This standardized interface offers a portable, consistent way to interact with cryptographic operations and, crucially, manage keys securely. Forget the fragmented approach of managing keys across different modules; the PSA API provides a unified front.
Consider key usage flags. With PSA, you explicitly define how a key can be used:
// Example: Defining a key for signing operations
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
psa_set_key_usage(&attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH);
psa_set_key_algorithm(&attributes, PSA_ALG_ECDSA_ANY); // Example algorithm
// ... then import or generate key using these attributes
This level of explicit control, coupled with the API’s design to distinguish caller memory from internal library memory, significantly hardens applications against common memory-based attacks. Furthermore, Mbed TLS 3.6.0 and later have made the PSA API thread-safe when MBEDTLS_THREADING_C is enabled, opening doors for more complex, multi-threaded embedded systems without sacrificing security.
The push towards TLS 1.3 is not just about better security features; it’s about a more efficient and secure handshake. Mbed TLS has fully embraced this, making TLS 1.3 the default and removing older, vulnerable protocols like SSL 3.0 and TLS 1.0/1.1 in versions 3.6.0+. This is critical for any embedded system needing to communicate securely over networks.
What truly differentiates Mbed TLS for constrained environments is its robust hardware acceleration support. By enabling configurations like MBEDTLS_<MODULE NAME>_ALT, developers can offload computationally intensive cryptographic primitives (AES, RSA, ECC, SHA) to specialized hardware. This isn’t just about raw speed; it often means offloading sensitive operations away from the main CPU, a subtle but vital security benefit that can mitigate certain side-channel risks. The flexibility to configure granularly via config.h or mbedtls-config-changes.h ensures you only include what you need, keeping the footprint lean.
While Mbed TLS offers substantial security fortifications, understanding its limitations is paramount. The library provides limited protection against timing attacks and no security guarantees against local non-timing or physical attacks like power analysis or fault injection. These require platform-level mitigations, a fact often overlooked by developers focused solely on software.
Furthermore, Mbed TLS is not a silver bullet for certificate validation. It does not strictly validate X.509 compliance and is unsuitable as a standalone Certificate Authority for signing untrusted requests. The memory footprint required to store a full list of root CAs can also be a significant hurdle on highly constrained devices, impacting both flash usage and runtime performance.
Recent vulnerability reports, while patched in newer versions (e.g., 3.6.4+), are a stark reminder of the ongoing need for vigilance and timely updates. The CVE-2025-27809 vulnerability, where applications can fail unsafely if mbedtls_ssl_set_hostname() is not called for server authentication, highlights the importance of correct API usage and diligent patching.
Mbed TLS strikes a compelling balance between security, performance, and footprint for embedded systems. Its PSA integration and commitment to modern TLS standards make it an essential tool. However, its effectiveness hinges on developer awareness of its threat model boundaries and the implementation of complementary platform-level security measures. For secure and trustworthy embedded applications, Mbed TLS is a powerful ally, but not an invincible shield.