SSL Terminal

SSL Terminal

The SSL Connection plugin turns IO Ninja into a highly configurable raw SSL client-side terminal.

In the modern world, secure connections are everywhere. Browsing the web, watching video streams, shopping online, logging into remote accounts, controlling smart homes and IoT devices — all this and more is done over connections secured with the SSL protocol (SSL stands for Secure Sockets Layer).

In reality, when we say SSL, we actually assume TLS (Transport Layer Security) — a more recent variation of the original SSL protocol; still, it's common to refer to all types of connections secured with the SSL/TLS protocol suite simply as SSL connections.

Unfortunately, there are not so many tools available for debugging raw SSL connections. Probably, the most common way is to use the openssl command-line utility in the s_client mode to establish a connection and then communicate to the remote server by typing characters and inspecting replies being shown on the terminal console:

$ openssl s_client -connect ioninja.com:443

However, that's not too convenient and it imposes quite a few functional restrictions (e.g., you can't prepare a packet and send it all at once, it's hard to send and receive non-textual characters, etc.)

The SSL Connection plugin fills the existing gap. Now, IO Ninja can be used for convenient GUI-based debugging of raw SSL connections. You can:

  • Use the whole range of IO Ninja logging and transmitting capabilities;
  • Choose the SSL cipher suite;
  • Specify client-side SSL certificates;
  • Choose whether to verify server-side SSL certificates...
  • ...and specify a set of CAs for verification;
  • Re-connect if connection is lost;
  • Specify local address to connect from;
  • Control low-level TCP options (Nagle, TCP RST, keep-alives).