|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-E7C820D7-7E00-5A95-9847-29A0FB0E78F1" xml:lang="en"><title>What |
|
13 is Secure Real-Time Transport Protocol?</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <p>The Secure Real-Time Transport Protocol (SRTP) is defined as a profile |
|
15 of RTP. SRTP provides confidentiality, message authentication, and replay |
|
16 protection to the RTP traffic. It also protects the traffic of Real-time Transport |
|
17 Control Protocol (RTCP). </p> |
|
18 <p>SRTP is a layer between the RTP and the networking layer. The SRTP protocol |
|
19 as defined in RFC 3711 provides support for encryption, decryption of RTP |
|
20 payloads, and integrity protection of the entire packet. </p> |
|
21 <p>SRTP uses a single master key for generating session keys for encryption |
|
22 and authentication. RTP is closely related to RTCP(RTP control protocol) which |
|
23 can be used to control the RTP session. SRTP has a related protocol called |
|
24 Secure RTCP or SRTCP. SRTCP provides the same security related features to |
|
25 RTCP, as SRTP provides to RTP. </p> |
|
26 <p>SRTP is the security layer that resides between the RTP/RTCP application |
|
27 layer and the transport layer. It generates SRTP packets from the RTP/RTCP |
|
28 stream and forwards the packets to the receiver. It also transforms incoming |
|
29 SRTP packets to RTP/RTCP packets and passes these up the stack. </p> |
|
30 <section id="GUID-EC86AD19-5A80-59C5-A1BE-5196751A62A3"><title>How SRTP Works?</title> <p><b>Symbian |
|
31 OS Implementation of SRTP</b> </p> <p>The SRTP implementation follows the |
|
32 mandatory mechanisms defined in RFC 3711: </p> <ul> |
|
33 <li id="GUID-7F501CFB-A009-5ABA-81ED-442C79691B65"><p>AES-128 Counter mode |
|
34 for encryption of RTP payloads </p> </li> |
|
35 <li id="GUID-B18A31C7-C91A-568C-9FA5-BEF66DD5E534"><p>HMAC-SHA1 for authentication/integrity |
|
36 protection of RTP packets </p> </li> |
|
37 <li id="GUID-81492123-D4C6-59EC-B6E2-F38B8638E4BC"><p>AES-Counter Mode for |
|
38 session key derivation </p> </li> |
|
39 <li id="GUID-1EE2C03C-C4B2-59C2-94EB-6DDAC730E667"><p>NULL mode is supported |
|
40 for encryption/decryption and authentication. </p> </li> |
|
41 </ul> <p><b>Functional Model of SRTP</b> </p> <p>The figure below describes |
|
42 the functional model of SRTP. </p> <fig id="GUID-EC50E1D8-79A0-5088-8DB1-3EA50D63ABE4"> |
|
43 <image href="GUID-26D92AB3-510F-5D29-852A-D55F0C96A798_d0e548281_href.png" placement="inline"/> |
|
44 </fig> <p>The SRTP Stack is not an active component and is not network aware. |
|
45 It sits as a processing layer between the RTP stack and the network. The RTP |
|
46 stack calls for SRTP encryption before it sends the RTP Packets to the network. |
|
47 At the receiving side, the RTP stack decrypts the data received prior to normal |
|
48 RTP Processing. </p> <p>The APIs execute within the process boundary of the |
|
49 RTP Application. The SRTP APIs are generic and can be used by any RTP stack. </p> <p>The |
|
50 SRTP library implements the following functionalities: </p> <ul> |
|
51 <li id="GUID-6299069A-B48B-5A0D-A306-77B30EE91423"><p>Encryption of RTP payloads </p> </li> |
|
52 <li id="GUID-4A8EFCD5-45D4-5DDD-B847-DE1529ECD293"><p>Message authentication |
|
53 and integrity of the RTP packet </p> </li> |
|
54 <li id="GUID-18578A1C-7D83-58EE-9E80-B5C0490D9FAD"><p>Replay Protection. </p> </li> |
|
55 </ul> </section> |
|
56 <section><title>How to use SRTP?</title> <p>The SRTP stack is offered as a |
|
57 general purpose DLL. </p> <p>The capability of the DLL is ALL -TCB. </p> <p>The |
|
58 application should link to srtp.lib. </p> <p><b>Dependency</b> </p> <p>The |
|
59 SRTP implementation consists of crypto routines using the Symbian cryptographic |
|
60 libraries namely cryptospi.dll (from OS version 9.5) </p> </section> |
|
61 </conbody><related-links> |
|
62 <link href="GUID-06370120-7738-5694-9A8C-3B5B1E3A4352.dita"><linktext>Creating |
|
63 an SRTP Session</linktext></link> |
|
64 <link href="GUID-425A208C-5D2D-55FD-8623-9E00006E2781.dita"><linktext>Creating |
|
65 a Cryptographic Context</linktext></link> |
|
66 <link href="GUID-372B7A9F-261E-5F3F-B114-4BE2FE2EF7C7.dita"><linktext>Creating |
|
67 an SRTP Stream</linktext></link> |
|
68 <link href="GUID-79846EA2-33CD-5D01-8E96-6092C15BD839.dita"><linktext>Encrypting |
|
69 RTCP Packet Data</linktext></link> |
|
70 <link href="GUID-922F292E-9420-593B-B226-2764C5F29DF9.dita"><linktext>Encrypting |
|
71 RTP Packet Data</linktext></link> |
|
72 <link href="GUID-6E1AC4C9-7CA3-503A-AFC0-BAF29CCA8290.dita"><linktext>Decrypting |
|
73 RTP Packet Data</linktext></link> |
|
74 <link href="GUID-F9A24A47-7A0B-5F6E-8B0A-B7A7BCC4EAFC.dita"><linktext>Decrypting |
|
75 RTCP Packet Data</linktext></link> |
|
76 <link href="GUID-B9BD2E0A-F214-5344-91A6-E4E99F0D74C8.dita"><linktext>Updating |
|
77 Master Key</linktext></link> |
|
78 <link href="GUID-F9A24A47-7A0B-5F6E-8B0A-B7A7BCC4EAFC.dita"><linktext>Managing |
|
79 Master Key</linktext></link> |
|
80 </related-links></concept> |