Philipp Hancke 13b327b05f srtp: demonstrate wraparound with loss decryption failure
by encryption a packet with sequence number 65535 followed
by a packet with sequence number 1. The second packet is encrypted
with a SRTP ROC of 1 as described in
  https://datatracker.ietf.org/doc/html/rfc3711#section-3.3.1

The packets are (received and) decrypted in a different order,
the packet with sequence number 1 (and ROC=1) is decrypted first.
Since the ROC is maintained locally the decrypting session assumes
it to be 0.

Why is that a problem? The RFC recommends estimating the ROC with +-1 which, as demonstrated by the test, libSRTP does not.
But this is a rare problem that requires a random in a high range combined with packet loss/reordering which turns into no-a-problem if you choose carefully as done by packet_sequencer.cc which restricts the initial sequence number in the range 0..32767 which means you do not run into this issue in production.

See also Q6 in libsrtp's historical documentation at
  https://srtp.sourceforge.net/historical/faq.html

BUG=webrtc:353565743

Change-Id: I9bd72b198c946937aeb25c229005a0c682447f53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358360
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Cr-Commit-Position: refs/heads/main@{#42798}
2024-08-19 05:17:18 +00:00
2024-08-18 06:55:23 +00:00
2018-10-05 14:40:21 +00:00
2024-07-09 10:30:26 +00:00
2024-07-11 20:26:16 +00:00
2024-08-14 07:11:57 +00:00
2024-08-16 17:25:35 +00:00
2022-02-20 14:22:13 +00:00
2024-08-16 17:25:35 +00:00
2022-12-02 09:21:47 +00:00
2023-09-25 15:56:09 +00:00
2024-05-27 12:46:57 +00:00

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.

Development

See here for instructions on how to get started developing with the native code.

Authoritative list of directories that contain the native API header files.

More info

Description
The idea is to make CMake build for WebRTC m130 version - for audio processing module
Readme BSD-3-Clause 446 MiB
Languages
C++ 90.3%
Java 2.9%
C 2.2%
Objective-C++ 2%
Python 1.3%
Other 1%