Session Initiation Protocol

Slides:



Advertisements
Similar presentations
SIP, Presence and Instant Messaging
Advertisements

Presence, Security and Privacy. VON The Current Environment Many Faces of Security Authentication Verify someone is who they.
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
IM May 24, 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
Information-Centric Networks09c-1 Week 9 / Paper 3 VoCCN: Voice Over Content-Centric Networks –V. Jacobson, D. K. Smetters, N. H. Briggs, M. F. Plass,
Session Initiation Protocol R 張榮宏 R 呂詩禹.
July 20, 2000H.323/SIP1 Interworking Between SIP/SDP and H.323 Agenda Compare SIP/H.323 Problems in interworking Possible solutions Conclusion Q/A Kundan.
Tom Behrens Adam Muniz. Overview What is VoIP SIP Sessions H.323 Examples Problems.
Voice over IP Fundamentals
Security in VoIP Networks Juan C Pelaez Florida Atlantic University Security in VoIP Networks Juan C Pelaez Florida Atlantic University.
IP Communications Services Redefining Communications Teresa Hastings Director WorldCom SIP Services Conference – April 18-20, 2001.
An Overview of SIP Security Dr. Samir Chatterjee Network Convergence Lab Claremont Graduate University
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 5 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
SIP Chapter 5. SIP History 1980s – first packet multimedia experiments 1992 – first IETF audio-cast 1996 – first SIP related IETF drafts Session Invitation.
Voice over IP and IP telephony Network convergence – Telephone and IT – PoE (Power over Ethernet) Mobility and Roaming Telco – Switched -> Packet (IP)
Phelim O’Doherty Sun Microsystems
Cmpe 491 Special Project In Computer Engineering SIP User Agent In JAVA Alp Eren YILMAZ & Serdar YALÇINKAYA.
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University
SIP Security Matt Hsu.
Internet Telephony Helen J. Wang Network Reading Group, Jan 27, 99 Acknowledgement: Jimmy, Bhaskar.
SIP Programming : SIP has texture encoding feature. [1] SIP allows third parties or user to program SIP follows HTTP programming model.
Agenda Introduction to 3GPP Introduction to SIP IP Multimedia Subsystem Service Routing in IMS Implementation Conclusions.
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
Session Initiation Protocol Team Members: Manjiri Ayyar Pallavi Murudkar Sriusha Kottalanka Vamsi Ambati Girish Satya LeeAnn Tam.
Implementing ISA Server Publishing. Introduction What Are Web Publishing Rules? ISA Server uses Web publishing rules to make Web sites on protected networks.
Support Services & IP Multimedia Subsystem (IMS)
1 © NOKIA 1999 FILENAMs.PPT/ DATE / NN SIP Service Architecture Markus Isomäki Nokia Research Center.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
Presented By Team Netgeeks SIP Session Initiation Protocol.
1 Security Protocols in the Internet Source: Chapter 31 Data Communications & Networking Forouzan Third Edition.
VoN September ‘98 1 9/17/98 VoN Standards Update Jonathan Rosenberg Bell Laboratories September 17, 1998.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
Session Initiation Protocol (SIP) Chapter 5 speaker : Wenping Zhang data :
Project Objectives A multi-function programmable SIP user agent for multimedia communications, such as audio, video, white board, desktop sharing, shared.
RFC3261 (Almost) Robert Sparks. SIPiT 10 2 Status of the New SIP RFC Passed IETF Last Call In the RFC Editor queue Author’s 48 hours review imminent IMPORTANT:
1 Internet Telephony: Architecture and Protocols an IETF Perspective Authors:Henning Schulzrinne, Jonathan Rosenberg. Presenter: Sambhrama Mundkur.
The Session Initiation Protocol - SIP
K. Salah1 Security Protocols in the Internet IPSec.
Chapter 7 : Web Security Lecture #1-Week 12 Dr.Khalid Dr. Mohannad Information Security CIT 460 Information Security Dr.Khalid Dr. Mohannad 1.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
سمینار تخصصی What is PSTN ? (public switched telephone network) تیرماه 1395.
1Security for Service Providers – Dave Gladwin – Newport Networks – SIP ’04 – 22-Jan-04 Security for Service Providers Protecting Service Infrastructure.
SIP Programming : SIP has texture encoding feature.[1]
VoIP ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
TOPIC: HTTPS (Security protocol)
IPsec Problems and Solutions
IPSecurity.
Chapter 9: Transport Layer
Analysis of secured VoIP services
IP Telephony (VoIP).
SIP over MANETs Introduction to SIP SIP vs MANETs Open Issues
SIP for Grid networks Franco Callegati, Aldo Campi, Walter Cerroni
Instructor Materials Chapter 9: Transport Layer
draft-ietf-simple-message-sessions-00 Ben Campbell
Session Initiation Protocol
Securing the Network Perimeter with ISA 2004
Session Initiation Protocol (SIP)
Net 431: ADVANCED COMPUTER NETWORKS
Cryptography and Network Security
Programmable End System Services Using SIP
Multimedia and Networks
Chapter 8: Monitoring the Network
draft-ipdvb-sec-01.txt ULE Security Requirements
ELECTRONIC MAIL SECURITY
ELECTRONIC MAIL SECURITY
Web Server Design Week 13 Old Dominion University
SIP Basics Workshop Dennis Baron July 20, 2005.
Cryptography and Network Security
Presentation transcript:

