RECENT BLOG NEWS
What’s the difference between wolfSSL and OpenSSL
We’re often asked what differentiates wolfSSL and OpenSSL. Here’s our list:
a. wolfSSL builds are 20-40 times smaller than OpenSSL. Hence it is much more useful in embedded ssl implementations.
b. Standards support: wolfSSL supports TLS 1.1 and 1.2. OpenSSL does not support TLS 1.1 or 1.2.
c. wolfSSL was built with securing streaming media in mind. OpenSSL was built before streaming media was popular on the internet. As such, wolfSSL supports the latest streaming ciphers like Rabbit and HC-128 where OpenSSL does not.
d. License: wolfSSL is GPLv2 or commercial, with a company behind the commercial license. OpenSSL does not have a clear license.
e. We have tried to apply Occam’s razor as the guiding philosophy to our implementation of SSL. As such, our API focuses on the most critical and necessary functionality in order to simplify the problem. wolfSSL has 20 or so function calls, and an additional 230 for our OpenSSL compatibility layer. OpenSSL has over 3,500.
f. Really old code versus relatively new code: wolfSSL was written starting in 2004. OpenSSL started in 1995. Coding standards and requirements are a lot different now. OpenSSL has a longer legacy to support and maintain.
g. The OpenSSL legacy code comes from supporting usage profiles and operating systems that are no longer mainstream. The legacy code makes OpenSSL a easier to break and harder to fix.
h. OpenSSL was written as the SSL/TLS standards were being defined. Their code went down a number of blind alleys. We had the luxury of writing our code once the standards were well settled.
Please contact us at info@yassl.com if you have comments! We’ll be happy to re-factor this list with your input!
Running wolfSSL on a GPU
Hi! wolfSSL is ported to both the Cuda http://en.wikipedia.org/wiki/CUDA and OpenCL http://en.wikipedia.org/wiki/OpenCL frameworks. These frameworks are for writing programs that execute on GPU’s, or Graphical Processing Units. Generally, GPU’s are used for graphics processing, but due to their high production volumes and low cost, they can be useful for math intensive computing. Early adopters are building super computers based on GPU’s for various purposes. For example: http://hardware.slashdot.org/story/09/12/16/2255259/FASTRA-II-Puts-13-GPUs-In-a-Desktop-Supercomputer. Search Slashdot for GPU for more examples.
wolfSSL is ported to GPU’s because it is a low cost way to leverage GPU compute power for SSL offload, and can be much more cost effective for building SSL appliances.
Let us know at info@yassl.com if you are interested in running SSL on a GPU. We’ll be happy to support you!
wolfSSL Java SSL Provider Alpha Released
We have released an Alpha of our SSL Provider for Java. Currently supporting Mac and Linux operating systems, this provider enables Java developers to use wolfSSL through the javax.net.ssl package. By using this, Java developers can use familiar syntax and API calls to gain the speed and size advantages that the wolfSSL embedded SSL library provides.
Being in the Alpha stage, this provider currently only offers client functionality. If you want to give our provider a try, please download it from our additional downloads page here. Instructions for installation can be found in the README file included with the download.
We look forward to your feedback!
HealthVault applications for iphone and Android using wolfSSL
We`re thinking about implementing the security layer under Java to enable HealthVault applications for iphone and Android using our wolfSSL embedded ssl. This means we`ll support the proper certificate generation for HealthVault applications that want to allow their users to securely access HealthVault information from iphone and Android devices. As such, we`re interested in finding HealthVault application providers interested in iphone or Android. Are you interested in device based HealthVault? If yes, then please contact us at info@yassl.com.
wolfSSL Embedded SSL for Android
The wolfSSL library for Android is almost ready for alpha testing. The project has taken us longer than anticipated! The key benefits to the new technology include:
1. Better performance than Android’s native SSL support through OpenSSL.
2. Smaller footprint.
3. Tight, seamless integration with Java as an SSL Provider.
The follow through of the project will also drive release of wolfSSL as a Java based SSL provider on other platforms. The initial targets are Mac and Linux. If you are interested in using wolfSSL hosted in Java, then contact us at info@yassl.com.
Mongoose Embedded Web server and wolfSSL Embedded SSL
Hi! One of our users recently requested that wolfSSL become compatible with Mongoose. As such, we have recently made changes to the wolfSSL 1.5.4 embedded ssl library to make it build seamlessly with the Mongoose embedded web server. Essentially this meant that we made minor enhancements to wolfSSL’s openssl compatibility layer to accomplish a clean build. Everything should build cleanly at this point, but let us know if you face any issues. If you build with wolfSSL instead of OpenSSL, you will get a smaller resulting build. You can contact us with any support issues you face at info@yassl.com.
Using AES-NI in the wolfSSL embedded ssl library version 1.5.4
Hi! Most of our readers will already know that AES is a key encryption standard used by governments worldwide, and that wolfSSL has always supported AES.
Intel has released a new set of instructions that is a faster way to implement AES, and wolfSSL is currently the first ssl library to fully support the new instruction set for production environments.
Essentially, Intel has added AES instructions at the chip level that perform the compute intensive parts of the AES algorithm, boosting performance.
What we’ve done is add the functionality to wolfSSL to allow it to call the instructions directly from the chip, instead of running the algorithm in software. This means that when you’re running wolfSSL on a chipset that supports AES-NI, you can run your AES crypto 5-10 times faster!
If you’re doing some benchmarking for your environment, let us know at info@yassl.com we’ll be happy to support you with the effort. Our current benchmarks are in the lab, and we’d like to work with users that can help us further define real world expectations for speed improvements from AES-NI.
References and further reading, ordered from general to specific:
Wikipedia entry on AES: http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
Wikipedia entry on AES-NI: http://en.wikipedia.org/wiki/AES_instruction_set
Intel Software Network page on AES-NI: http://software.intel.com/en-us/articles/intel-advanced-encryption-standard-instructions-aes-ni/
See the readme of wolfSSL 1.5.4 for instructions on building with AES-NI.
Using the wolfSSL embedded ssl library for digitally signing and authenticating
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
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!
Weekly updates
Archives
- December 2024 (15)
- November 2024 (29)
- October 2024 (18)
- September 2024 (21)
- August 2024 (24)
- July 2024 (27)
- June 2024 (22)
- May 2024 (28)
- April 2024 (29)
- March 2024 (21)
- February 2024 (18)
- January 2024 (21)
- December 2023 (20)
- November 2023 (20)
- October 2023 (23)
- September 2023 (17)
- August 2023 (25)
- July 2023 (39)
- June 2023 (13)
- May 2023 (11)
- April 2023 (6)
- March 2023 (23)
- February 2023 (7)
- January 2023 (7)
- December 2022 (15)
- November 2022 (11)
- October 2022 (8)
- September 2022 (7)
- August 2022 (12)
- July 2022 (7)
- June 2022 (14)
- May 2022 (10)
- April 2022 (11)
- March 2022 (12)
- February 2022 (22)
- January 2022 (12)
- December 2021 (13)
- November 2021 (27)
- October 2021 (11)
- September 2021 (14)
- August 2021 (10)
- July 2021 (16)
- June 2021 (13)
- May 2021 (9)
- April 2021 (13)
- March 2021 (24)
- February 2021 (22)
- January 2021 (18)
- December 2020 (19)
- November 2020 (11)
- October 2020 (3)
- September 2020 (20)
- August 2020 (11)
- July 2020 (7)
- June 2020 (14)
- May 2020 (13)
- April 2020 (14)
- March 2020 (4)
- February 2020 (21)
- January 2020 (18)
- December 2019 (7)
- November 2019 (16)
- October 2019 (14)
- September 2019 (18)
- August 2019 (16)
- July 2019 (8)
- June 2019 (9)
- May 2019 (28)
- April 2019 (27)
- March 2019 (15)
- February 2019 (10)
- January 2019 (16)
- December 2018 (24)
- November 2018 (9)
- October 2018 (15)
- September 2018 (15)
- August 2018 (5)
- July 2018 (15)
- June 2018 (29)
- May 2018 (12)
- April 2018 (6)
- March 2018 (18)
- February 2018 (6)
- January 2018 (11)
- December 2017 (5)
- November 2017 (12)
- October 2017 (5)
- September 2017 (7)
- August 2017 (6)
- July 2017 (11)
- June 2017 (7)
- May 2017 (9)
- April 2017 (5)
- March 2017 (6)
- January 2017 (8)
- December 2016 (2)
- November 2016 (1)
- October 2016 (15)
- September 2016 (6)
- August 2016 (5)
- July 2016 (4)
- June 2016 (9)
- May 2016 (4)
- April 2016 (4)
- March 2016 (4)
- February 2016 (9)
- January 2016 (6)
- December 2015 (4)
- November 2015 (6)
- October 2015 (5)
- September 2015 (5)
- August 2015 (8)
- July 2015 (7)
- June 2015 (9)
- May 2015 (1)
- April 2015 (4)
- March 2015 (12)
- January 2015 (4)
- December 2014 (6)
- November 2014 (3)
- October 2014 (1)
- September 2014 (11)
- August 2014 (5)
- July 2014 (9)
- June 2014 (10)
- May 2014 (5)
- April 2014 (9)
- February 2014 (3)
- January 2014 (5)
- December 2013 (7)
- November 2013 (4)
- October 2013 (7)
- September 2013 (3)
- August 2013 (9)
- July 2013 (7)
- June 2013 (4)
- May 2013 (7)
- April 2013 (4)
- March 2013 (2)
- February 2013 (3)
- January 2013 (8)
- December 2012 (12)
- November 2012 (5)
- October 2012 (7)
- September 2012 (3)
- August 2012 (6)
- July 2012 (4)
- June 2012 (3)
- May 2012 (4)
- April 2012 (6)
- March 2012 (2)
- February 2012 (5)
- January 2012 (7)
- December 2011 (5)
- November 2011 (7)
- October 2011 (5)
- September 2011 (6)
- August 2011 (5)
- July 2011 (2)
- June 2011 (7)
- May 2011 (11)
- April 2011 (4)
- March 2011 (12)
- February 2011 (7)
- January 2011 (11)
- December 2010 (17)
- November 2010 (12)
- October 2010 (11)
- September 2010 (9)
- August 2010 (20)
- July 2010 (12)
- June 2010 (7)
- May 2010 (1)
- January 2010 (2)
- November 2009 (2)
- October 2009 (1)
- September 2009 (1)
- May 2009 (1)
- February 2009 (1)
- January 2009 (1)
- December 2008 (1)