Ivan Ristic from Qualys has a new study out which presents his results from an exhaustive survey of SSL servers. Some of the results are pretty interesting for those of us that create embedded ssl libraries. These points really caught our attention:
1. Too many SSL implementations still support insecure SSLv2.
2. Very few SSL implementations support TLS 1.1 and 1.2.
3. There is still wide support for weak ciphers.
As CyaSSL users know, CyaSSL does not support SSLv2 because it is insecure. Also, as a technology leader, CyaSSL has put TLS 1.1 in production for over three years and has had TLS 1.2 available for a year.
Ivan’s blog post: http://blog.ivanristic.com/2010/07/internet-ssl-survey-2010-is-here.html
Ivan’s BlackHat presentation: http://blog.ivanristic.com/Qualys_SSL_Labs-State_of_SSL_2010-v1.6.pdf
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!
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 firstname.lastname@example.org.
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 email@example.com.
Here’s some pictures of Todd’s talk at OSCON about Secure Memcache. For those who have not been following, Secure Memcache is a Memcache branch that includes the wolfSSL embedded SSL for encryption between Memcache servers and clients.
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 firstname.lastname@example.org.
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 email@example.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.
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 firstname.lastname@example.org.
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
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 email@example.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!
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 firstname.lastname@example.org, and we will provide you with a beta copy.