wolfSSL is a popular tool for digitally signing applications, libraries or files prior to loading them on embedded devices. Most desktop and server operating systems allow creation of this type of functionality through system libraries, but stripped down embedded operating systems do not. The reason that embedded RTOS environments do not include digital signature functionality is because it has historically not been a requirement for most embedded applications. However, the times they are a changing. In today’s world of connected devices and heightened security concerns, digitally signing what is loaded onto your embedded or mobile device has become a top priority. Examples of embedded connected devices where this requirement was not found in years past include set top boxes, DVR’s, POS systems, both VoiP and mobile phones, and even automobile based computing systems. Because wolfSSL supports the key embedded and real time operating systems, encryption standards and authentication functionality, it is a natural choice for embedded systems developers to use when adding digital signature functionality.
Generally, the process for setting up code and file signing on an embedded device are as follows:
1. The embedded systems developer will generate an RSA key pair.
2. A server side script based tool is developed
a. The server side tool will create a hash of the code to be loaded on the device with SHA-256 for example.
b. The hash is then digitally signed, also called a RSA private encrypt.
c. A package is created that contains the code along with the digital signature.
1. The package is loaded on the device along with a way to get the RSA public key. The hash is re-created on the device then digitally verified (also called RSA public decrypt) against the existing digital signature.
Benefits to enabling digital signatures on your device:
1. Easily enable a secure method for allowing third parties to load files to your device.
2. Ensure against malicious files finding their way on to your device.
3. Digitally secure firmware updates
4. Ensure against firmware updates from unauthorized parties
Do you need help setting up code signing for your embedded device? Let us know as we can help setting up servers side scripts as well as on the device side. Contact us at info@yassl.com.
More background on code signing:
A great article on the topic at embedded.com: http://embedded.com/design/216500493?printable=true
General information on code signing: http://en.wikipedia.org/wiki/Code_signing
Category: Uncategorized
Benchmarking an Embedded SSL Library
Hi! We’re planning to build a benchmark tool for our users. We believe that developers like to make an informed choice, and benchmarking is the key to getting informed about tools like wolfSSL. Size and TPS are usually at the top of the agenda when benchmarking an SSL library, but other considerations can come into play as well. For example, does the library support TLS version 2, or does it only support SSL 3.0 or TLS version 1? Does the library support DTLS? How do the various ciphers perform against each other under different load types?
The first version of our SSL benchmark tool will only benchmark wolfSSL, but we hope to expand its scope over time to compare other open source SSL libraries as well. Please contact us at info@wolfssl.com if you have input on other parameters that should be benchmarked or if you are interested in participating in the development of the tool. We’re also thinking of breaking with our traditional yet boring “yet another” naming convention and calling the benchmark tool something else, like “Hungry Wolf” or “SSL Slapper” to spice things up. As such, email us if you think you have a great name idea for the tool!
wolfSSL embedded ssl library release 1.5.4 is now available
wolfSSL release 1.5.4 adds support for the Mongoose Web Server and intel`s AES-NI encryption instructions, speed improvements for the SHA1 cipher from loop unrolling, new testing certificates and bug fixes.
Support for the Mongoose Web Server was user requested. Support was added by test building Mongoose with wolfSSL and enabling our OpenSSL compatibility API. Minor functionality was then added to wolfSSL`s OpenSSL compatibility API to make the build seamless. The build results in a smaller footprint version of Mongoose for embedded users. Secure connections to Mongoose were then tested and subsequently passed. If you find any issues in building Mongoose with wolfSSL or with the subsequent builds, then please contact us at info@yassl.com.
Support for AES-NI, intel`s new instruction set for accelerated AES support, was enabled so that our intel based users could access the instruction set directly through wolfSSL. This new functionality gives wolfSSL users wonderful speed improvements when using AES on servers under heavy load. More details on how to make the most of wolfSSL`s AES-NI support for intel servers will be available shortly. If you need more help now, then let us know at info@yassl.com. Details on AES-NI can be found here: http://www.intel.com/Assets/en_US/PDF/whitepaper/Intel_AES-NI_White_Paper.pdf.
Happy yaSSLing! We hope you enjoy this new release!
wolfSSL Embedded SSL library for Android
Hi! We are currently putting together a build of wolfSSL for the Android platform, specifically for users that require a small footprint embedded ssl library. The development effort is will result in wolfSSL operating as an SSL provider for Java on the Android platform. The natural byproduct of this project is that we’ll have a Java based SSL provider available for other mobile and embedded platforms. If you are interested in running wolfSSL in Java as an SSL provider, then contact us at info@yassl.com, and we will provide you with a beta copy.
yaSSL 2.0 is now available
yaSSL, the leading C++ based ssl library, is now available for download. This release of yaSSL contains bug fixes, new testing certs, and a security patch for a potential heap overflow on forged application data processing. Vulnerability discovered by Matthieu Bonetti from VUPEN Security (http://www.vupen.com).
yaSSL’s partnership with ARM
yaSSL has now been partnered with ARM for 18 months! Why is yaSSL partnered with ARM? Simply stated, because so many of our users and customers are running on the ARM chipset. Users choose wolfSSL on ARM because it is fast, lightweight, and easily embedded to secure connected application software. To meet the needs of our customers, we have ported the wolfSSL embedded ssl library to several ARM based environments, including Android, ThreadX, QNX, Ubuntu, IAR, MontaVista and OpenWRT. If you need wolfSSL on another ARM based operating environment that we don’t currently support, then contact us at info@yassl.com.
Benchmark for secure Memcache running the wolfSSL embedded SSL library
We recently announced a beta version of secure Memcache is available to the community. Users are excited about having SSL available in memcache, but show concern about the performance cost of enabling security. With this feedback in mind, we benchmarked secure memcache performance against standard memcache. See the graph below for comparison of secure memcache to standard memcache by measure of TPS. The first bar is regular memcache. The rest of the bars show secure memcache running with different cipher options. We’ve also included the performance of “direct to database,” or running without memcache at all, as a baseline for comparison.
We have several additional optimizations in the works that will bring the performance of secure memcache to within 5-10% of standard memcache for most environments, and can also provide network, operating system and hardware specific optimizations for specific users.
You will see from the graph that running Memcache with SSL enabled is 4x faster than running direct to database. The cost of running securely varies between about 25% and 40%, depending on cipher. There is some cost to running secure memcache, but it is not unbearable. Email us at facts@wolfssl.com if you want more details on the benchmark.
Who should use secure Memcache? Generally speaking, anyone concerned about the security of their memcache data.
More specifically:
1. Users with regulatory compliance requirements.
2. SaaS companies hosting sensitive customer and user data who cannot risk a breach that could damage their reputation
3. Users running in the cloud.
4. Users concerned with masking memcache data securely within their firewall.
Contact us at info@yassl.com if you are interested in receiving the beta or for more information.
wolfSSL embedded SSL for ThreadX
We have ported wolfSSL to the ThreadX operating environment! Our decision to invest in the porting process is based on strong customer demand for a small footprint, high performance, royalty free SSL library on ThreadX. ThreadX and wolfSSL have a lot in common. Both companies operate under similar business models, target similar usage profiles, and work with the same chip and board vendors. With regard to usage profile, both ThreadX and wolfSSL operate well in resource constrained environments and are popular with developers of today’s new generation of connected devices. We have also seen that wolfSSL is popular for device developers implementing code signing.
If you want to test wolfSSL for ThreadX, just download our latest source and build it in your environment. Let us know if you face any issues and we’ll be happy to help. Just email us at info@yassl.com!
wolfSSL’s OpenSSL Compatibility
Hi!
As of this writing, wolfSSL, which is our small embedded SSL library, supports all of the most commonly used OpenSSL functions. As time goes on, we are incrementally improving our OpenSSL compatibility.
Our process for improvement is driven by two forces.
Firstly, we respond to customer requirements. Our customers migrate from OpenSSL to wolfSSL for a variety of reasons. Some migrate to get support for a particular RTOS or embedded environment not supported by OpenSSL. Others need to reduce the overall size of their application by using a smaller library. There are also some that migrate because they are seeking commercial licensing and professional support.
Secondly, we test the compatibility layer by building wolfSSL with other open source projects that currently use OpenSSL. We simply see what breaks, and then we add the missing OpenSSL functions to fix it. You can see a couple of these efforts available on our download page in the form of experimental versions of Lighttpd and Stunnel. Contact us if you would like help compiling wolfSSL with Lighttpd or stunnel. We’ll be happy to help!
The wolfSSL embedded SSL Library is integrated into LuCI
Did you know that wolfSSL is integrated into the LuCI project, which is a web interface for embedded devices? LuCI is an interface tool for wireless routers. See here for project details: http://luci.subsignal.org/