Session Initiation Protocol

Sipsak Demo

What is it? SIPSAK: Try it on FreeBSD: Web site: It’s a small command line tool for developers and administrators of Session Initiation Protocol applications. Try it on FreeBSD: /usr/ports/net/sipsak Web site: sipsak.org

How to use it? man sipsak Send an OPTIONS request to nobody@foo.bar and display received replies sipsak -vv -s sip:nobody@foo.bar Send the instant message "Lunch time!" to the colleague and show result: sipsak -M -v -s sip:colleaue@work -B "Lunch time!"

SIP Security

What problems do users face? 四面楚歌

SIP Security SIP security is a vast and challenging field. Authentication Can users steal other users identity? Integrity Is the SIP message received the same as the one sent? Confidentiality Is someone else listening on your SIP call setup?

Threats Fake requests (e.g., fake From) Modification of content REGISTER Contact SDP to redirect media Insertion of requests into existing dialogs: BYE, re-INVITE Denial of service (DoS) attacks Privacy Trust domains – can proxies be trusted?

SIP Security Mechanisms SIP is HTTP-like How do we secure HTTP services? HTTP HTTPS (SSL) TCP based Transport Layer Security (TSL) E-mail PGP (Pretty Good Privacy) S/MIME IP based communication IPsec (IP Security)

Solutions for securing SIP

HTTP Digest Authentication Example given in RFC 2617 Client request (user: Mufasa passwd: Circle Of Life) ? Server response:

HTTP Digest Authentication Generating the MD5 values

HTTP Digest authentication parameter meaning realm client domain domain destination algorithm hash algorithm: MD5, MD5-sess nonce server-chosen nonce cnonce client-chosen nonce nc # times nonce has been used digest-uri qop protection (auth, auth-int) opaque string echoed by client username user’s name in specified realm response H(H(A1):nonce:nc:cnonce:qop:H(A2))

HTTP Digest authentication response = H(H(A1):nonce:nc:cnonce:qop:H(A2)) A1 = username:realm:password A2 = method:URI or method:URI:H(body) where H(x) = MD5(x)

SIP Proxy Digest Authentication Proxy Server using Digest Authentication Proxy Server Invite

SIP Proxy Digest Authentication Proxy Server using Digest Authentication Proxy Server Invite Challenge

TLS security: SIPS URI SIPS scheme added in RFC 3261 sips:alice@example.com TLS must be used on the whole path. Can not be applied to UDP-based SIP (only TCP or other reliable transport protocol) Applied hop-by-hop All SIP proxies required to implement

How to secure the talk? Securing the real-time media streams Multimedia streams are packet-oriented Encryptions and authentication algorithms should not cause too much delay Transmission must be UDP based Only two security mechanisms are currently available.

Securing the real-time media streams

Secure Real-Time Transport Protocol (SRTP) The Secure RTP Packet Format:

SRTP Default Encryption Algorithm

Secure Real-Time Transport Protocol (SRTP) The Secure RTCP Packet Format:

VoIP security is complex Conclusion VoIP security is complex Numerous protocols NAT/firewall traversal issues QoS issues Technologies are in place to secure VoIP Solutions we’ve discussed However, no “standard” approach is being used Current VoIP providers do not secure calls

SIP Programming

