One document matched: draft-kuthan-sip-derive-00.txt
SIP WG J. Kuthan
Internet-Draft D. Sisalem
Intended status: Standards Track R. Coeffic
Expires: April 28, 2009 V. Pascual
Tekelec
October 25, 2008
Dialog Event foR Identity VErification
draft-kuthan-sip-derive-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 28, 2009.
Abstract
This document provides a simple mechanism to prevent an attacker from
presenting a forged "From" header field. It offers an end-to-end
identity assumption which does not require any previous association
or trust relationship between administrative domains or the UAs. The
UAS verifies the "From" header by subscribing to the Dialog Event
package [RFC 4235] at the AOR in the "From" header field. If the
entity calling is registered under this AOR, it will confirm that it
is calling by sending some valid dialog state. In this case, the
identity of the caller is considered to be verified.
Kuthan, et al. Expires April 28, 2009 [Page 1]
Internet-Draft Dialog Event foR Identity VErification October 2008
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Overview of operation . . . . . . . . . . . . . . . . . . . . 4
4. 434 Response Code Definition . . . . . . . . . . . . . . . . . 6
5. Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Applicaibility . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1. Protocol compatibility . . . . . . . . . . . . . . . . . . 8
6.2. Limitations . . . . . . . . . . . . . . . . . . . . . . . 8
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.1. Example 1: Verified call . . . . . . . . . . . . . . . . . 9
7.2. Example 2: Unverified call . . . . . . . . . . . . . . . . 12
7.3. Example 3: Suspicious call . . . . . . . . . . . . . . . . 14
7.4. Example 4: Unverified call . . . . . . . . . . . . . . . . 15
7.5. Example 5: Verified call . . . . . . . . . . . . . . . . . 17
7.6. Example 6: Verified call . . . . . . . . . . . . . . . . . 18
7.7. Example 7: Suspicious call . . . . . . . . . . . . . . . . 20
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22
9. Security Considerations . . . . . . . . . . . . . . . . . . . 22
10. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
12.1. Normative References . . . . . . . . . . . . . . . . . . . 22
12.2. Informative References . . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23
Intellectual Property and Copyright Statements . . . . . . . . . . 24
Kuthan, et al. Expires April 28, 2009 [Page 2]
Internet-Draft Dialog Event foR Identity VErification October 2008
1. Introduction
The Session Initiation Protocol (SIP) [RFC3261] [2], creates,
modifies and terminates sessions but also provides information on the
identitites of the users involved at both ends of a session.
Providing a very basic mechanism for identifying users involved in a
session or call in SIP, the usage of the URI from the "To:" and
"From:" fields in the original request within subsequent requests is
done for backwards compatibility with [RFC2543]. The former,
specifies the desired logical recipient of the request and the later
represents the logical identity of the initiator of the request. An
identifier delivered in a "From:" header field contains a URI (TEL,
SIP or SIPS URI) and can be optionally accompanied by a "display-
name" field, which typically gives further information about the
caller. In the case of an INVITE-request, the delivered identifier
is normally presented as "Caller ID" by a human-readable user
interface (e.g. a phone's display) or used automatically to decide
whether the call requires special treatment (e.g. black and white
lists).
The value that populates the "From:" header field in requests
generated by a particular UA is usually pre-provisioned by the user
or by the administrators of the user's local domain. Outside the
context of an existing dialog, requests sent by the callee to the
caller use the callee's address in the "From:" header field [2]; that
is, the "public address" of the user, also known as address-of-record
(AOR).
Although a UAC should place its identity (display-name and AOR) in
the "From:" header field of a SIP request, the "Caller ID" can be
easily forged, either by the UAC or by an intermediary, through
simple modification of the "From:" header field. So far, in the
absence of some sort of authentication mechanism, a UAS has no end-
to-end mechanism to verify that the "From:" header field of a request
has been populated appropriately. Therefore the "Caller-ID" cannot
be relied upon. Since in SIP there is no built-in assurance that the
user can legitimately claim this identity, some solutions have been
proposed. [I-D.elwell-sip-e2e-identity-important] [4] surveys some
of these existing solutions. However, a user is likely to have a SIP
digest authentication shared secret only with a SIP Server in the
same administrative domain and only a few SIP UAs support the end-
user certificates necessary to authenticate themselves.
Nevertheless, it is desirable for SIP UAs to be able to send and
receive requests from destinations with which they don't have any
previous association or trust relationship while having a reasonable
assurance that the "Caller-ID" is not misleading.
[RFC3261] [2] describes a Dialog as a peer-to-peer relationship
Kuthan, et al. Expires April 28, 2009 [Page 3]
Internet-Draft Dialog Event foR Identity VErification October 2008
between two SIP user agents that persists for some time. A dialog is
identified at each UA with a unique dialog-ID, which consists of a
Call-ID value, a local tag and a remote tag. When a UA sends a
request outside of a dialog, it provides only "half" of the dialog
ID. The dialog is completed from the responses contributing the
second "half" of the dialog ID.
The INVITE-Initiated Dialog Event Package for SIP [RFC4235] [3]
defines an event package for INVITE-initiated dialog usages. It
allows users to subscribe to another user and to receive notification
of the changes in state of INVITE-initiated dialog usages in which
the subscribed-to user is involved.
This document provides a simple mechanism to prevent an attacker from
presenting a forged "From" header field. It offers an end-to-end
identity assumption which does not require any previous association
or trust relationship between administrative domains or the UAs. The
UAS verifies the "From" header by subscribing to the Dialog Event
package [RFC 4235] at the AOR in the "From" header field. If the
entity calling is registered under this AOR, it will confirm that it
is calling by sending some valid dialog state. In this case, the
identity of the caller is considered to be verified.
2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in BCP 14 [1] and indicate requirement levels for compliant
implementations.
The other concepts used in this document are compatible with RFC3261
[2] and RFC4235 [3].
3. Overview of operation
This section provides a brief overview of the operation of the
mechanism. It is tutorial in nature and should not be considered
normative.
The mechanism proposed in this document is based on the INVITE-
Initiated Dialog Event Package for SIP [RFC 4235] [3], which defines
a Dialog event package for the SIP Events architecture [RFC 3856].
Using the Dialog event package, a Callee can subscribe to a Caller
and receive notification of the state of an INVITE-initiated "half-
dialog" (resulting from the generation of an INVITE-request for which
Kuthan, et al. Expires April 28, 2009 [Page 4]
Internet-Draft Dialog Event foR Identity VErification October 2008
no final responses or provisional responses with tags has been
received) in which both the subscriber and the subscribed-to users
are involved. A positive response (2xx) and a subsequent
notification to this subscription indicates the existence of that
"half-dialog" at the user registered at the AOR present in the
INVITE's "From" header field. In that case, the conveyed identity of
the Caller (From header field) is considered to be verified.
Caller Proxy 1 Proxy 2 Callee
| | | | --------
| INVITE F1 | | |
|--------------->| INVITE F2 | | INVITE "half-dialog"
| |--------------->| INVITE F3 |
| | |--------------->| --------
| | | SUBSCRIBE F4 |
| | SUBSCRIBE F5 |<---------------|
| SUBSCRIBE F6 |<---------------| |
|<---------------| | |
| 200 F7 | | |
|--------------->| 200 F8 | | SUBSCRIBE "dialog"
| |--------------->| 200 F9 |
| | |--------------->|
| NOTIFY F10 | | |
|------------------------------------------------->|
| | | 200 F11 |
|<-------------------------------------------------| --------
| | | 200 F12 |
| | 200 F13 |<---------------|
| 200 F14 |<---------------| |
|<---------------| | | INVITE "dialog"
| ACK F15 | | |
|------------------------------------------------->| --------
Figure 1: Overview of Operation
Figure 1 shows the basic model of operation. When the Caller (UAC)
desires to initiate a session with the Callee (UAS), it forms an
INVITE-request (F1-F3) indicating its identity (AOR) in the "From:"
header field. This request is forwarded traversing some servers,
Proxy 1 and Proxy 2. When the UAS receives the INVITE request, it
needs to decide whether to authorize or reject the call based on the
identity of the sender (conveyed in the "From:" header field).
Hence, prior to accepting the call, the Callee desires to verify the
identity of the potential Caller. This is done by inspecting the
"From:" header field and sending a subscription to the dialog event
package (F4-F6) in the opposite direction to the INVITE request. The
Kuthan, et al. Expires April 28, 2009 [Page 5]
Internet-Draft Dialog Event foR Identity VErification October 2008
SUBSCRIBE request is sent before any 18x or final response to the
identity specified in the INVITE's "From" header field. The
"Expires" header field value is equal to 0 to signal a one time
subscription. The "Event" header field is set in conformance to [RFC
4235] [3] and includes the part of dialog identifier known at this
point. As an alternative, the dialog information MAY also be sent in
a body defining a filter to be applied to the subscription (as
allowed in [RFC 4235] [3]).
The SUBSCRIBE request is then forwarded to Proxy 2, from there to
Proxy 1, and from there (because of retargeting of a dialog-forming
request) to the Contact address binded to the AOR conveyed in the
"From:" header field of the original INVITE request. If the
subscription is accepted (F7-F9), the notifier sends immediately a
NOTIFY-request (F10) to communicate the existence and current state
of that "half-dialog" to the subscriber (Callee). This NOTIFY
message is sent on the same dialog as created by the SUBSCRIBE
response. The body of the notification contains a dialog information
document used to report the state of the "half-dialog" being
monitored. This information should be formatted into one of the body
formats specified in the "Accept" header of the corresponding
SUBSCRIBE request and can contain either the state of the subscribed
resource or a pointer to such state in the form of a URI. In case
the notifier is not aware of the "half-dialog" being monitored, a 481
(Call/Transaction Does Not Exist) response to the SUBSCRIBE request
MUST be sent instead.
The result of the Caller's identity verification SHOULD be provided
as input to an authorization process (out of the scope of this
document). Once this authorization process is completed, if the
Callee decides to accept the call, the INVITE is accepted and the
Callee's UAS core generates a 2xx (F12-F14) response which
establishes a dialog. Otherwise, when the Callee's UAS is not
willing to accept the call because the Caller was not aware of the
monitored "half-dialog", a 434 (Suspicious Call) response MUST be
returned (F12-F14).
4. 434 Response Code Definition
This specification introduces the 434 (Suspicious Call) response
code. It is generated by a UAS to indicate that the server refused
to fulfill the request because the requestor could not be verified.
A UAC compliant to this specification shall try to comply to the
requirements by, for example, registering the AOR sent in the "From"
header field. Its default reason phrase is "Suspicious Call".
Kuthan, et al. Expires April 28, 2009 [Page 6]
Internet-Draft Dialog Event foR Identity VErification October 2008
5. Behaviour
User Agents compliant with this specification MUST support the
INVITE-Initiated Dialog Event Package for the Session Initiation
Protocol (SIP) as defined per RFC 4235.
Some considerations:
- Subscriber Generation of SUBSCRIBE Request: After receiving an
INVITE request, the UAS MUST inspect the value conveyed in the
"From:" header field and MUST issue (before sending any 18x
alerting the user, or final response to the INVITE request) a
dialog-forming SUBSCRIBE request with an "Expires" of 0 addressed
to the AOR conveyed in the "From:" header field of the original
INVITE request. The SUBSCRIBE request MUST include an "Event:"
header field set to "dialog". This header SHOULD also include the
"half-dialog" identifier being subscribed-to. Alternatively, this
information MAY be sent in a body defining a filter to be applied
to the subscription. However, this is NOT RECOMMENDED. So far,
[RFC 4660] is the only standard's based work that has been done.
Some additional ideas were discussed in
[draft-olson-sipping-dialog-package-extensions] but, to our best
knowledge, this work has not progressed.
- Subscriber Processing 2xx responses for the SUBSCRIBE-request: A
positive response (2xx) and a subsequent notification to the
subscription indicates the Caller's awareness of the "half-dialog"
being monitored by the Callee. In that case, the conveyed
identity of the Caller is considered to be verified and the call
SHOULD be accepted.
- Subscriber Processing non-2xx responses for the SUBSCRIBE-
request:
- A 480 (Temporarily Unavailable) response indicates the proxy
server does not currently have a valid forwarding location for
the user identified by the Request-URI. In that case, the UAS
SHOULD reject the call with a 434 (Suspicious call) response
code to indicate to the UAC that it SHOULD get registered
before re-sending the INVITE request.
- A 481 (Call/Transaction Does Not Exist) response indicates
the notifier is not aware of the subscribed dialog. In that
case, the UAS MUST reject the call with a 434 (Suspicious call)
response code.
- A 489 Bad Event response indicates the Dialog event package
was not supported by the potential caller. In that case, the
UAS SHOULD accept the call and MAY use a common visual
identifier to indicate that the user is communicating with
someone whose identity has not been verified.
Kuthan, et al. Expires April 28, 2009 [Page 7]
Internet-Draft Dialog Event foR Identity VErification October 2008
- Other non-2xx responses (e.g. 408 Request Timeout): the UAS
SHOULD accept the call and MAY use a common visual identifier
to indicate that the user is communicating with someone whose
identity has not been verified.
6. Applicaibility
6.1. Protocol compatibility
This mechanism is backward compatible with SIP RFCs and re-uses
existing specifications. A new response code code (434) is defined,
and it indicates that the server refused to fulfill the request
because the requestor was untrusted.
The requirements described by this specification mandates the
compliance to following RFCs:
- RFC 3261: Session Initiation Protocol (SIP)
- RFC 3265: Session Initiation Protocol (SIP)-Specific Event
Notification
- RFC 4235: An INVITE-Initiated Dialog Event Package for the
Session Initiation Protocol (SIP)
6.2. Limitations
- The mechanism described in this document can provide a
reasonably good assertion about the positive case, but it can't
make a qualified assertion for failure (because of unregistered
caller, caller in DnD mode, caller without SUB-NOT, TEL URIs,
caller with permanent request forwarding turned on, etc.)
- Call setup delay: a delayed or missing final response will
dominate the processing at UAS that receives no response to a
SUBSCRIBE request.
7. Examples
This section describes the caller's identity verification and session
establishment between two SIP User Agents (UAs) which belong to two
different service providers (atlanta.com and biloxi.com).
Considerations:
- Alice and Bob (UAs) register and authenticate with their
respective domains (F1-F4) to be able to receive the requests via
their home proxy. In some cases, caller registration is triggered
upon receipt of a 434 Response (see Example 5).
Kuthan, et al. Expires April 28, 2009 [Page 8]
Internet-Draft Dialog Event foR Identity VErification October 2008
- Proxy 1 and Proxy 2 belong to two different Service Providers
which wish to be present in all message exchanges. Hence, they
will record-route any dialog-establishing requests. In that case,
UAs may elect to use S/MIME encryption of requests; consequently,
proxies cannot rely on being able to access any information that
is not explicitly required to be proxy-readable by SIP.
The examples shown below are for informational purposes only. For a
normative description of the dialog event package, please see RFC4235
[3]
7.1. Example 1: Verified call
In this scenario, Alice completes a call to Bob using two proxies
(Proxy 1 and Proxy 2) from different service providers. In order to
verify Alice's identity, Bob's UA subscribes to the status of Alice's
"half-dialog".
Kuthan, et al. Expires April 28, 2009 [Page 9]
Internet-Draft Dialog Event foR Identity VErification October 2008
Alice Proxy 1 (atlanta.com) Proxy 2 (biloxi.com) Bob
| | | | --------
| REGISTER F1 | | REGISTER F1 |
|--------------->| |<---------------|
| 401 F2 | | 401 F2 |
|<---------------| |--------------->|
| REGISTER F3 | | REGISTER F3 | Registration
|--------------->| |<---------------|
| 200 F4 | | 200 F4 |
|<---------------| |--------------->|
| | | | --------
| INVITE F5 | | |
|--------------->| INVITE F7 | |
| 100 F6 |--------------->| INVITE F9 | INVITE "half-dialog"
|<---------------| 100 F8 |--------------->|
| |<---------------| 100 F10 |
| | |<---------------| --------
| | | SUBSCRIBE F11 |
| | SUBSCRIBE F12 |<---------------|
| SUBSCRIBE F13 |<---------------| |
|<---------------| | |
| 200 F14 | | |
|--------------->| 200 F15 | |
| |--------------->| 200 F16 | SUBSCRIBE "dialog"
| | |--------------->|
| NOTIFY F17 | | |
|--------------->| NOTIFY F18 | |
| |--------------->| NOTIFY F19 |
| | |--------------->|
| | | 200 F20 |
| | 200 F21 |<---------------|
| 200 F22 |<---------------| |
|<---------------| | | --------
| | | 180 F23 |
| | 180 F24 |<---------------|
| 180 F25 |<---------------| |
|<---------------| | |
| | | 200 F26 |
| | 200 F27 |<---------------| INVITE "dialog"
| 200 F28 |<---------------| |
|<---------------| | |
| ACK F29 | | |
|--------------->| ACK F30 | |
| |--------------->| ACK F31 |
| | |--------------->| --------
Figure 2: Verified call
Kuthan, et al. Expires April 28, 2009 [Page 10]
Internet-Draft Dialog Event foR Identity VErification October 2008
Note: Via, Route and other headers are omitted from the message
illustrations for clarity.
Alice's UAC sends an INVITE request to Bob's UAS that looks, in part,
like:
F5 INVITE Alice -> Proxy 1 (atlanta.com)
INVITE sip:bob@biloxi.com SIP/2.0
From: Alice <sip:alice@atlanta.com>;tag=9fxced76sl
To: Bob <sip:bob@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
Supported: dialog
Contact: <sip:alice@client.atlanta.com>
Content-Type: application/sdp
Content-Length: ...
[SDP not shown]
After receiving Alice's INVITE request, Bob's UAS sends a dialog-
forming SUBSCRIBE request with an "Expires" of 0 to the AOR conveyed
in the "From:" header field of the original INVITE-request.
F11 SUBSCRIBE Bob -> Proxy 2 (biloxi.com) "Fetch Operation"
SUBSCRIBE sip:alice@atlanta.com SIP/2.0
From: Bob <sip:Bob@biloxi.com>;tag=8672349
To: <sip:alice@atlanta.com>
Call-ID: xt4653gs2ham@biloxi.com
Contact: <sip:bob@client.biloxy.com>
Event: dialog;call-id=3848276298220188511@atlanta.com;to-tag=9fxced76sl
Expires=0
Accept: application/dialog-info+xml
Content-Length: 0
This SUBSCRIBE request contains an "Event:" header field that
identify the "half-dialog" being subscribed to.
The SUBSCRIBE is forwarded to Proxy 2, from there to Proxy 1, and
from there it is re-targeted to Alice (F13). Upon receipt of this
SUBSCRIBE request, the notifier will send a single NOTIFY (F17)
request in the same dialog.
The NOTIFY (F17) body is used to report state on the resource being
monitored and it indicates to the recipient that the sender is aware
of an existing "half-dialog" with the recipient. It is formatted
Kuthan, et al. Expires April 28, 2009 [Page 11]
Internet-Draft Dialog Event foR Identity VErification October 2008
into the body format specified in the "Accept" header of the
corresponding SUBSCRIBE (F11) request (dialog-info+xml). This body
contains the state of the subscribed "half-dialog".
F17 NOTIFY Alice -> Proxy 1
NOTIFY sip:bob@client.biloxy.com SIP/2.0
To: Bob <sip:bob@biloxy.com>;tag=8672349
From: <sip:alice@atlanta.com>;tag=1234567
Call-ID: xt4653gs2ham@biloxi.com
Contact: <sip:alice@client.atlanta.com>
Event: dialog
Subscription-State: terminated;reason=timeout
Content-Type: application/dialog-info+xml
Content-Length: ...
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
version="0" state="full" entity="sip:alice@atlanta.com">
<dialog id="as7d900as8" call-id="3848276298220188511@atlanta.com"
local-tag="9fxced76sl" direction="initiator">
<state>Proceeding</state>
</dialog>
</dialog-info>
Note that the NOTIFY messages triggered by SUBSCRIBE messages with
"Expires" headers of 0 will contain a "Subscription-State" value of
"terminated", and a "reason" parameter of "timeout".
7.2. Example 2: Unverified call
Kuthan, et al. Expires April 28, 2009 [Page 12]
Internet-Draft Dialog Event foR Identity VErification October 2008
In the example call flow below, Alice completes a call to Bob using
two proxies (Proxy 1 and Proxy 2) from different service providers.
In order to verify Alice's identity, Bob's UA subscribes to the
status of Alice's dialog but Alice's UA does not support the Dialog
event package. Hence, Aice issues a 489 Bad Event response to
indicate that she did not understand the dialog event package.
Alice's identity could not be verified and this information is
displayed to Bob. Anyhow, he decides to proceed with the unverified
call
Alice Proxy 1 (atlanta.com) Proxy 2 (biloxi.com) Bob
| | | |
| REGISTER F1 | | REGISTER F1 |
|--------------->| |<---------------|
| 401 F2 | | 401 F2 |
|<---------------| |--------------->|
| REGISTER F3 | | REGISTER F3 |
|--------------->| |<---------------|
| 200 F4 | | 200 F4 |
|<---------------| |--------------->|
| INVITE F5 | | |
|--------------->| INVITE F7 | |
| 100 F6 |--------------->| INVITE F9 |
|<---------------| 100 F8 |--------------->|
| |<---------------| 100 F10 |
| | |<---------------|
| | | SUBSCRIBE F11 |
| | SUBSCRIBE F12 |<---------------|
| SUBSCRIBE F13 |<---------------| |
|<---------------| | |
| 489 F14 | | |
|--------------->| 489 F15 | |
| |--------------->| 489 F16 |
| | |--------------->|
/* Alice's identity could not be verified because Alice's
UA does not support the Dialog event package. */
| | | 180 F17 |
| | 180 F18 |<---------------|
| 180 F19 |<---------------| |
|<---------------| | |
| | | 200 F20 |
| | 200 F21 |<---------------|
| 200 F22 |<---------------| |
|<---------------| | |
| ACK F23 | | |
|--------------->| ACK F24 | |
| |--------------->| ACK F25 |
| | |--------------->|
Kuthan, et al. Expires April 28, 2009 [Page 13]
Internet-Draft Dialog Event foR Identity VErification October 2008
Figure 3: Unverified call
7.3. Example 3: Suspicious call
In the example call flow below, an Attacker issues an INVITE-request
using a forged From URI, impersonating Alice's AOR
(alice@atlanta.com).
F5 INVITE Attacker -> Proxy 2
INVITE sip:bob@biloxi.com SIP/2.0
From: Alice <sip:alice@atlanta.com>;tag=9fxced76sl
To: Bob <sip:bob@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
Contact: <sip:attacker@pc1.attacker.com>
Content-Type: application/sdp
Content-Length: ...
[SDP not shown]
In order to verify Alice's identity, Bob's UA subscribes to the
status of Alice's dialog. Alice's UA issues a 481 Call/Transaction
Does Not Exist response to indicate that she is not aware of the
requested dialog. Caller's identity is identified to be suspicious
and this information is displayed to Bob. Bob decides to reject the
call and a 434 Suspicious Call response is sent.
Kuthan, et al. Expires April 28, 2009 [Page 14]
Internet-Draft Dialog Event foR Identity VErification October 2008
Attacker Alice Proxy 1 (atlanta.com) Proxy 2 (biloxi.com) Bob
| | | | |
| | REGISTER F1 | | REGISTER F1 |
| |--------------->| |<---------------|
| | 401 F2 | | 401 F2 |
| |<---------------| |--------------->|
| | REGISTER F3 | | REGISTER F3 |
| |--------------->| |<---------------|
| | 200 F4 | | 200 F4 |
| |<---------------| |--------------->|
| | INVITE F5 | | |
|------------------------------------------------>| |
| | 100 F6 | | |
|<------------------------------------------------| INVITE F7 |
| | | |--------------->|
| | | | 100 F8 |
| | | |<---------------|
| | | | SUBSCRIBE F9 |
| | | SUBSCRIBE F10 |<---------------|
| | SUBSCRIBE F11 |<---------------| |
| |<---------------| | |
| | 481 F12 | | |
| |--------------->| 481 F13 | |
| | |--------------->| 481 F14 |
| | | |--------------->|
| | | | 434 F15 |
| | 434 F16 | |<---------------|
|<------------------------------------------------| |
| | ACK F17 | | |
|------------------------------------------------>| |
| | | | ACK F18 |
| | | |--------------->|
Figure 4: Suspicious call
7.4. Example 4: Unverified call
Kuthan, et al. Expires April 28, 2009 [Page 15]
Internet-Draft Dialog Event foR Identity VErification October 2008
In the example call flow below, an Attacker issues an INVITE request
using a forged From URI, impersonating Alice. In order to verify
Alice's identity, Bob's UA subscribes to the status of Alice's dialog
but Alice's UA does not support the Dialog event package. Hence,
Aice issues a 489 Bad Event response to indicate that she did not
understand the dialog event package. Alice's identity could not be
verified and this information is displayed to Bob. Anyhow, he decides
to proceed with the unverified call.
Attacker Alice Proxy 1 (atlanta.com) Proxy 2 (biloxi.com) Bob
| | | | |
| | REGISTER F1 | | REGISTER F1 |
| |--------------->| |<---------------|
| | 401 F2 | | 401 F2 |
| |<---------------| |--------------->|
| | REGISTER F3 | | REGISTER F3 |
| |--------------->| |<---------------|
| | 200 F4 | | 200 F4 |
| |<---------------| |--------------->|
| | INVITE F5 | | |
|------------------------------------------------>| |
| | 100 F6 | | |
|<------------------------------------------------| INVITE F7 |
| | | |--------------->|
| | | | 100 F8 |
| | | |<---------------|
| | | | SUBSCRIBE F9 |
| | | SUBSCRIBE F10 |<---------------|
| | SUBSCRIBE F11 |<---------------| |
| |<---------------| | |
| | 489 F12 | | |
| |--------------->| 489 F13 | |
| | |--------------->| 489 F14 |
| | | |--------------->|
/* Alice's identity could not be verified because Alice's
UA does not support the Dialog event package. */
| | | | 180 F15 |
| | 180 F16 | |<---------------|
|<------------------------------------------------| |
| | | | 200 F17 |
| | 200 F18 | |<---------------|
|<------------------------------------------------| |
| | ACK F19 | | |
|------------------------------------------------>| ACK F20 |
| | | |--------------->|
Figure 5: Unverified call
Kuthan, et al. Expires April 28, 2009 [Page 16]
Internet-Draft Dialog Event foR Identity VErification October 2008
7.5. Example 5: Verified call
In the example call flow below, Alice completes a call to Bob using
two proxies (Proxy 1 and Proxy 2) from different service providers.
In order to verify Alice's identity, Bob's UA subscribes to the
status of Alice's dialog but since Alice is not registered, her home
proxy does not currently have a valid forwarding location for her
(F13). Then, Bob decides to reject the call and a 434 Suspicious
Call is sent. After receiving a 434 response, Alice's UA decides to
register and authenticate with her service provider. Once she is
registered, the original INVITE-request is re-sent. Alice's AOR can
now be verified and the call is successfully established.
Alice Proxy 1(atlanta.com) Proxy 2 (biloxi.com) Bob
| | | |
| | | REGISTER F1 |
| | |<---------------|
| | | 401 F2 |
| | |--------------->|
| | | REGISTER F3 |
| | |<---------------|
| | | 200 F4 |
| | |--------------->|
| INVITE F5 | | |
|--------------->| INVITE F7 | |
| 100 F6 |--------------->| INVITE F9 |
|<---------------| 100 F8 |--------------->|
| |<---------------| 100 F10 |
| | |<---------------|
| | | SUBSCRIBE F11 |
| | SUBSCRIBE F12 |<---------------|
| |<---------------| |
| | 480 F13 | |
| |--------------->| 480 F14 |
| | |--------------->|
| | | 434 F15 |
| | 434 F16 |<---------------|
| 434 F17 |<---------------| |
|<---------------| | |
| ACK F18 | | |
|--------------->| ACK F19 | |
| |--------------->| ACK F20 |
| | |--------------->|
| REGISTER F21 | | |
|--------------->| | |
| 401 F22 | | |
|<---------------| | |
| REGISTER F23 | | |
Kuthan, et al. Expires April 28, 2009 [Page 17]
Internet-Draft Dialog Event foR Identity VErification October 2008
|--------------->| | |
| 200 F24 | | |
|<---------------| | |
| INVITE F25 | | |
|--------------->| INVITE F27 | |
| 100 F26 |--------------->| INVITE F29 |
|<---------------| 100 F28 |--------------->|
| |<---------------| 100 F30 |
| | |<---------------|
| | | SUBSCRIBE F31 |
| | SUBSCRIBE F32 |<---------------|
| SUBSCRIBE F33 |<---------------| |
|<---------------| | |
| 200 F34 | | |
|--------------->| 200 F35 | |
| |--------------->| 200 F36 |
| | |--------------->|
| NOTIFY F37 | | |
|--------------->| NOTIFY F38 | |
| |--------------->| NOTIFY F39 |
| | |--------------->|
| | | 200 F40 |
| | 200 F41 |<---------------|
| 200 F42 |<---------------| |
|<---------------| | |
| | | 180 F43 |
| | 180 F44 |<---------------|
| 180 F45 |<---------------| |
|<---------------| | |
| | | 200 F46 |
| | 200 F47 |<---------------|
| 200 F48 |<---------------| |
|<---------------| | |
| ACK F49 | | |
|--------------->| ACK F50 | |
| |--------------->| ACK F51 |
| | |--------------->|
Figure 6: Verified call
7.6. Example 6: Verified call
In the example call flow below, Alice completes a call to Bob using
two proxies (Proxy 1 and Proxy 2) from different service providers.
In order to verify Alice's identity, Bob's UA subscribes to the
status of Alice's dialog. Since Alice is registered from multiple
locations, Proxy 1 (a stateful proxy) chooses to route the SUBSCRIBE
to multiple destinations (forking). Note that since only one of
Kuthan, et al. Expires April 28, 2009 [Page 18]
Internet-Draft Dialog Event foR Identity VErification October 2008
Alice's devices is involved in the INVITE-initiated dialog, a forked
SUBSCRIBE will only result in a single 2xx (F18) response. Once
Alice's identity is verified the call is established successfully.
Alice@pda Alice@pc Proxy 1 (atlanta.com) Proxy 2 (biloxi.com) Bob
| | | | |
| | REGISTER F1 | | REGISTER F1 |
| |--------------->| |<---------------|
| | 401 F2 | | 401 F2 |
| |<---------------| |--------------->|
| | REGISTER F3 | | REGISTER F3 |
| |--------------->| |<---------------|
| | 200 F4 | | 200 F4 |
| |<---------------| |--------------->|
| | REGISTER F5 | | |
|------------------------------->| | |
| | 401 F6 | | |
|<-------------------------------| | |
| | REGISTER F7 | | |
|------------------------------->| | |
| | 200 F8 | | |
|<-------------------------------| | |
| | INVITE F9 | | |
|------------------------------->| INVITE F11 | |
| | 100 F10 |--------------->| |
|<-------------------------------| 100 F12 | INVITE F13 |
| | |--------------->|--------------->|
| | | | 100 F14 |
| | | |<---------------|
| | | | SUBSCRIBE F15 |
| | | SUBSCRIBE F16 |<---------------|
| | SUBSCRIBE F17 |<---------------| |
|<-------------------------------| | |
| | SUBSCRIBE F17 | | |
| |<---------------| | |
| | 481 F18 | | |
| |--------------->| | |
| | 200 F18 | | |
|------------------------------->| 200 F19 | |
| | |--------------->| 200 F20 |
| | | |--------------->|
| | NOTIFY F21 | | |
|------------------------------->| NOTIFY F22 | |
| | |--------------->| NOTIFY F23 |
| | | |--------------->|
| | | | 200 F24 |
| | | 200 F25 |<---------------|
| | 200 F26 |<---------------| |
Kuthan, et al. Expires April 28, 2009 [Page 19]
Internet-Draft Dialog Event foR Identity VErification October 2008
|<-------------------------------| | |
| | | | 180 F27 |
| | | 180 F28 |<---------------|
| | 180 F29 |<---------------| |
|<-------------------------------| | |
| | | | 200 F30 |
| | | 200 F31 |<---------------|
| | 200 F32 |<---------------| |
|<-------------------------------| | |
| | ACK F33 | | |
|------------------------------->| ACK F34 | |
| | |--------------->| ACK F35 |
| | | |--------------->|
Figure 7: Verified call
7.7. Example 7: Suspicious call
In the example call flow below, an Attacker issues an INVITE request
using a forged From URI, impersonating Alice. In order to verify
Alice's identity, Bob's UA subscribes to the status of Alice's
dialog. Since Alice is registered from multiple locations, Proxy 1
(a stateful proxy) chooses to route the SUBSCRIBE to multiple
destinations (forking). While Alice's UA on her PDA does not support
the Dialog event package, Alice's UA on her PC does support it and
issues a 481 Call/Transaction Does Not Exist response to indicate
that it is not aware of the requested dialog. In this case, Proxy 1
chooses one of the responses among those received and stored in the
response context; preference should be given to 481 Responses.
Caller's identity is identified to be suspicious and this information
is displayed to Bob. Bob decides to reject the call and a 434
Suspicious Call is sent.
Kuthan, et al. Expires April 28, 2009 [Page 20]
Internet-Draft Dialog Event foR Identity VErification October 2008
Attacker Alice@pda Alice@pc Proxy 1 (atlanta.com) Proxy 2 (biloxi.com) Bob
| | | | | |
| | | REGISTER F1 | | REGISTER F1 |
| | |--------------->| |<---------------|
| | | 401 F2 | | 401 F2 |
| | |<---------------| |--------------->|
| | | REGISTER F3 | | REGISTER F3 |
| | |--------------->| |<---------------|
| | | 200 F4 | | 200 F4 |
| | |<---------------| |--------------->|
| | | REGISTER F5 | | |
| |------------------------------->| | |
| | | 401 F6 | | |
| |<-------------------------------| | |
| | | REGISTER F7 | | |
| |------------------------------->| | |
| | | 200 F8 | | |
| |<-------------------------------| | |
| | | INVITE F9 | | |
|----------------------------------------------->| INVITE F11 | |
| | | 100 F10 |--------------->| |
|<-----------------------------------------------| 100 F12 | INVITE F13 |
| | | |<---------------|--------------->|
| | | | | 100 F14 |
| | | | |<---------------|
| | | | | SUBSCRIBE F15 |
| | | | SUBSCRIBE F16 |<---------------|
| | | SUBSCRIBE F17 |<---------------| |
| |<-------------------------------| | |
| | | SUBSCRIBE F17 | | |
| | |<---------------| | |
| | | 481 F18 | | |
| | |--------------->| | |
| | | 489 F18 | | |
| |------------------------------->| 481 F19 | |
| | | |--------------->| 481 F20 |
| | | | |--------------->|
| | | | | 434 F21 |
| | | | 434 F22 |<---------------|
| | | 434 F23 |<---------------| |
|<-----------------------------------------------| | |
| | | ACK F24 | | |
|----------------------------------------------->| ACK F25 | |
| | | |--------------->| ACK F26 |
| | | | |--------------->|
Figure 8: Suspicious call
Kuthan, et al. Expires April 28, 2009 [Page 21]
Internet-Draft Dialog Event foR Identity VErification October 2008
8. Acknowledgments
9. Security Considerations
As pointed out in [RFC 4235] [3], subscriptions to dialog state can
reveal sensitive information. Therefore, all subscriptions SHOULD be
authorized before approval and a caller SHOULD accept subscribe
requests only from URIs to which it has sent an INVITE-request.
Since the data in notifications is sensitive as well, end-to-end SIP
encryption mechanisms using S/MIME MAY be used to protect it. User
agents that implement this specification MAY also implement SIP over
(D)TLS and the sips: scheme.
The fact that a request was rejected because it was a Suspicious Call
(434) does reveal that the called party does not accept Suspicious
Calls. This information may or may not be sensitive. If it is, a
UAS SHOULD reject the INVITE-request with a 403 instead.
10. Grammar
This specification does not require any new grammar definition.
11. IANA Considerations
The following is the registration for the new SIP 434 (Suspicious
Call) response code according to the procedures of RFC 3261:
Response Code Number: 434
Default Reason Phrase: Suspicious Call
RFC Number: TBD
12. References
12.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
Kuthan, et al. Expires April 28, 2009 [Page 22]
Internet-Draft Dialog Event foR Identity VErification October 2008
[3] Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-
Initiated Dialog Event Package for the Session Initiation
Protocol (SIP)", RFC 4235, November 2005.
12.2. Informative References
[4] Elwell, J., "End-to-End Identity Important in the Session
Initiation Protocol (SIP)", July 2008.
Authors' Addresses
Jiri Kuthan
Tekelec
Berlin, Am Borsigturm 11 D13507
Germany
Phone: sip:jiri@iptel.org
Email: Jiri.Kuthan@tekelec.com
Dorgham Sisalem
Tekelec
Berlin, Am Borsigturm 11 D13507
Germany
Email: Dorgham.Sisalem@tekelec.com
Raphael Coeffic
Tekelec
Berlin, Am Borsigturm 11 D13507
Germany
Phone: sip:raf@iptel.org
Email: Raphael.Coeffic@tekelec.com
Victor Pascual
Tekelec
Berlin, Am Borsigturm 11 D13507
Germany
Phone: sip:victor.pascual@iptel.org
Email: Victor.Pascual@tekelec.com
Kuthan, et al. Expires April 28, 2009 [Page 23]
Internet-Draft Dialog Event foR Identity VErification October 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Kuthan, et al. Expires April 28, 2009 [Page 24]
| PAFTECH AB 2003-2026 | 2026-04-24 05:31:53 |