mbed TLS

mbed TLS
Developer(s) Simon Butcher (lead maintainer), Janos Follath, Andrés Amaya García
Stable release

2.5.1 (June 21, 2017 (2017-06-21) [1]) [±]
2.1.8 (June 21, 2017 (2017-06-21) [1]) [±]

1.3.20 (June 21, 2017 (2017-06-21) [1]) [±]
Preview release 1.4 DTLS preview (February 16, 2015 (2015-02-16)[2]) [±]
Written in C
Operating system Multi-platform
Type Security library
License Apache 2.0 (GPLv2 is still available that was the default previously or proprietary; PolarSSL has a GPL linking exception for free software.[3]
Website tls.mbed.org

mbed TLS (previously PolarSSL) is an implementation of the TLS and SSL protocols and the respective cryptographic algorithms and support code required. It is dual-licensed with the Apache License version 2.0 (with GPLv2 also available). Stated on the website is that mbed TLS aims to be "easy to understand, use, integrate and expand".

History

The PolarSSL SSL library is the official continuation fork of the XySSL SSL library. XySSL was created by the French "white hat hacker" Christophe Devine and was first released on November 1, 2006, under GPL and BSD licenses. In 2008, Christophe Devine was no longer able to support XySSL and allowed Paul Bakker to create the official fork, named PolarSSL.[4] In November 2014, PolarSSL was acquired by ARM Holdings.[5]

In 2011, the Dutch government approved an integration between OpenVPN and PolarSSL, which is named OpenVPN-NL. This version of OpenVPN has been approved for use in protecting government communications up to the level of Restricted.[6]

As of the release of version 1.3.10, PolarSSL has been rebranded to mbed TLS to better show its fit inside the mbed ecosystem.[7] It was also announced that the licence would change from GPL to Apache License later in 2015 (with a goal of before October).[8]

Library

The core SSL library is written in the C programming language and implements the SSL module, the basic cryptographic functions and provides various utility functions. Unlike OpenSSL and other implementations of TLS, mbed TLS is designed to fit on small embedded devices, with the minimum complete TLS stack requiring under 60KB of program space and under 64 KB of RAM. It is also highly modular: each component, such as a cryptographic function, can be used independently from the rest of the framework. Versions are also available for Microsoft Windows and Linux. Because mbed TLS is written in the C programming language, without external dependencies, it works on most operating systems and architectures without any trouble.

Later versions of PolarSSL than 1.3.0, add abstraction layers for memory allocation and threading to the core "to support better integration with existing embedded operating systems".[9]

Design priorities

The mbed TLS library expresses a focus on readability of the code, documentation, automated regression tests, a loosely coupled design and portable code.[10]

Development documentation

The following documentation is available for developers:

Automated testing

mbed TLS provides automated testing of the code and of PolarSSL's compatibility as follows:

Use

mbed TLS is used as the SSL component in large open source projects:

Platforms

mbed TLS is currently available for most Operating Systems including Linux, Microsoft Windows, OS X, OpenWrt, Android, iOS and FreeRTOS. Chipsets supported at least include ARM, x86, PowerPC, MIPS.

Algorithms

mbed TLS supports a number of different cryptographic algorithms:

Ciphers
AES, Camellia, DES, RC4, RC5, Triple DES, XTEA, Blowfish
Cryptographic hash functions
MD5, MD2, MD4, SHA-1, SHA-2
Public-key cryptography
RSA, Diffie-Hellman key exchange, Elliptic curve cryptography (ECC), Elliptic curve Diffie–Hellman (ECDH), Elliptic Curve DSA (ECDSA)

See also

References

  1. 1 2 3 "mbed TLS 2.5.1, 2.1.8 and 1.3.20 released". 2017-06-21. Retrieved 2017-08-03.
  2. "Download archive - mbed TLS (Previously PolarSSL)". 2015-02-16. Retrieved 2015-03-01.
  3. https://tls.mbed.org/foss-license-exception
  4. "About us". PolarSSL. Retrieved 2014-05-08.
  5. "PolarSSL is now a part of ARM". 2014-11-24.
  6. Archived January 29, 2013, at the Wayback Machine.
  7. "mbed TLS 1.3.10 released". 2015-02-08. Retrieved 2015-02-09.
  8. "PolarSSL is dead, long live mbed TLS". ARM. Retrieved 2015-02-10.
  9. "New features in PolarSSL 1.3.0 – Tech Updates". Polarssl.org. Retrieved 2014-05-08.
  10. "PolarSSL Features: easy to use SSL library and well-documented". Polarssl.org. Retrieved 2014-05-08.
  11. "PolarSSL High Level Design". Polarssl.org. Retrieved 2014-05-08.
  12. "v1.3.6 source code documentation – API Documentation". PolarSSL. Retrieved 2014-05-08.
  13. "polarssl/polarssl — GitHub". Github.com. Retrieved 2014-05-08.
  14. "PolarSSL Core Features: Check out all technical details". Polarssl.org. Retrieved 2014-05-08.
  15. executable file 1038 lines (940 sloc) 39.573 kb (2014-02-13). "polarssl/tests/compat.sh at development · polarssl/polarssl · GitHub". Github.com. Retrieved 2014-05-08.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.