Here’s another warning from the media with regard to adding proper security to embedded systems: https://www.darkreading.com/risk/embedded-systems-can-mean-embedded-vulnerabilities/d/d-id/1134205. It’s a good article that reminds us how many vulnerable embedded systems are out there that need to be retrofitted with embedded ssl.
As stated in previous blog posts, we have ported wolfSSL into a number of embedded web servers on behalf of our customers and community users. wolfSSL can be included in Mongoose , Lighttpd (aka Lighty), Nginx, GoAhead, and others. As a part of the work of enabling these embedded web servers to use SSL, we have learned a lot about all of these excellent products, including how they are used in embedded environments, what their code is like, and their feature support.
As a result of our evaluation, we put a lot of energy into determining which open source embedded web server should receive the bulk of our attention. We want to focus on the one that maps most closely to the needs of our customer base. The wolfSSL customer generally wants the following in their open source embedded web server, in order of priority:
1. Support for real time and embedded operating systems.
2. Commercially available support
3. Size: Small, tight code.
4. Well enabled security features
As a result of our evaluation, we determined that the Mongoose embedded web server should receive the bulk of our attention. Mongoose is the winner because it fits our customer’s needs, via the following metrics:
1. Default size, with wolfSSL enabled, of less than 200k.
2. Excellent code base and community.
3. Portability to real time and embedded operating systems.
Based on all of the above, and more, we have decided to sell and market a version of Mongoose we’re calling the yaSSL Embedded Web Server. We have agreed with the leader of the Mongoose community, Sergey Lyubka, to collaborate on feature development and bug fixes. Bug fixes, feature additions, and general improvements that we generate to the code base will be rolled back into the main source tree subject to Sergey’s approval. We will endeavor to be a good citizen and quality partner to the Mongoose community!
Versions of the yaSSL Embedded Web Server for RTOS and embedded environments are available immediately, upon request, on a subscription basis. Annual subscriptions are available at the price of $5,000 USD per year. Subscriptions include the following, per product line within which you embed:
1. Commercial support for wolfSSL and the yaSSL Embedded Web server
2. Updates and upgrades
3. Porting of both the SSL and Web Server to your embedded environment and chipset.
4. Commercial licenses
5. Size and speed optimization support
Supported environments include ThreadX, VxWorks, QNX, OpenWRT, Tron, iTron, Microitron, Android, OpenCL, and MontaVista. Other supported environments are available on a per request basis. We’ll also support *nix and the gaggle of *bsd’s, which we’ll port to as requested.
As always, we’d like your feedback and questions! Please contact us at firstname.lastname@example.org.
Competitive upgrade pricing for wolfSSL is now available. We’ll help you move from an outdated or expensive ssl library to wolfSSL with low cost and minimal disturbance to your code base.
How does it work? Here’s an outline of the program:
1. You need to currently be using a commercial competitor to wolfSSL.
2. You will receive up to two weeks of onsite consulting to switch out your old ssl library for wolfSSL. Travel expenses are not included.
3. Normally, two weeks is the right amount of time for us to make the replacement in your code and do initial testing. Additional consulting on a replacement is available as needed.
4. You will receive the standard wolfSSL royalty free license to ship with your product.
5. The price is $10,000.
The purpose of this program is to enable users who are currently spending too much on their embedded ssl implementation to move to wolfSSL with ease. If you are interested in learning more, then please contact us at email@example.com.
We have released an Alpha of our Java SSL Provider for the Android Platform. This can be installed alongside the existing Apache Harmony provider and can be used through the javax.net.ssl Java API package. By using our provider, Java developers can use familiar syntax and API calls of Java to gain the speed and size advantages that the CyaSSL embedded SSL library offers. By using CyaSSL on Android, you can reduce the overall image footprint by 500k to 600k.
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 into the Android Platform can be found in the README file included with the download.
We look forward to your feedback! Please keep in mind that this is an alpha release. Please contact us at firstname.lastname@example.org if you need support.
Hi! Two months ago we announced the availability of a version of memcached that we’ve been calling secure memcached. This current branch of memcached includes ssl encryption between client and server. Currently, client support is limited to libmemcached, but we’ll work with our beta sites to support additional clients as needed. Our plan is to submit our branch as a patch to the project once we receive more feedback from betas.
Our upcoming Beta 2 version of secure memcached will add encryption for data held inside the server. As such, if someone gets their hands on your memcached server, they won’t be able to read the data. The level of security in Beta 2 will resolve the vulnerability faced by memcached users recently discussed on Slashdot: http://it.slashdot.org/story/10/08/07/035255/Cache-On-Delivery-mdash-Memcached-Opens-an-Accidental-Security-Hole.
Beta 2 is slated for release in a couple of weeks. Please contact us at email@example.com if you would like to participate in the beta program.
For performance results for secure memcache, please contact us.
A copy of our presentation on secure memcached given at OSCON is available here: PPT Download
Many of our users are unaware that the wolfSSL embedded SSL/TLS library is available for iPhone. The first question to answer is why did we port wolfSSL to the iphone in the first place? The answer to that question is simple: our primary development environment is Mac OSX and we walk around town with iOS in our pockets. As such, it was right in front of us and ready to play with.
What can you do with an iPhone embedded ssl library? Build your application with SSL included for enhanced security! If you need to secure any iOS app and you want to use the de facto SSL API, then choose wolfSSL. It is small, and will add minimal size to your application download. You could use it to secure personal data, financial data, etc. And, don’t forget that wolfSSL is cross platform, so it will run on other devices that you port your application to.
To get yourself started, wolfSSL maintains an Xcode iOS project in the wolfSSL library, which can be downloaded from our download page here: https://www.wolfssl.com/download/.
If you have any questions on using wolfSSL in your iOS application, please contact us at firstname.lastname@example.org.
wolfSSL is about to make its alpha test debut as a Java based SSL provider on Android. This project took longer than planned, but we now have a version working internally. Alpha releases are available on a request basis. We’ll post more here as we make it available early next week.
In the meantime, for your listening and viewing pleasure: http://www.youtube.com/watch?v=7_IKcMl_a9A.
There’s a great article on “Building Custom Firmware with OpenWRT” in the August edition of Linux Journal: www.linuxjournal.com. It’s not out on their website yet, but is available in paper form if you pick up a copy.
If you haven’t checked out the OpenWRT project yet, you can do so here: www.openwrt.org. We’ve been supporting OpenWRT for a couple of years now with our wolfSSL embedded ssl implementation, and it had now been adopted by quite a few OpenWRT applications and derivatives. A couple of examples include: http://www.gargoyle-router.com/, who hacked wolfSSL down even much smaller than the normal 50k, and LuCi, http://luci.subsignal.org/.
If you’re using wolfSSL in an open source project, keep in mind that our policy is to support open source projects for free, as in free beer at our SSL party. It will rock. As such, you can channel your questions directly to our forums http://sourceforge.net/projects/yassl/forums/forum/439591, or if they are sensitive, email them to us at email@example.com.
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 firstname.lastname@example.org if you have comments! We’ll be happy to re-factor this list with your input!
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 email@example.com if you are interested in running SSL on a GPU. We’ll be happy to support you!