Wednesday, September 29, 2010

Security in SIP


Session Initiation Protocol has become the call control protocol of choice for VoIP networks because of its open and extensible nature. However, the integrity of call signalling between sites is of utmost importance, and SIP is vulnerable to attackers when left unprotected.

Secure SIP is a security mechanism defined by SIP RFC 3261 for sending SIP messages over a Transport Layer Security-encrypted channel. Originally used for securing HTTP sessions, TLS can be re purposed to protect SIP session communications from eavesdropping or tampering. By deploying SIP-based devices that support Secure SIP, network administrators benefit from these increased levels of security for their VoIP networks.

Thwarting threats
-------------------
Companies are concerned about malicious parties eavesdropping on SIP signalling information, performing man-in-the-middle attacks that disrupt service or gaining unauthorized access to VoIP networks.

RFC 3261 defines mechanisms for providing increased security for a SIP session.

The most basic level of security, required to be implemented by all SIP user agents and SIP proxy servers, is Message Digest (MD5) authentication. This provides a basic level of authentication challenge between a SIP proxy server and SIP user agent. At the other end of the spectrum, Secure Multi-purpose Internet Mail Extensions (S/MIME) can be implemented to encrypt data directly within SIP messages.

SIP support for S/MIME has not been as widely deployed as HTTP because of the required public-key infrastructure support and the added complexity of managing the security certificates. Secure SIP, running SIP over TLS on a hop-by-hop basis, provides a more comprehensive level of security than that of basic MD5 authentication, without the additional overhead imposed by S/MIME.

One key difference between the SIP and HTTP protocols is that a SIP request may travel across several hops before reaching its destination. Running SIP over TLS can provide secure connections on a hop-by-hop basis.

For Secure SIP communications, RFC 3261 defines the SIPS Uniform Resource Identifier (URI), used as HTTPS is used for secure HTTP connections. The SIPS URI ensures that SIP over TLS is used between each pair of hops to validate and secure the connection, and provide a secure endpoint-to-endpoint connection.

In a Secure SIP session, the SIP user agent client contacts the SIP proxy server requesting a TLS session. This SIP proxy server responds with a public certificate and the SIP user agent then validates the certificate. Next, the SIP user agent and the SIP proxy server exchange session keys to encrypt or decrypt data for a given session. From this point, the SIP proxy server contacts the next hop and similarly negotiates a TLS session, ensuring that SIP over TLS is used end-to-end.

One might ask why a security protocol such as IPsec is not used for a direct, secure, end-to-end connection between SIP endpoints. Because IPsec encrypts data end-to-end, the SIP proxy servers between the SIP endpoints would not be able to interpret and modify required information in the SIP messages. TLS is a lighter-weight and more easily managed protocol than IPsec, and thus more appropriate for SIP-based VoIP endpoints, which are often processing and resource constrained. The security mechanism between SIP proxy servers within a network may use TLS, IPsec or other security mechanisms, as long as the information is decrypted at each hop.

Secure SIP is an optional item for SIP user agents, but more SIP-based VoIP endpoints provide it. VoIP network administrators should take a look at implementing this technology within their SIP-based networks to gain from the added level of security that Secure SIP can provide.