SIP Programming SIP follows HTTP programming model Three mechanisms suggested in IETF Call Processing Language ( SIP – CPL ) Common Gateway Interface ( SIP – CGI ) SIP Servlet Other Options Creation Markup Language (SCML) Voice Extensible Markup Language (VoiceXML) Call Control extensible Markup Language (CCXML)

SIP Programming Examples Users and third parties may program “discard all calls from Monica during my business hours” “redirect authenticated friends to my cell phone, anyone else to my secretary” “if busy, return my homepage and redirect to recorder” Users and third parties may program

SIP Programming

Where Services Locate? Source: H. Schulzrinne: “Industrial Strength IP Telephony”

Common Gateway Interface Almost identical to HTTP CGI Language independent ( Perl, Tcl, C, C++, ... ) Any binary may be executed as a separate program Communicates through IO and environment variables. More flexible but more risky Unmanaged Resource Allocating Single CGI may crash the server or user client Feb. 1, 2001: RFC 3050 (Common Gateway Interface for SIP) published

Call Processing Language Designed by the IETF to support sophisticated telephony services May be used by both SIP or H.323. XML based scripting language Extensive Easily edited by GUI tools Portability allows users to move across servers. Lightweight CPL interpreter is need Better security

An Example A simple script that blocks anonymous callers <?xml version="1.0" ?> <!DOCTYPE cpl PUBLIC "-//IETF//DTD RFCxxxx CPL 1.0//EN" "cpl.dtd"> <cpl>   <incoming>     <address-switch field="origin" subfield="user">       <address is="anonymous">         <reject status="reject"           reason="I don't accept anonymous calls" />       </address>     </address-switch>   </incoming> </cpl>

Java Servlets Similar to HTTP servlets Resource Managed By Container The class runs within a JVM (Java Virtual Machine) on server Security provided by Java Portable between OSs & servers

JAIN SIP The Java-standard interface to a SIP signaling stack. Standardizes the interface to the stack. Standardizes message interface. Standardizes events and event semantics. Application portability -verified via the TCK. Designed for developers who require powerful access to the SIP protocol. JAIN SIP can be utilized in a user agent, proxy, registrar or imbedded into a service container.

SIP Implementation Structure

Packages General package Address package Message package Defines the architectural interfaces, the transaction and dialog interfaces and the event objects of the specification. Address package Address package contains a generic URI wrapper and defines SIP URI and Tel URIs interfaces. Message package Defines the interfaces necessary for the Request and Response messages. Header packages Header package defines interfaces for all the supported headers and extension headers

Application - Stack Creation Initialize Stack using SipFactory: try { Properties properties = new Properties(); properties.setProperty("javax.sip.IP_ADDRESS", "129.6.55.181"); properties.setProperty("javax.sip.OUTBOUND_PROXY", "129.6.55.182:5070/UDP"); ……// Other initialization properties. sipStack = sipFactory.createSipStack(properties); } catch(SipException e) { System.exit(-1); }

Application – Request Creation Initialize Request using Factories: try { SipURI requestURI = addressFactory.createSipURI (toUser, toSipAddress); // … Create other headers Request request = messageFactory.createRequest (requestURI, Request.INVITE, callIdHeader, cSeqHeader, fromHeader, toHeader, viaHeaders, maxForwards); }

Application - Sending Requests Send outgoing messages: try { // Create the client transaction ClientTransaction inviteTid = sipProvider.getNewClientTransaction(request); // send the request inviteTid.sendRequest(); }

HIGH-LEVEL SERVICE CREATION FRAMEWORK Service Creation Environment (SCE) GUI Develop IDE Service Logic Execution Environment (SLEE)

HIGH-LEVEL SERVICE CREATION FRAMEWORK

Mechanism choosing Portability vs Performance Portability needed if services deployed at multiple servers or end-devices. Portable languages (CPL) need to be interpreted (processing delay) Deployment scenario decides service creation mechanism.

Implementations BaseVoice Vanilla SIPD Meetinghouse SIP Proxy J2EE-based SIP Server, JAIN SIP API v1.1. SIPD SIP CGI-BIN support Meetinghouse SIP Proxy CPL support Source: “http://www.iptel.org/info/products/”

Reference http://netlab.boun.edu.tr/mast/sip/ http://iptel.org/sip/siptutorial.pdf http://java.sun.com/products/jain/JAIN-SIP-Tutorial.pdf Creating Value Added Services in Internet Telephony: An Overview and a Case Study on a High-Level Service Creation Environment -- Roch H. Glitho, Ferhat Khendek, and Alessandro De Marco