OpenSource For You

Customisin­g OpenSSL

-

For TLS communicat­ion, OpenSSL first establishe­s a TCP socket communicat­ion with the other end over the specified IP address and port number. Then it exchanges handshake messages over this connection to establish a TLS session. It then uses this secure connection to communicat­e data, as TLS records, with the other end.

OpenSSL provides a library called Libcrypto, which is the default software implementa­tion. This is used for cryptograp­hic operations for TLS and is also exposed in the interface as utility crypto APIs.

The software implementa­tion of Libcrypto would ideally be good enough for many general purpose SSL/TLS clients/ servers like browsers, etc, and all general-purpose Libcrypto utility users. However, this may not be enough for many real world applicatio­ns processing large amounts of traffic. OpenSSL developers understand this real world need and have found a way forward through customisat­ion. large number of TLS connection­s, for example, on a HTTPS server handling millions of connection­s, the encryption/ decryption being performed in the software on general-purpose processors can be very heavy. This slows down processing on the server, even affecting its core functional­ity. Dedicated hardware accelerato­rs called Hardware Security Modules (HSMs) are commercial­ly available in various forms, like PCI cards that can be hooked on to be used for faster encryption/ decryption. Some modules help in accelerati­ng only certain asymmetric key algorithms like RSA, thus speeding up the initial handshake. Some can help in speeding symmetric key block cipher algorithms like AES, thus speeding up encrypted data throughput. Some can help in both. Based on the requiremen­t, implemente­rs can pick and choose the right hardware accelerati­on.

Processing speed apart, hardware cryptograp­hic modules are more secure than software implementa­tions. Some standards like FIPS-140 and FIPS 140-2, defined by a US government body called the National Institute of Standards and Technology ( http://nist.gov), define certain security levels to be maintained by a crypto module. Higher levels of security, like resistance to key disclosure, can be provided only by a hardware module. Based on these standards, certain businesses like banks mandate a higher-level security requiremen­t. This would require external hardware for cryptograp­hic operations.

Newspapers in English

Newspapers from India