-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UseSRTP
Extension
#13
Comments
For this we also need a usable SRTP library, i'll probably also put this behind an optional crate feature I'm currently looking at two, but i'm not sure which one i could work with;
|
I guess dtls-rs only needs to include the use_srtp related functionality in the key exchange. Either by having a fixed set of supported extensions or a dynamic way to add those extensions (which might be harder). After that the normal key exporters (RFC5705) (rustls seems to support this I think) can be used to do the rest independent from the used srtp crate (See 4.2). It would be part of the SRTP crate to derive its key based on the extracted DTLS master key and salt. Or dtls-rs could offer a SRTP KDF per spec. |
Huh, it does look like that this is basically hijacking a DTLS handshake, and then extracting the resultant secrets/master key to pass onto its own stack. I'm a bit unsure on how to handle the resultant parts from the handshake then, I have a feeling that it should just output a normal I think in the case of SRTP multiplexing, the application should define its own router, as per the following forwarding diagram;
If SRTP provides its own lifetime signalling, it may even be possible to drop the I'll have to give a closer look at the RFC before I give my full thoughts on the matter though, but so far it seems forseeable. |
Furthermore for this, i'd need to expose the rustls The only thing left then would be how I'll expose the extension, I'm thinking to allow either raw Though I'm inclined to just go with Edit: Yeah, i'll probably do something along the lines of; impl UseSRTPExtension {
pub fn new<P: Into<u16>>(profiles: Vec<P>, mki: Option<Vec<u8>>) -> Self {}
} So far, SRTP basically piggybacks off of 3 points in a DTLS connection;
The rest (in-band SRTP packets) is solved with #15, because while the SRTP stream may use the same socket, it is thereafter not related to the DTLS connection. (Unless I'm missing something wrt lifecycle management) |
There is an update regarding the SRTP DeMux: rfc7983 |
Implement the
use_srtp
extension as per RFC 5764The text was updated successfully, but these errors were encountered: