Symbian3/PDK/Source/GUID-E7C820D7-7E00-5A95-9847-29A0FB0E78F1.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Fri, 22 Jan 2010 18:26:19 +0000
changeset 1 25a17d01db0c
child 3 46218c8b8afa
permissions -rw-r--r--
Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608

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