RECENT BLOG NEWS

So, what’s new at wolfSSL? Take a look below to check out the most recent news, or sign up to receive weekly email notifications containing the latest news from wolfSSL. wolfSSL also has a support-specific blog page dedicated to answering some of the more commonly received support questions.

Reduce Packet Data Overhead in M2M applications with wolfSSL

Many of our customers use the wolfSSL lightweight SSL/TLS package in M2M applications where usage is charged based on data transfer.  As such, it becomes important to minimize data transfer rates when running SSL.  Here are a few thoughts on how wolfSSL M2M users can minimize data packet overhead when implementing our embedded SSL:

1) Use a stream cipher like RC4, HC-128, or RABBIT.  Stream ciphers don`t require padding, this will save at least half the cipher`s block size per message.

2) Use session resumption as much as possible.  TLS session resumption uses less round trips and about 1/3 of the data compared to a full handshake, depending on certificate sizes and the certificate chain length mainly.  wolfSSL now has a built-in client session cache so using session resumption no longer places a burden on the application developer to map remote servers with session instances.

3) Only sending the peer certificate instead of certificate chains can greatly reduce the data usage of a full TLS handshake.  This will require the receiver to know about the root CAs and intermediate CAs ahead of time but it can often be worth it.

4) Use the shortest MAC you can, but still with good security.  This is probably SHA1 for now.  As more implementations begin to support truncated HMAC you could have the best of both.  SHA-384 for example, but truncated to 10 bytes.

5) Group output messages.  wolfSSL has the ability to send each TLS record individually or to send each group as flight.  This is a small savings, mainly in IP/TCP/TLS record headers but it adds up over time.

6) Use compression at the TLS level if you`re not doing it at the application level.  No sense in doing it twice though.

Using Maximum Fragment Length with wolfSSL

Did you like the addition of SNI in the last wolfSSL release? If so, you probably will like the Maximum Fragment Length extension as well!

TLS specifies a fixed maximum plaintext fragment length of 2^14 bytes. It may be desirable for constrained clients to negotiate a smaller maximum fragment length due to memory or bandwidth limitations. To enable the usage of Maximum Fragment Length at wolfSSL you can simply do:

./configure –enable-maxfragment

Using Maximum Fragment Length on the client side requires an additional function call, which should be one of the following functions:

wolfSSL_CTX_UseMaxFragment()
wolfSSL_UseMaxFragment()

wolfSSL_CTX_UseMaxFragment() is most recommended when the client would like to contact the same server multiple times with the same configuration. Setting the Maximum Fragment Length extension at context level will enable it in all SSL objects created from that same context from the moment of the call forward.

wolfSSL_UseMaxFragment() will enable it for one SSL object only, so it`s recommended to use this function when the maximum possible length between sessions changes.

On the server side no call is required. The server will automatically attend to the client`s request for Maximum Fragment Length. It is the client`s responsibility to choose the proper length.

Both SNI and Maximum Fragment Length extensions can be enabled with either:

./configure –enable-sni –enable-maxfragment

OR

./configure –enable-tlsx

If you have any questions about using Maximum Fragment Length with TLS please let us know at facts@wolfssl.com.

Gearman Now Supports wolfSSL

We would like to announce to our community that Gearman, a framework designed to distribute tasks to multiple machines or processes, now has SSL/TLS support using the wolfSSL lightweight SSL library.

From the Gearman site, Gearman “allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other words, it is the nervous system for how distributed processing communicates.”

If you are interested in using Gearman with wolfSSL, Brian Aker explains how to do so in this Google Groups post: https://groups.google.com/forum/?fromgroups#!topic/gearman/kHvarqZ6OYk.

Gearman: http://www.gearman.org/

wolfSSL Release 2.7.0 Now Available

The bi-monthly release of wolfSSL, 2.7.0, is now ready to download from our website.  New features include:

– SNI (Server Name Indication) for both the client and server with –enable-sni
– KEIL MDK-ARM project files in IDE/MDK-ARM
– Domain name match checks now included wildcard and Subject altname checks by default
– More consistent error returns across all APIs
– Authority Subject ID support for Certificate matching
– Persistent session and certificate cache functionality
– Client session table lookups at the library level instead of making the application cache the sessions
– Camellia support for the SSL sniffer
– User controllable settings for DTLS timeout values
– DTLS reliability enhancements for the handshake
– Better ThreadX support out of the box

