{"id":82486,"date":"2026-09-23T09:32:29","date_gmt":"2026-09-23T12:32:29","guid":{"rendered":"https:\/\/a3aengenharia.com\/?post_type=articles&#038;p=82486"},"modified":"2026-09-23T09:32:29","modified_gmt":"2026-09-23T12:32:29","slug":"secure-streaming-onvif-profile-t-https-rtsps-srtp","status":"publish","type":"articles","link":"https:\/\/a3aengenharia.com\/en-us\/content\/technical-articles\/secure-streaming-onvif-profile-t-https-rtsps-srtp\/","title":{"rendered":"Secure Streaming in ONVIF: Profile T, HTTPS, RTSPS, and SRTP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Secure Streaming, in the context of <strong>ONVIF Profile T<\/strong>, should be interpreted based on the transport function defined by the profile itself: <strong>streaming over RTP\/RTSP\/HTTPS\/TCP<\/strong>. In the Profile T v1.0 specification, published in September 2018, this function is classified as <strong>conditional<\/strong>. Therefore, a device&#8217;s conformity with Profile T does not, by itself, establish that it supports this protected streaming mode.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This definition should also not be confused with <strong>SRTP \u2014 Secure Real-time Transport Protocol<\/strong>. In more recent ONVIF specifications, there is a distinct capability called <code>SecureRTSPStreaming<\/code>, associated with <strong>RTSPS and SRTP<\/strong>. The difference is architectural: in the HTTPS streaming referenced by Profile T, protection is provided by <strong>TLS on the HTTPS channel<\/strong>; in modern SecureRTSPStreaming, RTSP control uses TLS and the media can be protected directly by SRTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is especially important in design, technical specifications, procurement, and qualification of cameras and VMS platforms. Requiring only \u201cONVIF Profile T\u201d is not the same as requiring the HTTPS streaming feature; likewise, finding \u201cSecure Streaming\u201d in the conformity declaration of a Profile T product should not automatically be interpreted as proof of SRTP support.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Why Does the Term Secure Streaming Cause Confusion in ONVIF?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cSecure Streaming\u201d is an intuitive expression, but technically broad. Outside a normative context, it can be used to describe virtually any mechanism that protects a media stream in transit. Within the ONVIF ecosystem, however, it is necessary to identify <strong>which specification, profile, capability, or function<\/strong> is being considered.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first point is that <strong>Secure Streaming is not the name of a network protocol<\/strong>. The mechanisms used by ONVIF are built on existing protocols and services such as RTP, RTCP, RTSP, HTTP, HTTPS, TCP, UDP, TLS, and, in newer specifications, SRTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second point is that an <strong>ONVIF Profile is not a protocol either<\/strong>. A profile defines a fixed set of functions so that devices and clients from different manufacturers have a predictable interoperability baseline. The underlying functions are detailed in the ONVIF Network Interface Specifications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, three expressions that appear similar need to be kept separate:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Expression<\/td><td>Technical meaning<\/td><\/tr><tr><td><strong>ONVIF Profile T<\/strong><\/td><td>ONVIF profile for advanced IP video functions and interoperability between device and client<\/td><\/tr><tr><td><strong>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/strong><\/td><td>HTTPS\/TLS-protected transport function referenced by Profile T<\/td><\/tr><tr><td><strong>SecureRTSPStreaming<\/strong><\/td><td>Newer Media2 capability for secure streaming via RTSPS and SRTP<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mixing these three layers leads to specification errors. The most common is to state that \u201cProfile T Secure Streaming is SRTP.\u201d That statement does not match how Profile T v1.0 defines its secure-streaming function.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">What Does ONVIF Profile T Establish About Secure Streaming?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Profile T was published for IP-based video systems and includes functions related to H.264\/H.265, image configuration, events, metadata streaming, and other video capabilities. To understand Secure Streaming, however, the most important reference is <strong>Section 7.9 \u2014 Video streaming<\/strong> of the Profile T v1.0 specification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a device, the specification establishes, among other requirements, support for streaming over <strong>RTP\/UDP<\/strong> and over <strong>RTP\/RTSP\/HTTP\/TCP<\/strong>. It then establishes that, <strong>if supported<\/strong>, the device should be capable of streaming video over <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong> using the selected Media Profile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the Profile T Function List, the distinction is explicit:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Streaming function<\/td><td>Profile T device<\/td><\/tr><tr><td>Streaming over RTP\/UDP<\/td><td><strong>M \u2014 Mandatory<\/strong><\/td><\/tr><tr><td>Streaming over RTP\/RTSP\/HTTP\/TCP<\/td><td><strong>M \u2014 Mandatory<\/strong><\/td><\/tr><tr><td>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/td><td><strong>C \u2014 Conditional<\/strong><\/td><\/tr><tr><td>Streaming over RTP\/UDP Multicast<\/td><td><strong>M \u2014 Mandatory<\/strong><\/td><\/tr><tr><td>Streaming over RTP\/RTSP\/TCP\/WebSocket<\/td><td><strong>C \u2014 Conditional<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For clients, <code>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/code> also appears as a <strong>conditional function<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This produces an important practical consequence: <strong>Profile T and HTTPS streaming support are not equivalent<\/strong>. A product can conform to Profile T without this conditional function being present. When the design requirement is to actually use the protected stream, it is necessary to verify the conformity declaration and features applicable to the <strong>model and firmware<\/strong> being offered.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What Does \u201cConditional\u201d Mean in Profile T?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The specification itself defines requirement levels. A conditional feature or function must be implemented according to ONVIF when the device or client supports that functionality under the conditions defined by the profile. It does not simply become mandatory for every Profile T product.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This differs from a function marked as <strong>M \u2014 Mandatory<\/strong>, which forms part of the minimum required for the corresponding conformity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For specification engineering, this distinction is decisive. A statement such as \u201cthe equipment shall be ONVIF Profile T\u201d does not demonstrate compliance with every conditional capability in the profile.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Before Security: How Is Video Streaming Organized?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To understand where HTTPS, TLS, and SRTP operate, it is necessary to separate <strong>encoding, transport, session control, and cryptographic protection<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H.264 and H.265 are video coding formats. They define how visual information is compressed and represented, but they are not responsible for transporting video across the network or establishing a session between a camera and VMS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Real-time transport is normally performed by <strong>RTP \u2014 Real-time Transport Protocol<\/strong>The <strong>RTSP \u2014 Real Time Streaming Protocol<\/strong> is used to control the streaming session. In a simplified representation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Captured image \u2193 H.264 \/ H.265 \u2193 RTP \u2193 RTSP control \u2193 IP network<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">RTP \u2014 Media Transport<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTP organizes real-time media transmission. Its header includes information used to interpret the stream, such as sequence number, timestamp, and payload type. In IP video systems, it is the protocol that actually carries the media encapsulated according to the applicable formats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RTP by itself should not be treated as an encryption mechanism. A conventional RTP stream does not gain confidentiality simply because it is transported over a closed IP network.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTCP \u2014 Control Associated with RTP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTCP is the control protocol associated with RTP and can carry quality and session-synchronization information. It should not be confused with RTSP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RTCP and RTSP are different protocols.<\/strong> RTCP accompanies RTP operation; RTSP is used to establish and control the streaming session.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTSP \u2014 Session Control<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTSP enables operations such as session establishment, description, playback, and termination. Methods such as <code>DESCRIBE<\/code>, <code>SETUP<\/code>, <code>PLAY<\/code> and <code>TEARDOWN<\/code> are part of this logic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, simply saying that \u201cRTSP transports the video\u201d is an imprecise simplification. In a conventional session, RTSP controls the session while RTP transports the media.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Main Transport Methods Considered by ONVIF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The ONVIF Streaming Specifications describe different transport methods for different network scenarios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTP over UDP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTP can use UDP directly. This arrangement has low overhead and is particularly suited to the time-sensitive nature of audio and video, but it does not provide cryptographic confidentiality by itself.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RTP \u2193 UDP \u2193 IP<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Interleaved RTP over RTSP\/TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTP media can also be transported within the TCP channel associated with RTSP using the interleaved binary-data mechanism.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RTP \u2193 RTSP \/ TCP \u2193 IP<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">RTP\/RTSP over HTTP\/TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ONVIF also specifies tunneling via HTTP, traditionally useful for traversing environments in which HTTP traffic is more readily allowed through firewalls and proxies.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RTP \u2193 RTSP \u2193 HTTP \u2193 TCP<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">RTP\/RTSP over HTTPS\/TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When this tunneling is performed over HTTPS, the HTTP connection is protected by TLS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Video \/ audio \/ metadata \u2193 RTP \u2193 RTSP \u2193 HTTP tunneling \u2193 HTTPS \u2193 TLS \u2193 TCP \u2193 IP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is the arrangement \u2014 <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong> \u2014 that should be associated with the conditional secure\/HTTPS streaming function in Profile T.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Where Is the Security in RTP\/RTSP\/HTTPS\/TCP?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the mechanism referenced by Profile T, protection does not result from transforming RTP into SRTP. It results from <strong>TLS used by HTTPS<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In simplified terms, HTTPS can be understood as HTTP operating over a TLS session. TLS provides protection mechanisms for data traversing that channel, including confidentiality and integrity in transit, as well as endpoint-authentication mechanisms depending on the certificate and trust configuration used.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means the architectural model differs from protecting each RTP packet directly with SRTP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TLS Is Not an Encryption Algorithm<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Another frequent mistake is treating TLS as synonymous with AES. TLS is a <strong>security protocol<\/strong> that establishes a protected session and negotiates the applicable cryptographic mechanisms. AES may be part of the cipher suites used, but it is not correct to define \u201cTLS = AES.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Likewise, the mere presence of the term HTTPS should not be taken as proof of a specific cipher suite without verifying the TLS version and configuration actually used by the endpoints.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Certificates and Trust<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The security of a TLS session also depends on how the client validates the endpoint&#8217;s identity. Digital certificates, the trust chain, and validation policies are part of the design of a secure deployment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A self-signed certificate can provide encryption, but it requires a coherent trust model so that the client knows it is communicating with the intended device. In corporate environments, certificate management should be treated as part of the security architecture, not merely as a camera web-interface option.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Profile T Secure Streaming Is Not Synonymous with SRTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the most important distinction in this topic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Profile T v1.0, the conditional secure-transport function is described as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is not described as \u201cSRTP.\u201d RTP media remains within the RTSP\/HTTP tunneling architecture while TLS protects the HTTPS channel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a simplified representation:<\/p>\n\n\n\n<figure class=\"a3a-mermaid\"><svg id=\"a3a-diagram-1\" width=\"100%\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"flowchart\" style=\"max-width:min(657.3125px, 100%);height:auto;display:block;margin:0 auto\" viewBox=\"0 0 657.3125 91\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\" aria-labelledby=\"chart-title-a3a-diagram-1\"><title id=\"chart-title-a3a-diagram-1\">Profile T v1.0: TLS protects the HTTPS channel carrying RTP\/RTSP<\/title><style>#a3a-diagram-1{font-family:Roboto,sans-serif;font-size:15px;fill:var(--a3a-diag-text, #0a0a0a);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#a3a-diagram-1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .error-icon{fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .error-text{fill:#000000;stroke:#000000;}#a3a-diagram-1 .edge-thickness-normal{stroke-width:1px;}#a3a-diagram-1 .edge-thickness-thick{stroke-width:3.5px;}#a3a-diagram-1 .edge-pattern-solid{stroke-dasharray:0;}#a3a-diagram-1 .edge-thickness-invisible{stroke-width:0;fill:none;}#a3a-diagram-1 .edge-pattern-dashed{stroke-dasharray:3;}#a3a-diagram-1 .edge-pattern-dotted{stroke-dasharray:2;}#a3a-diagram-1 .marker{fill:var(--a3a-diag-stroke, #2e42a2);stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .marker.cross{stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 svg{font-family:Roboto,sans-serif;font-size:15px;}#a3a-diagram-1 p{margin:0;}#a3a-diagram-1 .label{font-family:Roboto,sans-serif;color:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 .cluster-label text{fill:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster-label span{color:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster-label span p{background-color:transparent;}#a3a-diagram-1 .label text,#a3a-diagram-1 span{fill:var(--a3a-diag-text, #0a0a0a);color:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 .node rect,#a3a-diagram-1 .node circle,#a3a-diagram-1 .node ellipse,#a3a-diagram-1 .node polygon,#a3a-diagram-1 .node path{fill:var(--a3a-diag-fill, #eef2fd);stroke:var(--a3a-diag-stroke, #2e42a2);stroke-width:1px;}#a3a-diagram-1 .rough-node .label text,#a3a-diagram-1 .node .label text,#a3a-diagram-1 .image-shape .label,#a3a-diagram-1 .icon-shape .label{text-anchor:middle;}#a3a-diagram-1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#a3a-diagram-1 .rough-node .label,#a3a-diagram-1 .node .label,#a3a-diagram-1 .image-shape .label,#a3a-diagram-1 .icon-shape .label{text-align:center;}#a3a-diagram-1 .node.clickable{cursor:pointer;}#a3a-diagram-1 .root .anchor path{fill:var(--a3a-diag-stroke, #2e42a2)!important;stroke-width:0;stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .arrowheadPath{fill:var(--a3a-diag-stroke, #0b0b0b);}#a3a-diagram-1 .edgePath .path{stroke:var(--a3a-diag-stroke, #2e42a2);stroke-width:2.0px;}#a3a-diagram-1 .flowchart-link{stroke:var(--a3a-diag-stroke, #2e42a2);fill:none;}#a3a-diagram-1 .edgeLabel{background-color:var(--a3a-diag-canvas, #ffffff);text-align:center;}#a3a-diagram-1 .edgeLabel p{background-color:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .edgeLabel rect{opacity:0.5;background-color:var(--a3a-diag-canvas, #ffffff);fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#a3a-diagram-1 .cluster rect{fill:var(--a3a-diag-surface, #f8f8f8);stroke:var(--a3a-diag-border, #e2e8f0);stroke-width:1px;}#a3a-diagram-1 .cluster text{fill:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster span{color:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Roboto,sans-serif;font-size:12px;background:var(--a3a-diag-canvas, #ffffff);border:1px solid hsl(0, 0%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#a3a-diagram-1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 rect.text{fill:none;stroke-width:0;}#a3a-diagram-1 .icon-shape,#a3a-diagram-1 .image-shape{background-color:var(--a3a-diag-canvas, #ffffff);text-align:center;}#a3a-diagram-1 .icon-shape p,#a3a-diagram-1 .image-shape p{background-color:var(--a3a-diag-canvas, #ffffff);padding:2px;}#a3a-diagram-1 .icon-shape rect,#a3a-diagram-1 .image-shape rect{opacity:0.5;background-color:var(--a3a-diag-canvas, #ffffff);fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#a3a-diagram-1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#a3a-diagram-1 :root{--mermaid-font-family:Roboto,sans-serif;}<\/style><g><marker id=\"a3a-diagram-1_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/circle><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/circle><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"><\/path><\/marker><g class=\"root\"><g class=\"clusters\"><\/g><g class=\"edgePaths\"><path d=\"M106.453,45.5L110.62,45.5C114.786,45.5,123.12,45.5,130.786,45.5C138.453,45.5,145.453,45.5,148.953,45.5L152.453,45.5\" id=\"L_P1_P2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_P1_P2_0\" data-points=\"W3sieCI6MTA2LjQ1MzEyNSwieSI6NDUuNX0seyJ4IjoxMzEuNDUzMTI1LCJ5Ijo0NS41fSx7IngiOjE1Ni40NTMxMjUsInkiOjQ1LjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M299.75,45.5L303.917,45.5C308.083,45.5,316.417,45.5,324.083,45.5C331.75,45.5,338.75,45.5,342.25,45.5L345.75,45.5\" id=\"L_P2_P3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_P2_P3_0\" data-points=\"W3sieCI6Mjk5Ljc1LCJ5Ijo0NS41fSx7IngiOjMyNC43NSwieSI6NDUuNX0seyJ4IjozNDkuNzUsInkiOjQ1LjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M514.953,45.5L519.12,45.5C523.286,45.5,531.62,45.5,539.286,45.5C546.953,45.5,553.953,45.5,557.453,45.5L560.953,45.5\" id=\"L_P3_P4_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_P3_P4_0\" data-points=\"W3sieCI6NTE0Ljk1MzEyNSwieSI6NDUuNX0seyJ4Ijo1MzkuOTUzMTI1LCJ5Ijo0NS41fSx7IngiOjU2NC45NTMxMjUsInkiOjQ1LjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><\/g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_P1_P2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_P2_P3_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_P3_P4_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><\/g><g class=\"nodes\"><g class=\"node default\" id=\"flowchart-P1-0\" transform=\"translate(57.2265625, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-49.2265625\" y=\"-37.5\" width=\"98.453125\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-19.2265625, -22.5)\"><rect><\/rect><foreignObject width=\"38.453125\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>RTP<br\/>media<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-P2-1\" transform=\"translate(228.1015625, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-71.6484375\" y=\"-26.25\" width=\"143.296875\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-41.6484375, -11.25)\"><rect><\/rect><foreignObject width=\"83.296875\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>RTSP \/ HTTP<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-P3-2\" transform=\"translate(432.3515625, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.6015625\" y=\"-37.5\" width=\"165.203125\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-52.6015625, -22.5)\"><rect><\/rect><foreignObject width=\"105.203125\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>TLS<br\/>protects the channel<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-P4-3\" transform=\"translate(607.1328125, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-42.1796875\" y=\"-26.25\" width=\"84.359375\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-12.1796875, -11.25)\"><rect><\/rect><foreignObject width=\"24.359375\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>TCP<\/p><\/span><\/div><\/foreignObject><\/g><\/g><\/g><\/g><\/g><\/svg><figcaption>Profile T v1.0: TLS protects the HTTPS channel carrying RTP\/RTSP<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">SRTP operates differently:<\/p>\n\n\n\n<figure class=\"a3a-mermaid\"><svg id=\"a3a-diagram-1\" width=\"100%\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"flowchart\" style=\"max-width:min(600.65625px, 100%);height:auto;display:block;margin:0 auto\" viewBox=\"0 0 600.65625 91\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\" aria-labelledby=\"chart-title-a3a-diagram-1\"><title id=\"chart-title-a3a-diagram-1\">SRTP: protection is applied directly to the RTP packet before transport over UDP\/IP<\/title><style>#a3a-diagram-1{font-family:Roboto,sans-serif;font-size:15px;fill:var(--a3a-diag-text, #0a0a0a);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#a3a-diagram-1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .error-icon{fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .error-text{fill:#000000;stroke:#000000;}#a3a-diagram-1 .edge-thickness-normal{stroke-width:1px;}#a3a-diagram-1 .edge-thickness-thick{stroke-width:3.5px;}#a3a-diagram-1 .edge-pattern-solid{stroke-dasharray:0;}#a3a-diagram-1 .edge-thickness-invisible{stroke-width:0;fill:none;}#a3a-diagram-1 .edge-pattern-dashed{stroke-dasharray:3;}#a3a-diagram-1 .edge-pattern-dotted{stroke-dasharray:2;}#a3a-diagram-1 .marker{fill:var(--a3a-diag-stroke, #2e42a2);stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .marker.cross{stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 svg{font-family:Roboto,sans-serif;font-size:15px;}#a3a-diagram-1 p{margin:0;}#a3a-diagram-1 .label{font-family:Roboto,sans-serif;color:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 .cluster-label text{fill:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster-label span{color:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster-label span p{background-color:transparent;}#a3a-diagram-1 .label text,#a3a-diagram-1 span{fill:var(--a3a-diag-text, #0a0a0a);color:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 .node rect,#a3a-diagram-1 .node circle,#a3a-diagram-1 .node ellipse,#a3a-diagram-1 .node polygon,#a3a-diagram-1 .node path{fill:var(--a3a-diag-fill, #eef2fd);stroke:var(--a3a-diag-stroke, #2e42a2);stroke-width:1px;}#a3a-diagram-1 .rough-node .label text,#a3a-diagram-1 .node .label text,#a3a-diagram-1 .image-shape .label,#a3a-diagram-1 .icon-shape .label{text-anchor:middle;}#a3a-diagram-1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#a3a-diagram-1 .rough-node .label,#a3a-diagram-1 .node .label,#a3a-diagram-1 .image-shape .label,#a3a-diagram-1 .icon-shape .label{text-align:center;}#a3a-diagram-1 .node.clickable{cursor:pointer;}#a3a-diagram-1 .root .anchor path{fill:var(--a3a-diag-stroke, #2e42a2)!important;stroke-width:0;stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .arrowheadPath{fill:var(--a3a-diag-stroke, #0b0b0b);}#a3a-diagram-1 .edgePath .path{stroke:var(--a3a-diag-stroke, #2e42a2);stroke-width:2.0px;}#a3a-diagram-1 .flowchart-link{stroke:var(--a3a-diag-stroke, #2e42a2);fill:none;}#a3a-diagram-1 .edgeLabel{background-color:var(--a3a-diag-canvas, #ffffff);text-align:center;}#a3a-diagram-1 .edgeLabel p{background-color:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .edgeLabel rect{opacity:0.5;background-color:var(--a3a-diag-canvas, #ffffff);fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#a3a-diagram-1 .cluster rect{fill:var(--a3a-diag-surface, #f8f8f8);stroke:var(--a3a-diag-border, #e2e8f0);stroke-width:1px;}#a3a-diagram-1 .cluster text{fill:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster span{color:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Roboto,sans-serif;font-size:12px;background:var(--a3a-diag-canvas, #ffffff);border:1px solid hsl(0, 0%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#a3a-diagram-1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 rect.text{fill:none;stroke-width:0;}#a3a-diagram-1 .icon-shape,#a3a-diagram-1 .image-shape{background-color:var(--a3a-diag-canvas, #ffffff);text-align:center;}#a3a-diagram-1 .icon-shape p,#a3a-diagram-1 .image-shape p{background-color:var(--a3a-diag-canvas, #ffffff);padding:2px;}#a3a-diagram-1 .icon-shape rect,#a3a-diagram-1 .image-shape rect{opacity:0.5;background-color:var(--a3a-diag-canvas, #ffffff);fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#a3a-diagram-1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#a3a-diagram-1 :root{--mermaid-font-family:Roboto,sans-serif;}<\/style><g><marker id=\"a3a-diagram-1_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/circle><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/circle><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"><\/path><\/marker><g class=\"root\"><g class=\"clusters\"><\/g><g class=\"edgePaths\"><path d=\"M106.453,45.5L110.62,45.5C114.786,45.5,123.12,45.5,130.786,45.5C138.453,45.5,145.453,45.5,148.953,45.5L152.453,45.5\" id=\"L_M1_M2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_M1_M2_0\" data-points=\"W3sieCI6MTA2LjQ1MzEyNSwieSI6NDUuNX0seyJ4IjoxMzEuNDUzMTI1LCJ5Ijo0NS41fSx7IngiOjE1Ni40NTMxMjUsInkiOjQ1LjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M331.203,45.5L335.37,45.5C339.536,45.5,347.87,45.5,355.536,45.5C363.203,45.5,370.203,45.5,373.703,45.5L377.203,45.5\" id=\"L_M2_M3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_M2_M3_0\" data-points=\"W3sieCI6MzMxLjIwMzEyNSwieSI6NDUuNX0seyJ4IjozNTYuMjAzMTI1LCJ5Ijo0NS41fSx7IngiOjM4MS4yMDMxMjUsInkiOjQ1LjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M469.516,45.5L473.682,45.5C477.849,45.5,486.182,45.5,493.849,45.5C501.516,45.5,508.516,45.5,512.016,45.5L515.516,45.5\" id=\"L_M3_M4_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_M3_M4_0\" data-points=\"W3sieCI6NDY5LjUxNTYyNSwieSI6NDUuNX0seyJ4Ijo0OTQuNTE1NjI1LCJ5Ijo0NS41fSx7IngiOjUxOS41MTU2MjUsInkiOjQ1LjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><\/g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_M1_M2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_M2_M3_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_M3_M4_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><\/g><g class=\"nodes\"><g class=\"node default\" id=\"flowchart-M1-0\" transform=\"translate(57.2265625, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-49.2265625\" y=\"-37.5\" width=\"98.453125\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-19.2265625, -22.5)\"><rect><\/rect><foreignObject width=\"38.453125\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>RTP<br\/>media<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-M2-1\" transform=\"translate(243.828125, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-87.375\" y=\"-37.5\" width=\"174.75\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-57.375, -22.5)\"><rect><\/rect><foreignObject width=\"114.75\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>SRTP<br\/>protects the packet<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-M3-2\" transform=\"translate(425.359375, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-44.15625\" y=\"-26.25\" width=\"88.3125\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-14.15625, -11.25)\"><rect><\/rect><foreignObject width=\"28.3125\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>UDP<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-M4-3\" transform=\"translate(556.0859375, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-36.5703125\" y=\"-26.25\" width=\"73.140625\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-6.5703125, -11.25)\"><rect><\/rect><foreignObject width=\"13.140625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>IP<\/p><\/span><\/div><\/foreignObject><\/g><\/g><\/g><\/g><\/g><\/svg><figcaption>SRTP: protection is applied directly to the RTP packet before transport over UDP\/IP<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In both cases there is protection of media in transit, but the point at which protection is applied and the protocol architecture are not the same.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, the expression <strong>\u201cProfile T with Secure Streaming\u201d should not be used as automatic proof of SRTP support<\/strong>.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">What Is SecureRTSPStreaming in More Recent ONVIF Specifications?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The evolution of the ONVIF Network Interface Specifications introduced a distinct capability called <strong><code>SecureRTSPStreaming<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the <strong>Media2 Service Specification 26.06<\/strong>, the capability is described as indicating support for <strong>live media streaming via RTSPS and SRTP<\/strong>. This definition clearly separates the modern mechanism from the HTTPS streaming referenced by Profile T.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Media2 also distinguishes among different streaming capabilities, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>RTSPStreaming<\/code> \u2014 live streaming via RTSP;<\/li><li><code>SecureRTSPStreaming<\/code> \u2014 live streaming via RTSPS and SRTP;<\/li><li><code>RTPMulticast<\/code> \u2014 support for UDP multicast;<\/li><li><code>RTP_RTSP_TCP<\/code> \u2014 support for RTP\/RTSP\/TCP;<\/li><li><code>RTSPWebSocketUri<\/code> \u2014 support for RTSP\/RTP transport over WebSocket, according to the applicable specification.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The difference in naming is relevant: <strong><code>SecureRTSPStreaming<\/code> is a specific capability<\/strong>, not merely an alternate way of writing the conditional HTTPS function in Profile T.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Is RTSPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RTSPS represents RTSP operating over a TLS-protected connection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In simplified form:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RTSP \u2193 TLS \u2193 TCP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In current secure-streaming specifications with SRTP, the secure RTSP channel matters because session-establishment and management information cannot be transmitted insecurely while attempting to create cryptographically protected media.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ONVIF Streaming Specification 26.06 establishes that <strong>TLS must be used for RTSP when SRTP is used<\/strong>. The specification also determines that a device should not return RTP\/SAVP or MIKEY information in SDP if the RTSP channel is not secure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This detail demonstrates that there are two distinct protection surfaces:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>control plane<\/strong> \u2014 RTSP commands and negotiation protected by TLS;<\/li><li><strong>media plane<\/strong> \u2014 RTP media protected by SRTP.<\/li><\/ul>\n\n\n\n\n<h2 class=\"wp-block-heading\">How Does SRTP Work?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SRTP \u2014 Secure Real-time Transport Protocol<\/strong> is a security extension for RTP. Instead of relying on an external TLS tunnel to protect the media, SRTP applies cryptographic mechanisms directly to the RTP stream.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptually:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Conventional RTP \u2193 SRTP protection \u2193 SRTP \/ UDP \u2193 IP network<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SRTP provides confidentiality protection, media integrity\/authentication according to the negotiated algorithm, and mechanisms related to replay protection. The associated control protocol, SRTCP, applies corresponding protection to RTP control traffic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTP\/AVP and RTP\/SAVP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Conventional RTP sessions may use the profile <code>RTP\/AVP<\/code>. For sessions protected by SRTP, <code>RTP\/SAVP<\/code>, indicating use of the Secure Audio\/Video Profile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is relevant during SDP negotiation of a secure session.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SRTP Algorithms Defined by ONVIF Specification 26.06<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Streaming Specification 26.06 defines mechanisms for negotiating the cryptographic algorithms used by SRTP. Listed algorithms include:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Identifier<\/td><td>Primary protection<\/td><\/tr><tr><td><code>AES_CM_128_HMAC_SHA1_80<\/code><\/td><td>AES in counter mode + HMAC-SHA-1 with an 80-bit authentication tag<\/td><\/tr><tr><td><code>AEAD_AES_128_GCM<\/code><\/td><td>AES-128-GCM in AEAD mode<\/td><\/tr><tr><td><code>AEAD_AES_256_GCM<\/code><\/td><td>AES-256-GCM in AEAD mode<\/td><\/tr><tr><td><code>NONE<\/code><\/td><td>configuration case without SRTP media protection, under the conditions provided by the specification<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Another common mistake must be avoided here: the existence of <code>NONE<\/code> does not mean ONVIF classifies completely unprotected media as equivalent to secure SRTP. The specification allows scenarios in which secure RTSP remains in operation and the media may traverse a TLS channel depending on the selected transport.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, implementation analysis should consider <strong>capability, the transport actually selected, and the negotiated algorithm<\/strong>, not merely an interface label.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">MIKEY: Key Management for SRTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To encrypt media with SRTP, the device and client need to share or establish the key material used by the session. ONVIF uses <strong>MIKEY \u2014 Multimedia Internet KEYing<\/strong> for this purpose within the architecture defined for Secure RTSP Streaming.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The current Streaming Specification establishes MIKEY support for key exchange and key management in devices that signal <code>SecureRTSPStreaming<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The conceptual flow can be represented as follows:<\/p>\n\n\n\n<figure class=\"a3a-mermaid\"><svg id=\"a3a-diagram-1\" width=\"653\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"577\" viewBox=\"-50 -10 653 577\" role=\"graphics-document document\" aria-roledescription=\"sequence\" aria-labelledby=\"chart-title-a3a-diagram-1\" style=\"max-width:100%;height:auto;display:block;margin:0 auto\"><title id=\"chart-title-a3a-diagram-1\">SecureRTSPStreaming Session Establishment \u2014 the secure RTSP channel precedes any key material<\/title><g><rect x=\"403\" y=\"491\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"D\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"><\/rect><text x=\"478\" y=\"523.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: Roboto, sans-serif;\"><tspan x=\"478\" dy=\"0\">Device (camera)<\/tspan><\/text><\/g><g><rect x=\"0\" y=\"491\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"C\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"><\/rect><text x=\"75\" y=\"523.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: Roboto, sans-serif;\"><tspan x=\"75\" dy=\"0\">Client \/ VMS<\/tspan><\/text><\/g><g><line id=\"actor1\" x1=\"478\" y1=\"65\" x2=\"478\" y2=\"491\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"D\"><\/line><g id=\"root-1\"><rect x=\"403\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"D\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"><\/rect><text x=\"478\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: Roboto, sans-serif;\"><tspan x=\"478\" dy=\"0\">Device (camera)<\/tspan><\/text><\/g><\/g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"491\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"C\"><\/line><g id=\"root-0\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"C\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"><\/rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: Roboto, sans-serif;\"><tspan x=\"75\" dy=\"0\">Client \/ VMS<\/tspan><\/text><\/g><\/g><style>#a3a-diagram-1{font-family:Roboto,sans-serif;font-size:15px;fill:var(--a3a-diag-text, #0a0a0a);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#a3a-diagram-1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .error-icon{fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .error-text{fill:#000000;stroke:#000000;}#a3a-diagram-1 .edge-thickness-normal{stroke-width:1px;}#a3a-diagram-1 .edge-thickness-thick{stroke-width:3.5px;}#a3a-diagram-1 .edge-pattern-solid{stroke-dasharray:0;}#a3a-diagram-1 .edge-thickness-invisible{stroke-width:0;fill:none;}#a3a-diagram-1 .edge-pattern-dashed{stroke-dasharray:3;}#a3a-diagram-1 .edge-pattern-dotted{stroke-dasharray:2;}#a3a-diagram-1 .marker{fill:var(--a3a-diag-stroke, #2e42a2);stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .marker.cross{stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 svg{font-family:Roboto,sans-serif;font-size:15px;}#a3a-diagram-1 p{margin:0;}#a3a-diagram-1 .actor{stroke:var(--a3a-diag-stroke, #2e42a2);fill:var(--a3a-diag-fill, #eef2fd);}#a3a-diagram-1 text.actor&gt;tspan{fill:var(--a3a-diag-text, #0a0a0a);stroke:none;}#a3a-diagram-1 .actor-line{stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#a3a-diagram-1 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 #arrowhead path{fill:var(--a3a-diag-stroke, #2e42a2);stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .sequenceNumber{fill:#d1bd5d;}#a3a-diagram-1 #sequencenumber{fill:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 #crosshead path{fill:var(--a3a-diag-stroke, #2e42a2);stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .messageText{fill:var(--a3a-diag-text, #0a0a0a);stroke:none;}#a3a-diagram-1 .labelBox{stroke:var(--a3a-diag-stroke, #2e42a2);fill:var(--a3a-diag-fill, #eef2fd);}#a3a-diagram-1 .labelText,#a3a-diagram-1 .labelText&gt;tspan{fill:var(--a3a-diag-text, #0a0a0a);stroke:none;}#a3a-diagram-1 .loopText,#a3a-diagram-1 .loopText&gt;tspan{fill:var(--a3a-diag-text, #0a0a0a);stroke:none;}#a3a-diagram-1 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:var(--a3a-diag-stroke, #2e42a2);fill:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .note{stroke:var(--a3a-diag-stroke, #2e42a2);fill:var(--a3a-diag-fill, #eef2fd);}#a3a-diagram-1 .noteText,#a3a-diagram-1 .noteText&gt;tspan{fill:#333;stroke:none;}#a3a-diagram-1 .activation0{fill:var(--a3a-diag-surface, #f8f8f8);stroke:hsl(0, 0%, 87.2549019608%);}#a3a-diagram-1 .activation1{fill:var(--a3a-diag-surface, #f8f8f8);stroke:hsl(0, 0%, 87.2549019608%);}#a3a-diagram-1 .activation2{fill:var(--a3a-diag-surface, #f8f8f8);stroke:hsl(0, 0%, 87.2549019608%);}#a3a-diagram-1 .actorPopupMenu{position:absolute;}#a3a-diagram-1 .actorPopupMenuPanel{position:absolute;fill:var(--a3a-diag-fill, #eef2fd);box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 \/ 0.4));}#a3a-diagram-1 .actor-man line{stroke:var(--a3a-diag-stroke, #2e42a2);fill:var(--a3a-diag-fill, #eef2fd);}#a3a-diagram-1 .actor-man circle,#a3a-diagram-1 line{stroke:var(--a3a-diag-stroke, #2e42a2);fill:var(--a3a-diag-fill, #eef2fd);stroke-width:2px;}#a3a-diagram-1 :root{--mermaid-font-family:Roboto,sans-serif;}<\/style><g><\/g><defs><symbol id=\"computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"><\/path><\/symbol><\/defs><defs><symbol id=\"database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"><\/path><\/symbol><\/defs><defs><symbol id=\"clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"><\/path><\/symbol><\/defs><defs><marker id=\"arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"><\/path><\/marker><\/defs><defs><marker id=\"crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"><\/path><\/marker><\/defs><defs><marker id=\"filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"><\/path><\/marker><\/defs><defs><marker id=\"sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"><\/circle><\/marker><\/defs><g><rect x=\"50\" y=\"413\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"453\" height=\"58\" class=\"note\"><\/rect><text x=\"277\" y=\"418\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"277\">Without a secure RTSP channel, the device should not<\/tspan><\/text><text x=\"277\" y=\"437\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"277\">return RTP\/SAVP or MIKEY in SDP<\/tspan><\/text><\/g><text x=\"275\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">TLS Handshake \u2014 RTSPS<\/text><line x1=\"76\" y1=\"113\" x2=\"474\" y2=\"113\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"><\/line><text x=\"275\" y=\"128\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">DESCRIBE<\/text><line x1=\"76\" y1=\"161\" x2=\"474\" y2=\"161\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"><\/line><text x=\"278\" y=\"176\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">SDP with RTP\/SAVP and MIKEY parameters<\/text><line x1=\"477\" y1=\"209\" x2=\"79\" y2=\"209\" class=\"messageLine1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"><\/line><text x=\"275\" y=\"224\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">SETUP \/ PLAY<\/text><line x1=\"76\" y1=\"257\" x2=\"474\" y2=\"257\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"><\/line><text x=\"275\" y=\"272\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">MIKEY \u2014 key exchange<\/text><line x1=\"76\" y1=\"305\" x2=\"474\" y2=\"305\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"><\/line><text x=\"278\" y=\"320\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">Media protected by SRTP<\/text><line x1=\"477\" y1=\"353\" x2=\"79\" y2=\"353\" class=\"messageLine1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"><\/line><text x=\"275\" y=\"368\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;\">MIKEY \u2014 key renewal in a long-running session<\/text><line x1=\"76\" y1=\"403\" x2=\"474\" y2=\"403\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"><\/line><\/svg><figcaption>SecureRTSPStreaming Session Establishment \u2014 the secure RTSP channel precedes any key material<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The specification also addresses key renewal during the session. This is important for long-running operations, where key lifecycle management should not depend on a single static initial configuration.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Comparison: Conventional Streaming, HTTPS Streaming, and SecureRTSPStreaming<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The table below summarizes architectures that should not be confused.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Architecture<\/td><td>Control<\/td><td>Media transport<\/td><td>Primary protection layer<\/td><td>ONVIF relationship<\/td><\/tr><tr><td>RTP\/RTSP\/UDP<\/td><td>RTSP<\/td><td>RTP\/UDP<\/td><td>no inherent cryptographic protection<\/td><td>conventional streaming<\/td><\/tr><tr><td>RTP\/RTSP\/TCP<\/td><td>RTSP<\/td><td>interleaved RTP\/TCP<\/td><td>no inherent cryptographic protection<\/td><td>conventional streaming<\/td><\/tr><tr><td><strong>RTP\/RTSP\/HTTPS\/TCP<\/strong><\/td><td>tunneled RTSP<\/td><td>tunneled RTP<\/td><td><strong>TLS on HTTPS<\/strong><\/td><td>conditional function referenced by <strong>Profile T<\/strong><\/td><\/tr><tr><td><strong>RTSPS + SRTP<\/strong><\/td><td><strong>RTSP over TLS<\/strong><\/td><td><strong>SRTP<\/strong>, typically over UDP<\/td><td><strong>TLS on control + SRTP on media<\/strong><\/td><td><strong><code>SecureRTSPStreaming<\/code><\/strong> in current specifications<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This table provides the safest way to interpret the term in technical documentation: first identify <strong>which architecture is in use<\/strong>; then evaluate the security properties of that architecture.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">What Does \u201cSecure Streaming: Yes\u201d Mean in an ONVIF Declaration?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When evaluating equipment in the conformant-products database, it is common to find information that a given model supports Profile T and, separately, a feature identified as <strong>Secure Streaming<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Within the Profile T feature set, this information should be correlated with the HTTPS streaming function defined in the profile, namely <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The presence of two separate pieces of information is intentionally important for procurement:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Profile T: conformant + Secure Streaming: Yes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">is not the same statement as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Profile T: conformant<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">by itself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Likewise, <code>Secure Streaming: Yes<\/code> in the context of Profile T should not be transformed into:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SRTP: proven<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">without additional technical evidence of the corresponding modern capability.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">How to Correctly Verify Conformity of a Camera or VMS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ONVIF recommends using the official <strong>Conformant Products<\/strong> database to confirm product conformity. A generic commercial statement that the brand \u201cis ONVIF\u201d is not sufficient.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The analysis should consider at least:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. <strong>manufacturer<\/strong>; 2. <strong>exact model<\/strong>; 3. <strong>firmware version<\/strong> associated with the declaration; 4. <strong>declared profiles<\/strong>; 5. <strong>relevant conditional features<\/strong>; 6. capability and implementation documentation; 7. corresponding support in the client\/VMS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This last step is frequently overlooked. Interoperability is a property of the relationship between <strong>device and client<\/strong>. The camera may provide a secure mode that the VMS does not implement, or the VMS may implement the function while the offered device does not provide it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In engineering terms:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>device support + client support + compatible configuration = operational functionality<\/code><\/pre>\n\n\n\n<figure class=\"a3a-mermaid\"><svg id=\"a3a-diagram-1\" width=\"100%\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"flowchart\" style=\"max-width:min(911.58203125px, 100%);height:auto;display:block;margin:0 auto\" viewBox=\"0 0 911.58203125 1535.3125\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\" aria-labelledby=\"chart-title-a3a-diagram-1\"><title id=\"chart-title-a3a-diagram-1\">Secure Streaming Verification in Procurement: What the ONVIF Declaration Proves and What Requires Additional Evidence<\/title><style>#a3a-diagram-1{font-family:Roboto,sans-serif;font-size:15px;fill:var(--a3a-diag-text, #0a0a0a);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#a3a-diagram-1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#a3a-diagram-1 .error-icon{fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .error-text{fill:#000000;stroke:#000000;}#a3a-diagram-1 .edge-thickness-normal{stroke-width:1px;}#a3a-diagram-1 .edge-thickness-thick{stroke-width:3.5px;}#a3a-diagram-1 .edge-pattern-solid{stroke-dasharray:0;}#a3a-diagram-1 .edge-thickness-invisible{stroke-width:0;fill:none;}#a3a-diagram-1 .edge-pattern-dashed{stroke-dasharray:3;}#a3a-diagram-1 .edge-pattern-dotted{stroke-dasharray:2;}#a3a-diagram-1 .marker{fill:var(--a3a-diag-stroke, #2e42a2);stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .marker.cross{stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 svg{font-family:Roboto,sans-serif;font-size:15px;}#a3a-diagram-1 p{margin:0;}#a3a-diagram-1 .label{font-family:Roboto,sans-serif;color:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 .cluster-label text{fill:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster-label span{color:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster-label span p{background-color:transparent;}#a3a-diagram-1 .label text,#a3a-diagram-1 span{fill:var(--a3a-diag-text, #0a0a0a);color:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 .node rect,#a3a-diagram-1 .node circle,#a3a-diagram-1 .node ellipse,#a3a-diagram-1 .node polygon,#a3a-diagram-1 .node path{fill:var(--a3a-diag-fill, #eef2fd);stroke:var(--a3a-diag-stroke, #2e42a2);stroke-width:1px;}#a3a-diagram-1 .rough-node .label text,#a3a-diagram-1 .node .label text,#a3a-diagram-1 .image-shape .label,#a3a-diagram-1 .icon-shape .label{text-anchor:middle;}#a3a-diagram-1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#a3a-diagram-1 .rough-node .label,#a3a-diagram-1 .node .label,#a3a-diagram-1 .image-shape .label,#a3a-diagram-1 .icon-shape .label{text-align:center;}#a3a-diagram-1 .node.clickable{cursor:pointer;}#a3a-diagram-1 .root .anchor path{fill:var(--a3a-diag-stroke, #2e42a2)!important;stroke-width:0;stroke:var(--a3a-diag-stroke, #2e42a2);}#a3a-diagram-1 .arrowheadPath{fill:var(--a3a-diag-stroke, #0b0b0b);}#a3a-diagram-1 .edgePath .path{stroke:var(--a3a-diag-stroke, #2e42a2);stroke-width:2.0px;}#a3a-diagram-1 .flowchart-link{stroke:var(--a3a-diag-stroke, #2e42a2);fill:none;}#a3a-diagram-1 .edgeLabel{background-color:var(--a3a-diag-canvas, #ffffff);text-align:center;}#a3a-diagram-1 .edgeLabel p{background-color:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .edgeLabel rect{opacity:0.5;background-color:var(--a3a-diag-canvas, #ffffff);fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#a3a-diagram-1 .cluster rect{fill:var(--a3a-diag-surface, #f8f8f8);stroke:var(--a3a-diag-border, #e2e8f0);stroke-width:1px;}#a3a-diagram-1 .cluster text{fill:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 .cluster span{color:var(--a3a-diag-title, #0124af);}#a3a-diagram-1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Roboto,sans-serif;font-size:12px;background:var(--a3a-diag-canvas, #ffffff);border:1px solid hsl(0, 0%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#a3a-diagram-1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:var(--a3a-diag-text, #0a0a0a);}#a3a-diagram-1 rect.text{fill:none;stroke-width:0;}#a3a-diagram-1 .icon-shape,#a3a-diagram-1 .image-shape{background-color:var(--a3a-diag-canvas, #ffffff);text-align:center;}#a3a-diagram-1 .icon-shape p,#a3a-diagram-1 .image-shape p{background-color:var(--a3a-diag-canvas, #ffffff);padding:2px;}#a3a-diagram-1 .icon-shape rect,#a3a-diagram-1 .image-shape rect{opacity:0.5;background-color:var(--a3a-diag-canvas, #ffffff);fill:var(--a3a-diag-canvas, #ffffff);}#a3a-diagram-1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#a3a-diagram-1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#a3a-diagram-1 :root{--mermaid-font-family:Roboto,sans-serif;}<\/style><g><marker id=\"a3a-diagram-1_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/circle><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"><\/circle><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"><\/path><\/marker><marker id=\"a3a-diagram-1_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"><\/path><\/marker><g class=\"root\"><g class=\"clusters\"><\/g><g class=\"edgePaths\"><path d=\"M234.051,83L234.051,87.167C234.051,91.333,234.051,99.667,234.051,107.333C234.051,115,234.051,122,234.051,125.5L234.051,129\" id=\"L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MjM0LjA1MDc4MTI1LCJ5Ijo4M30seyJ4IjoyMzQuMDUwNzgxMjUsInkiOjEwOH0seyJ4IjoyMzQuMDUwNzgxMjUsInkiOjEzM31d\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M188.507,270.472L174.999,284.104C161.492,297.736,134.476,325.001,120.969,356.92C107.461,388.839,107.461,425.411,107.461,443.698L107.461,461.984\" id=\"L_B_X_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_X_0\" data-points=\"W3sieCI6MTg4LjUwNjk3NzcxMzI2Mzg2LCJ5IjoyNzAuNDcxODIxNDYzMjYzODR9LHsieCI6MTA3LjQ2MDkzNzUsInkiOjM1Mi4yNjU2MjV9LHsieCI6MTA3LjQ2MDkzNzUsInkiOjQ2NS45ODQzNzV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M279.595,270.472L293.102,284.104C306.61,297.736,333.625,325.001,347.133,344.008C360.641,363.016,360.641,373.766,360.641,379.141L360.641,384.516\" id=\"L_B_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_C_0\" data-points=\"W3sieCI6Mjc5LjU5NDU4NDc4NjczNjE2LCJ5IjoyNzAuNDcxODIxNDYzMjYzODR9LHsieCI6MzYwLjY0MDYyNSwieSI6MzUyLjI2NTYyNX0seyJ4IjozNjAuNjQwNjI1LCJ5IjozODguNTE1NjI1fV0=\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M307.594,542.907L292.014,557.789C276.434,572.672,245.274,602.438,229.693,624.57C214.113,646.703,214.113,661.203,214.113,668.453L214.113,675.703\" id=\"L_C_Y_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_Y_0\" data-points=\"W3sieCI6MzA3LjU5NDA2MjUyOTgyNTY0LCJ5Ijo1NDIuOTA2NTYyNTI5ODI1Nn0seyJ4IjoyMTQuMTEzMjgxMjUsInkiOjYzMi4yMDMxMjV9LHsieCI6MjE0LjExMzI4MTI1LCJ5Ijo2NzkuNzAzMTI1fV0=\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M413.687,542.907L429.267,557.789C444.847,572.672,476.008,602.438,491.588,622.695C507.168,642.953,507.168,653.703,507.168,659.078L507.168,664.453\" id=\"L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6NDEzLjY4NzE4NzQ3MDE3NDM2LCJ5Ijo1NDIuOTA2NTYyNTI5ODI1Nn0seyJ4Ijo1MDcuMTY3OTY4NzUsInkiOjYzMi4yMDMxMjV9LHsieCI6NTA3LjE2Nzk2ODc1LCJ5Ijo2NjguNDUzMTI1fV0=\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M507.168,743.453L507.168,747.62C507.168,751.786,507.168,760.12,507.168,767.786C507.168,775.453,507.168,782.453,507.168,785.953L507.168,789.453\" id=\"L_D_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_E_0\" data-points=\"W3sieCI6NTA3LjE2Nzk2ODc1LCJ5Ijo3NDMuNDUzMTI1fSx7IngiOjUwNy4xNjc5Njg3NSwieSI6NzY4LjQ1MzEyNX0seyJ4Ijo1MDcuMTY3OTY4NzUsInkiOjc5My40NTMxMjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M462.773,915.683L447.44,929.124C432.108,942.565,401.443,969.446,386.11,1002.407C370.777,1035.367,370.777,1074.406,370.777,1093.926L370.777,1113.445\" id=\"L_E_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_F_0\" data-points=\"W3sieCI6NDYyLjc3Mjk0OTM2Nzc4ODksInkiOjkxNS42ODMxMDU2MTc3ODg5fSx7IngiOjM3MC43NzczNDM3NSwieSI6OTk2LjMyODEyNX0seyJ4IjozNzAuNzc3MzQzNzUsInkiOjExMTcuNDQ1MzEyNX1d\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M551.563,915.683L566.896,929.124C582.228,942.565,612.893,969.446,628.226,988.262C643.559,1007.078,643.559,1017.828,643.559,1023.203L643.559,1028.578\" id=\"L_E_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_G_0\" data-points=\"W3sieCI6NTUxLjU2Mjk4ODEzMjIxMTEsInkiOjkxNS42ODMxMDU2MTc3ODg5fSx7IngiOjY0My41NTg1OTM3NSwieSI6OTk2LjMyODEyNX0seyJ4Ijo2NDMuNTU4NTkzNzUsInkiOjEwMzIuNTc4MTI1fV0=\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M591.429,1202.683L578.411,1217.413C565.394,1232.143,539.359,1261.603,526.342,1281.708C513.324,1301.813,513.324,1312.563,513.324,1317.938L513.324,1323.313\" id=\"L_G_Z_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_G_Z_0\" data-points=\"W3sieCI6NTkxLjQyODkyNTExNDUwNjIsInkiOjEyMDIuNjgyODMxMzY0NTA2Mn0seyJ4Ijo1MTMuMzI0MjE4NzUsInkiOjEyOTEuMDYyNX0seyJ4Ijo1MTMuMzI0MjE4NzUsInkiOjEzMjcuMzEyNX1d\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M695.688,1202.683L708.706,1217.413C721.723,1232.143,747.758,1261.603,760.776,1281.708C773.793,1301.813,773.793,1312.563,773.793,1317.938L773.793,1323.313\" id=\"L_G_H_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_G_H_0\" data-points=\"W3sieCI6Njk1LjY4ODI2MjM4NTQ5MzgsInkiOjEyMDIuNjgyODMxMzY0NTA2Mn0seyJ4Ijo3NzMuNzkyOTY4NzUsInkiOjEyOTEuMDYyNX0seyJ4Ijo3NzMuNzkyOTY4NzUsInkiOjEzMjcuMzEyNX1d\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><path d=\"M773.793,1402.313L773.793,1406.479C773.793,1410.646,773.793,1418.979,773.793,1426.646C773.793,1434.313,773.793,1441.313,773.793,1444.813L773.793,1448.313\" id=\"L_H_I_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_H_I_0\" data-points=\"W3sieCI6NzczLjc5Mjk2ODc1LCJ5IjoxNDAyLjMxMjV9LHsieCI6NzczLjc5Mjk2ODc1LCJ5IjoxNDI3LjMxMjV9LHsieCI6NzczLjc5Mjk2ODc1LCJ5IjoxNDUyLjMxMjV9XQ==\" marker-end=\"url(#a3a-diagram-1_flowchart-v2-pointEnd)\"><\/path><\/g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(107.4609375, 352.265625)\"><g class=\"label\" data-id=\"L_B_X_0\" transform=\"translate(-13.5859375, -11.25)\"><foreignObject width=\"27.171875\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>No<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(360.640625, 352.265625)\"><g class=\"label\" data-id=\"L_B_C_0\" transform=\"translate(-12.6328125, -11.25)\"><foreignObject width=\"25.265625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Yes<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(214.11328125, 632.203125)\"><g class=\"label\" data-id=\"L_C_Y_0\" transform=\"translate(-13.5859375, -11.25)\"><foreignObject width=\"27.171875\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>No<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(507.16796875, 632.203125)\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(-12.6328125, -11.25)\"><foreignObject width=\"25.265625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Yes<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(370.77734375, 996.328125)\"><g class=\"label\" data-id=\"L_E_F_0\" transform=\"translate(-13.5859375, -11.25)\"><foreignObject width=\"27.171875\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>No<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(643.55859375, 996.328125)\"><g class=\"label\" data-id=\"L_E_G_0\" transform=\"translate(-12.6328125, -11.25)\"><foreignObject width=\"25.265625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Yes<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(513.32421875, 1291.0625)\"><g class=\"label\" data-id=\"L_G_Z_0\" transform=\"translate(-13.5859375, -11.25)\"><foreignObject width=\"27.171875\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>No<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\" transform=\"translate(773.79296875, 1291.0625)\"><g class=\"label\" data-id=\"L_G_H_0\" transform=\"translate(-12.6328125, -11.25)\"><foreignObject width=\"25.265625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Yes<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_H_I_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><\/span><\/div><\/foreignObject><\/g><\/g><\/g><g class=\"nodes\"><g class=\"node default\" id=\"flowchart-A-0\" transform=\"translate(234.05078125, 45.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-130\" y=\"-37.5\" width=\"260\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-100, -22.5)\"><rect><\/rect><foreignObject width=\"200\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\"><span class=\"nodeLabel\"><p>ONVIF Conformant Products Database<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-B-1\" transform=\"translate(234.05078125, 224.5078125)\"><polygon points=\"91.5078125,0 183.015625,-91.5078125 91.5078125,-183.015625 0,-91.5078125\" class=\"label-container\" transform=\"translate(-91.0078125, 91.5078125)\"><\/polygon><g class=\"label\" style=\"\" transform=\"translate(-65.2578125, -11.25)\"><rect><\/rect><foreignObject width=\"130.515625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Profile T conformant?<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-X-3\" transform=\"translate(107.4609375, 492.234375)\"><rect class=\"basic label-container\" style=\"\" x=\"-99.4609375\" y=\"-26.25\" width=\"198.921875\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-69.4609375, -11.25)\"><rect><\/rect><foreignObject width=\"138.921875\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>No contractual basis<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-C-5\" transform=\"translate(360.640625, 492.234375)\"><polygon points=\"103.71875,0 207.4375,-103.71875 103.71875,-207.4375 0,-103.71875\" class=\"label-container\" transform=\"translate(-103.21875, 103.71875)\"><\/polygon><g class=\"label\" style=\"\" transform=\"translate(-77.46875, -11.25)\"><rect><\/rect><foreignObject width=\"154.9375\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Secure Streaming: Yes?<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-Y-7\" transform=\"translate(214.11328125, 705.953125)\"><rect class=\"basic label-container\" style=\"\" x=\"-120.1328125\" y=\"-26.25\" width=\"240.265625\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-90.1328125, -11.25)\"><rect><\/rect><foreignObject width=\"180.265625\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Only conventional RTSP\/RTP<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-D-9\" transform=\"translate(507.16796875, 705.953125)\"><rect class=\"basic label-container\" style=\"\" x=\"-122.921875\" y=\"-37.5\" width=\"245.84375\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-92.921875, -22.5)\"><rect><\/rect><foreignObject width=\"185.84375\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Proves HTTPS streaming<br\/>RTP\/RTSP\/HTTPS\/TCP<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-E-11\" transform=\"translate(507.16796875, 876.765625)\"><polygon points=\"83.3125,0 166.625,-83.3125 83.3125,-166.625 0,-83.3125\" class=\"label-container\" transform=\"translate(-82.8125, 83.3125)\"><\/polygon><g class=\"label\" style=\"\" transform=\"translate(-57.0625, -11.25)\"><rect><\/rect><foreignObject width=\"114.125\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Does the specification require SRTP?<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-F-13\" transform=\"translate(370.77734375, 1143.6953125)\"><rect class=\"basic label-container\" style=\"\" x=\"-111.6640625\" y=\"-26.25\" width=\"223.328125\" height=\"52.5\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-81.6640625, -11.25)\"><rect><\/rect><foreignObject width=\"163.328125\" height=\"22.5\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Satisfied by the TLS channel<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-G-15\" transform=\"translate(643.55859375, 1143.6953125)\"><polygon points=\"111.1171875,0 222.234375,-111.1171875 111.1171875,-222.234375 0,-111.1171875\" class=\"label-container\" transform=\"translate(-110.6171875, 111.1171875)\"><\/polygon><g class=\"label\" style=\"\" transform=\"translate(-73.6171875, -22.5)\"><rect><\/rect><foreignObject width=\"147.234375\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>SecureRTSPStreaming<br\/>in Media2?<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-Z-17\" transform=\"translate(513.32421875, 1364.8125)\"><rect class=\"basic label-container\" style=\"\" x=\"-113.6875\" y=\"-37.5\" width=\"227.375\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-83.6875, -22.5)\"><rect><\/rect><foreignObject width=\"167.375\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>SRTP not proven \u2014<br\/>require evidence<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-H-19\" transform=\"translate(773.79296875, 1364.8125)\"><rect class=\"basic label-container\" style=\"\" x=\"-96.78125\" y=\"-37.5\" width=\"193.5625\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-66.78125, -22.5)\"><rect><\/rect><foreignObject width=\"133.5625\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Verify client\/VMS<br\/>and configuration<\/p><\/span><\/div><\/foreignObject><\/g><\/g><g class=\"node default\" id=\"flowchart-I-21\" transform=\"translate(773.79296875, 1489.8125)\"><rect class=\"basic label-container\" style=\"\" x=\"-129.7890625\" y=\"-37.5\" width=\"259.578125\" height=\"75\"><\/rect><g class=\"label\" style=\"\" transform=\"translate(-99.7890625, -22.5)\"><rect><\/rect><foreignObject width=\"199.578125\" height=\"45\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>device + client + configuration<br\/>= operational function<\/p><\/span><\/div><\/foreignObject><\/g><\/g><\/g><\/g><\/g><\/svg><figcaption>Secure Streaming Verification in Procurement: What the ONVIF Declaration Proves and What Requires Additional Evidence<\/figcaption><\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">How to Specify Secure Streaming in a Design, Technical Specification, or Terms of Reference<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When the technical objective is to protect transport between the camera and VMS, the specification should state the intended capability. Using only the profile name can produce an incomplete requirement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A specification that states only:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&gt; \u201cThe camera shall be ONVIF Profile T compliant.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">establishes a relevant interoperability requirement, but <strong>does not specifically demonstrate the presence of <code>RTP\/RTSP\/HTTPS\/TCP<\/code><\/strong>, because this function is conditional in Profile T.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the design requires the HTTPS streaming function, the requirement should be stated more precisely, for example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&gt; The equipment shall be ONVIF Profile T compliant and support streaming over RTP\/RTSP\/HTTPS\/TCP, demonstrated by official conformity documentation and\/or features applicable to the offered model and firmware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This wording should be adapted to the contracting context and the evidence model adopted in the document.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When the Requirement Is Specifically SRTP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If the project&#8217;s cybersecurity architecture requires the RTP media itself to be protected by SRTP, it is not sufficient to write only \u201cProfile T with Secure Streaming.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In that case, the specification should explicitly establish the requirement for <strong>RTSPS\/SRTP or <code>SecureRTSPStreaming<\/code><\/strong>, together with evidence mechanisms and compatibility between device and client.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is also advisable to verify:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>supported algorithms;<\/li><li>support for Media2\/applicable capabilities;<\/li><li>actual interoperability with the VMS;<\/li><li>TLS certificate management;<\/li><li>key-management behavior;<\/li><li>impact on unicast\/multicast and the adopted topology;<\/li><li>commissioning procedures.<\/li><\/ul>\n\n\n\n\n<h2 class=\"wp-block-heading\">What Does Secure Streaming Protect \u2014 and What Does It Not Protect?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Transport encryption is an important security layer, but it should not be presented as complete protection for the video-surveillance system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Confidentiality in Transit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A central objective is to reduce the possibility that media can be understood by a third party that gains access to the network path, provided that the session and endpoints are configured correctly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Transport Integrity<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TLS and SRTP include mechanisms intended to detect unauthorized changes to protected data during transport, within the security models of each protocol.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Endpoint Authentication<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TLS can use certificates for authentication and establishment of trust. This property depends on correct certificate validation and the client&#8217;s trust policy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">User Authentication and Authorization Are Another Layer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Encrypting the stream does not replace identity and access controls. Weak passwords, shared credentials, excessive privileges, or compromised administrative accounts remain independent risks.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Security issue<\/td><td>Related mechanism<\/td><\/tr><tr><td>Traffic confidentiality<\/td><td>TLS \/ SRTP<\/td><\/tr><tr><td>Integrity in transit<\/td><td>TLS \/ SRTP<\/td><\/tr><tr><td>Endpoint identity<\/td><td>TLS\/certificates, depending on implementation<\/td><\/tr><tr><td>User authentication<\/td><td>system authentication mechanisms<\/td><\/tr><tr><td>Authorization<\/td><td>privilege policy and access control<\/td><\/tr><tr><td>Integrity\/authenticity of stored recordings<\/td><td>specific evidence\/media-signing mechanisms<\/td><\/tr><tr><td>Segmentation and containment<\/td><td>network architecture, VLAN, ACL, firewall<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming Is Not Media Signing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Another concept that needs to remain separate is <strong>Media Signing<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secure Streaming concerns protection of communications in transit. Media Signing, in turn, is related to the ability to verify media authenticity and integrity properties according to the specific signing architecture defined by ONVIF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fact that a recording was transmitted over a secure channel does not automatically mean it has a verifiable signature capable of later demonstrating its origin or absence of modification. Likewise, a media-signing solution does not replace the need to protect transport while media traverses the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They are complementary controls for different problems.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming Also Does Not Replace Network Security<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Even when video and control traffic use appropriate cryptographic mechanisms, the system still needs to be designed as cyber-physical infrastructure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Complementary controls include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>logical network segmentation;<\/li><li>VLANs and policies between segments;<\/li><li>ACLs and firewall;<\/li><li>restriction of management interfaces;<\/li><li>certificate management;<\/li><li>device hardening;<\/li><li>firmware updates and lifecycle management;<\/li><li>disabling unnecessary services;<\/li><li>individualized accounts and least privilege;<\/li><li>event and log monitoring.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Path encryption reduces one category of risk. It does not make compromised endpoints trustworthy or correct a permissive network architecture.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Architecture Impacts: TLS\/TCP and SRTP\/UDP Are Not Equivalent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Transport design also has operational implications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An RTP\/RTSP\/HTTPS\/TCP session uses TCP and TLS. This involves session establishment, cryptographic processing, and TCP&#8217;s reliable-delivery behavior. Under certain conditions, packet loss may result in retransmissions and head-of-line blocking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SRTP, in turn, can preserve the time-sensitive behavior of RTP over UDP while adding cryptographic protection to the media. This does not mean, however, that SRTP is universally \u201cfaster\u201d or that HTTPS streaming necessarily produces perceptible delay.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Actual behavior depends on factors such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>device processing capacity;<\/li><li>cryptographic acceleration;<\/li><li>number of simultaneous streams;<\/li><li>bitrate;<\/li><li>resolution and frame rate;<\/li><li>network conditions;<\/li><li>recording architecture;<\/li><li>VMS capacity;<\/li><li>unicast or multicast strategy.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These factors should be evaluated through sizing and testing, not through generic performance claims.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">ONVIF Evolution: From HTTPS Streaming to Formal SRTP Support<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It is important to interpret the evolution of the specifications without retroactively rewriting the meaning of Profile T.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2018 \u2014 Profile T v1.0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Profile T consolidated the use of Media2 and included <code>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/code> as a conditional video function. This is the appropriate reference when interpreting Secure Streaming associated with Profile T.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Later Generations of Media2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Media2 specifications began exposing the capability <code>SecureRTSPStreaming<\/code>, explicitly related to <strong>RTSPS and SRTP<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">June 2026 \u2014 Network Interface Specifications 26.06<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ONVIF&#8217;s official history records, in version 26.06, the addition of <strong>SRTP support in the Streaming Specification<\/strong>. The current specification details SRTP transport over UDP, algorithm negotiation, mandatory use of TLS on the RTSP channel when SRTP is used, and key management through MIKEY.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The correct formulation, therefore, is not to say that \u201cONVIF changed the meaning of Profile T Secure Streaming.\u201d The correct statement is that <strong>the Network Interface Specifications evolved and now also specify Secure RTSP Streaming based on RTSPS and SRTP, coexisting with the HTTPS streaming function that is part of Profile T<\/strong>.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Common Errors About Secure Streaming and ONVIF<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Claim<\/td><td>Correct interpretation<\/td><\/tr><tr><td>\u201cSecure Streaming is SRTP.\u201d<\/td><td>Not as the definition of the Profile T function. In Profile T, the reference is RTP\/RTSP\/HTTPS\/TCP.<\/td><\/tr><tr><td>\u201cEvery Profile T product has Secure Streaming.\u201d<\/td><td>No. The HTTPS function is conditional.<\/td><\/tr><tr><td>\u201cProfile T + Secure Streaming proves SRTP.\u201d<\/td><td>No. SRTP must be demonstrated by the specific capability\/implementation.<\/td><\/tr><tr><td>\u201cHTTPS and SRTP provide the same protection.\u201d<\/td><td>No. HTTPS protects a TLS channel; SRTP protects RTP media.<\/td><\/tr><tr><td>\u201cRTSP is the protocol that carries the video.\u201d<\/td><td>RTSP controls the session; RTP is the media protocol.<\/td><\/tr><tr><td>\u201cTLS is AES.\u201d<\/td><td>TLS is a security protocol that negotiates cryptographic mechanisms.<\/td><\/tr><tr><td>\u201cEncrypted streaming guarantees camera security.\u201d<\/td><td>No. Endpoints, credentials, firmware, and the network remain within the threat model.<\/td><\/tr><tr><td>\u201cSecure streaming guarantees forensic validity or authenticity of the recording.\u201d<\/td><td>No. Transport protection and evidence management\/authenticity are different problems.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Engineering Checklist for Procurement and Commissioning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When requiring Secure Streaming in a video-surveillance system, analysis should not end with the commercial datasheet. The engineering process can use the following checklist:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. confirm the product in the official ONVIF Conformant Products database; 2. verify the exact model and declared firmware version; 3. confirm Profile T when it is part of the interoperability requirement; 4. specifically verify the HTTPS streaming function when required; 5. do not infer SRTP solely from Profile T; 6. for SRTP, verify the capability <code>SecureRTSPStreaming<\/code> and applicable technical documentation; 7. confirm equivalent support in the VMS\/client; 8. define certificate and TLS trust policy; 9. test session establishment and reconnection; 10. validate the transport actually used during commissioning; 11. assess performance impacts using the actual number of streams; 12. document configuration, firmware, and test evidence in the As-Built documentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In higher-criticality environments, commissioning may include controlled traffic capture to <strong>verify the transport mode<\/strong>, without turning this activity into an attempt to bypass the system&#8217;s security controls.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming Should Be Treated as a Verifiable Engineering Requirement<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The main lesson is that profile names and commercial labels do not replace technical requirements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the context of <strong>ONVIF Profile T<\/strong>, Secure Streaming should be associated with the conditional function <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong>, in which protection in transit is provided by HTTPS\/TLS. This function is not mandatory for all Profile T devices and clients and therefore needs to be verified when it is part of the design requirements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>SecureRTSPStreaming<\/code>, on the other hand, is a newer capability in the ONVIF Network Interface Specifications and is associated with <strong>RTSPS and SRTP<\/strong>. In this architecture, TLS protects the RTSP control channel and SRTP protects the media, with negotiation and key-management mechanisms defined by the specification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In video-surveillance specifications, procurement, and Owner&#8217;s Engineering, the correct approach is to require <strong>the required capability and evidence of compliance<\/strong>, linking device, client, firmware, configuration, and interoperability testing. This approach prevents expressions such as \u201cONVIF Profile T,\u201d \u201cSecure Streaming,\u201d and \u201cSRTP\u201d from being treated as equivalent when they technically represent different elements of the architecture.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Technical References<\/summary>\n<p class=\"wp-block-paragraph\">[1] ONVIF. ONVIF Profile T Specification v1.0. September 2018. https:\/\/www.onvif.org\/wp-content\/uploads\/2018\/09\/ONVIF_Profile_T_Specification_v1-0.pdf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[2] ONVIF. Profile T \u2014 For advanced video streaming. https:\/\/www.onvif.org\/profiles\/profile-t\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[3] ONVIF. Streaming Specification, Version 26.06. June 2026. https:\/\/www.onvif.org\/specs\/2606\/ONVIF-Streaming-Spec-v2606.pdf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[4] ONVIF. Media2 Service Specification, Version 26.06. June 2026. https:\/\/www.onvif.org\/specs\/2606\/ONVIF-Media2-Service-Spec-v2606.pdf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[5] ONVIF. Specification History \u2014 Version 26.06. https:\/\/www.onvif.org\/profiles\/specifications\/specification-history\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[6] ONVIF. Profiles Conformance Device Test Specification 26.06. June 2026. https:\/\/www.onvif.org\/wp-content\/uploads\/2026\/07\/ONVIF_Profiles_Conformance_Device_Test_Specification_26.06.pdf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[7] IETF \/ RFC Editor. RFC 3711 \u2014 The Secure Real-time Transport Protocol (SRTP). https:\/\/www.rfc-editor.org\/rfc\/rfc3711<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[8] IETF \/ RFC Editor. RFC 3830 \u2014 MIKEY: Multimedia Internet KEYing. https:\/\/www.rfc-editor.org\/rfc\/rfc3830<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Frequently Asked Questions<\/summary>\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-secure-streaming-obrigat-rio-no-onvif-profile-t-d94cf827\"><strong class=\"schema-faq-question\">Is Secure Streaming Mandatory in ONVIF Profile T?<\/strong> <p class=\"schema-faq-answer\">No. In the Profile T v1.0 specification, Streaming over RTP\/RTSP\/HTTPS\/TCP is a conditional function. Therefore, Profile T conformity by itself does not demonstrate this capability.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-secure-streaming-no-profile-t-srtp-a7be0be6\"><strong class=\"schema-faq-question\">Is Secure Streaming in Profile T SRTP?<\/strong> <p class=\"schema-faq-answer\">No. In Profile T v1.0, the function associated with secure streaming is RTP\/RTSP\/HTTPS\/TCP, protected by HTTPS\/TLS. SRTP is part of the newer SecureRTSPStreaming capability.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-o-que-securertspstreaming-no-onvif-f7bde2af\"><strong class=\"schema-faq-question\">What Is SecureRTSPStreaming in ONVIF?<\/strong> <p class=\"schema-faq-answer\">In Media2 Service Specification 26.06, SecureRTSPStreaming indicates support for live media streaming via RTSPS and SRTP.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-o-que-rtsps-86e159d3\"><strong class=\"schema-faq-question\">What Is RTSPS?<\/strong> <p class=\"schema-faq-answer\">It is RTSP operating over TLS. In the current ONVIF architecture for SRTP, TLS protects the RTSP channel used to establish and manage the secure session.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-profile-t-com-secure-streaming-yes-comprova-supo-7eabeef8\"><strong class=\"schema-faq-question\">Does Profile T with Secure Streaming: Yes Prove SRTP Support?<\/strong> <p class=\"schema-faq-answer\">No. The Secure Streaming feature associated with Profile T should be interpreted in the context of HTTPS streaming. If SRTP is required, it must be explicitly verified in the capability and applicable documentation.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-como-verificar-se-uma-c-mera-realmente-suporta-s-36c71e89\"><strong class=\"schema-faq-question\">How Can You Verify Whether a Camera Actually Supports Secure Streaming?<\/strong> <p class=\"schema-faq-answer\">Verify the model and firmware in the official ONVIF Conformant Products database, the declared profiles, and the applicable features\/capabilities. In design, corresponding support from the VMS\/client also needs to be confirmed.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-secure-streaming-garante-autenticidade-forense-d-db2b4281\"><strong class=\"schema-faq-question\">Does Secure Streaming Guarantee Forensic Authenticity of a Recording?<\/strong> <p class=\"schema-faq-answer\">No. Secure streaming protects communications in transit. Verifiable integrity and authenticity of stored media involve other mechanisms, such as media signing and evidence-management controls.<\/p><\/div><\/div>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Complementary Technical Materials<\/summary>\n<ul class=\"wp-block-list\"><li><a href=\"\/conteudo\/artigos-tecnicos\/o-que-e-onvif\/\">What Is ONVIF?<\/a><\/li><li><a href=\"\/conteudo\/artigos-tecnicos\/como-evitar-sistemas-seguranca-fisica-porta-entrada-ataques\/\">How to Prevent Physical Security Systems from Becoming an Entry Point for Cyberattacks<\/a><\/li><li><a href=\"\/conteudo\/artigos-tecnicos\/projeto-de-cftv-como-fazer\/\">Video Surveillance Design: Procurement, Stages, and Technical Standards<\/a><\/li><li><a href=\"\/servicos\/planejamento\/projeto-de-cftv-ip-e-videomonitoramento\/\">IP Video Surveillance and Video Monitoring Design<\/a><\/li><\/ul>\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>Secure Streaming in ONVIF is not automatically synonymous with SRTP. Understand its meaning in Profile T, RTP\/RTSP\/HTTPS\/TCP transport, and the evolution toward SecureRTSPStreaming with RTSPS and SRTP.<\/p>\n","protected":false},"author":1,"featured_media":78568,"parent":0,"template":"","meta":{"_a3a_global_related_solutions":[],"_a3a_global_related_services":[],"_a3a_global_related_materials":[],"_a3a_post_lang":"en-us","_a3a_translation_group_id":"c6897eb7-8b94-4e25-9792-4ca507f8066e","_a3a_i18n_canonical_slug":"secure-streaming-onvif-profile-t-https-rtsps-srtp","_a3a_prod_post_id":"","_a3a_lang_url_en-us":"","_a3a_lang_url_es-es":""},"categories":[],"segments":[],"mercados":[],"etapas":[],"class_list":["post-82486","articles","type-articles","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles\/82486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles"}],"about":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/types\/articles"}],"author":[{"embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles\/82486\/revisions"}],"predecessor-version":[{"id":82496,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles\/82486\/revisions\/82496"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/media\/78568"}],"wp:attachment":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/media?parent=82486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/categories?post=82486"},{"taxonomy":"segments","embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/segments?post=82486"},{"taxonomy":"mercados","embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/mercados?post=82486"},{"taxonomy":"etapas","embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/etapas?post=82486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}