You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sems/doc/ZRTP.txt

106 lines
4.2 KiB

SEMS
* [1]Main Page
* [2]Related Pages
* [3]Namespaces
* [4]Data Structures
* [5]Files
* [6]Directories
* [7]Examples
ZRTP encryption
Introduction
ZRTP is a key agreement protocol to negotiate the keys for encryption
of RTP in phone calls. It is an [8]informational RFC - RFC6189 ZRTP:
Media Path Key Agreement for Unicast Secure RTP.
Even though it uses public key encryption, a PKI is not needed. Since
the keys are negotiated in the media path, support for it in signaling
is not necessary. ZRTP also offers opportunistic encryption, which
means that calls between UAs that support it are encrypted, but calls
to UAs not supporting it are still possible, but unencrypted. The
actual RTP encryption is done with [9]SRTP.
ZRTP is one of the widest (if not the widest) supported end-to-end
encryption methods for VoIP. Popular SIP clients that support ZRTP are
[10]Jitsi, CSipSimple, Twinkle, Linphone.
For more information about ZRTP, see the [11]Zfone project, the [12]RFC
and the [13]wikipedia article.
ZRTP in SEMS
Since the version 1.0 SEMS supports ZRTP with the use of the [14]Zfone
SDK.
Currrently, the newest version of the ZRTP SDK, and the one that works
with SEMS, is available at [15]https://github.com/traviscross/libzrtp.
To build SEMS with ZRTP support, install the SDK and set WITH_ZRTP=yes
in Makefile.defs, or build with
$ make WITH_ZRTP=yes
The conference application is enabled to tell the caller the SAS phrase
if it is compiled with WITH_SAS_TTS option, set in
apps/conference/Makefile. For this to work, the [16]flite
text-to-speech synthesizer version 1.2 or 1.3 is needed.
How to use ZRTP in your application
Have a look at the conference application on how to add ZRTP support in
your application. There is a void AmSession::onZRTPEvent(zrtp_event_t
event, zrtp_stream_ctx_t *stream_ctx) event that is called with the
appropriate ZRTP event type and the zrtp stream context, if the state
of the ZRTP encryption changes. The zrtp_event are defined in the Zfone
SDK, e.g. ZRTP_EVENT_IS_SECURE.
Licensing
The Zfone SDK is licensed under the Affero GPL v3. As SEMS is licensed
under GPL 2+, you may use SEMS under GPLv3 and link with libZRTP under
Affero GPL v3. You may use the resulting program under the restrictions
of both GPLv3 and AGPLv3.
Note that due to the nature of the GPL, without written consent of the
authors of SEMS as with any other non-free library, it is not possible
to distribute SEMS linked to specially licensed commercial version of
the libZRTP SDK, nor the AGPL version. If in doubt, talk to your
lawyer.
Phones with ZRTP
* [17]Zfone turns every softphone into a secure phone by tapping into
the RTP sent and received
* [18]Jitsi
* [19]Twinkle is a very good free softphone for Linux. It can speak
ZRTP with the use of GNU [20]libzrtpcpp.
__________________________________________________________________
Generated by [21] doxygen 1.7.6.1
References
1. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/index.html
2. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/pages.html
3. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/namespaces.html
4. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/annotated.html
5. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/files.html
6. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/dirs.html
7. file://localhost/home/stefan_plain/devel/sems/zrtp/sems/doc/doxygen_doc/html/examples.html
8. http://tools.ietf.org/html/rfc6189
9. http://www.ietf.org/rfc/rfc3711.txt
10. http://www.jitsi.org/
11. http://zfoneproject.com/
12. http://tools.ietf.org/html/rfc6189
13. http://en.wikipedia.org/wiki/ZRTP
14. http://zfoneproject.com/prod_sdk.html
15. https://github.com/traviscross/libzrtp
16. http://cmuflite.org/
17. http://zfoneproject.com/
18. http://www.jitsi.org/
19. http://twinklephone.com/
20. http://www.gnutelephony.org/index.php/GNU_ZRTP
21. http://www.doxygen.org/index.html