Please see the README and our on-line documentation for more information or feel free to contact us.

Born in the USA!

We receive a lot of questions about the origins of the CyaSSL lightweight SSL library and wolfCrypt software packages.  We get asked where they were developed, and by who?  These questions usually come from US government agencies and their contractors.  Simply stated, mes amis, CyaSSL and wolfCrypt were Born in the USA and written by US citizens.

If you have any additional questions about the origins of CyaSSL or wolfCrypt, please contact us at facts@wolfssl.com

wolfCrypt and wolfSSL Separation

Up to now, wolfCrypt cryptography library users have had to use it as a part of wolfSSL.  We are now embarking on the project to separate the two, and when finished should have a separate wolfCrypt download for our users that only need to use our crypto.  Our goals are to make the separate downloads easy to maintain and easy to set up.  If you are a wolfCrypt user, and have concerns or comments on how we do this, then please contact us at facts@wolfssl.com.

Using Server Name Indication (SNI) with wolfSSL

Have you ever wondered how to use SNI with the wolfSSL embedded SSL library? SNI is useful when a server hosts multiple
‘virtual’ servers at a single underlying network address. It may be desirable for clients to provide the name of the server which it is contacting. To enable SNI with wolfSSL you can simply do:

./configure –enable-sni

Using SNI on the client side requires an additional function call, which should be one of the following functions:

wolfSSL_CTX_UseSNI()
wolfSSL_UseSNI()

wolfSSL_CTX_UseSNI() is most recommended when the client contacts the same server multiple times. Setting the SNI extension at the context level will enable the SNI usage in all SSL objects created from that same context from the moment of the call forward.

wolfSSL_UseSNI() will enable SNI usage for one SSL object only, so it is recommended to use this function when the server name changes between sessions.

On the server side one of the same function calls is required. Since the wolfSSL server doesn`t host multiple `virtual` servers, the SNI usage is useful when the termination of the connection is desired in the case of SNI mismatch. In this scenario, wolfSSL_CTX_UseSNI() will be more efficient, as the server will set it only once per context creating all subsequent SSL objects with SNI from that same context.

If you have any questions about using SNI with TLS please let us know at facts@wolfssl.com.

wolfSSL Support for Microchip TCP/IP Version 6

Are you interested in using the wolfSSL lightweight SSL/TLS library with version 6 of the Microchip TCP/IP stack? If so, you’re in luck! We recently added support for version 6 to wolfSSL. Now wolfSSL supports running on top of either version 5 or version 6 of the stack.

We have updated not only our library source code, but also our example PIC32 SSL client and server. You can find more details on our PIC32-specific webpage, here: http://yassl.com/yaSSL/cyassl-pic32.html.

To download the latest version of wolfSSL with support for Microchip TCP/IP version 6, please see our GitHub repository (https://github.com/cyassl/cyassl). Support will also roll into our next stable release of wolfSSL in June.

wolfSSL Product Page: http://yassl.com/yaSSL/Products-cyassl.html
Microchip TCP/IP Stack: https://www.microchip.com/SWLibraryWeb/product.aspx?product=TCPIPSTACK

wolfSSL Embedded SSL for Bare Metal and No OS Environments

Are you looking for an SSL/TLS library which will seamlessly integrate into your bare metal or No-OS environment? If so, continue reading to learn why the wolfSSL lightweight SSL library is a perfect fit for such environments.

wolfSSL has been designed with portability and ease of use in mind, allowing developers to easily integrate it into a bare metal or operating systemless environment. As a large percentage of wolfSSL users are running the library on small, embedded devices, we have added several abstraction layers which make tying wolfSSL into these types of environments an easy task.

Available abstraction layers include:
+ Custom Input/Output
+ Standard C library / Memory
+ File system (Able to use cert/key buffers instead)
+ Threading
+ Operating System

In addition to abstraction layers, we have tried to keep wolfSSL’s memory usage as low as possible. Build sizes for a complete SSL/TLS stack range from 20-100kB depending on build options, with RAM usage between 1-36kB per connection.

To learn more about how to integrate wolfSSL into your environment or get more information about reducing wolfSSL’s memory usage, please see the wolfSSL Manual or contact us directly.

Posts navigation

1 2 3 159 160 161 162 163 164 165 187 188 189

Weekly updates

Archives