{"id":82490,"date":"2026-09-23T09:32:32","date_gmt":"2026-09-23T12:32:32","guid":{"rendered":"https:\/\/a3aengenharia.com\/?post_type=articles&#038;p=82490"},"modified":"2026-09-23T09:32:32","modified_gmt":"2026-09-23T12:32:32","slug":"secure-streaming-onvif-profile-t-https-rtsps-srtp-2","status":"publish","type":"articles","link":"https:\/\/a3aengenharia.com\/es-es\/contenido\/articulos-tecnicos\/secure-streaming-onvif-profile-t-https-rtsps-srtp-2\/","title":{"rendered":"Secure Streaming en ONVIF: Profile T, HTTPS, RTSPS y SRTP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Secure Streaming, en el contexto de <strong>ONVIF Profile T<\/strong>, debe interpretarse a partir de la funci\u00f3n de transporte definida por el propio profile: <strong>streaming sobre RTP\/RTSP\/HTTPS\/TCP<\/strong>. En la especificaci\u00f3n Profile T v1.0, publicada en septiembre de 2018, esta funci\u00f3n se clasifica como <strong>condicional<\/strong>. Por lo tanto, la conformidad de un equipo con Profile T no permite concluir, por s\u00ed sola, que soporte esta modalidad de streaming protegido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta definici\u00f3n tampoco debe confundirse con <strong>SRTP \u2014 Secure Real-time Transport Protocol<\/strong>. En las especificaciones ONVIF m\u00e1s recientes existe una capacidad distinta denominada <code>SecureRTSPStreaming<\/code>, asociada a <strong>RTSPS y SRTP<\/strong>. La diferencia es arquitect\u00f3nica: en el HTTPS streaming referenciado por Profile T, la protecci\u00f3n es proporcionada por <strong>TLS en el canal HTTPS<\/strong>; en SecureRTSPStreaming moderno, el control RTSP utiliza TLS y el medio puede protegerse directamente mediante SRTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta distinci\u00f3n es especialmente importante en dise\u00f1os, especificaciones t\u00e9cnicas, procurement y homologaci\u00f3n de c\u00e1maras y VMS. Exigir \u00fanicamente \u00abONVIF Profile T\u00bb no es lo mismo que exigir la feature de HTTPS streaming; del mismo modo, encontrar \u00abSecure Streaming\u00bb en la declaraci\u00f3n de conformidad de un producto Profile T no debe interpretarse autom\u00e1ticamente como prueba de soporte de SRTP.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor Qu\u00e9 el T\u00e9rmino Secure Streaming Causa Confusi\u00f3n en ONVIF?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00abSecure Streaming\u00bb es una expresi\u00f3n intuitiva, pero t\u00e9cnicamente amplia. Fuera de un contexto normativo, puede utilizarse para describir pr\u00e1cticamente cualquier mecanismo que proteja un flujo de medios en tr\u00e1nsito. Dentro del ecosistema ONVIF, sin embargo, es necesario identificar <strong>qu\u00e9 especificaci\u00f3n, profile, capability o funci\u00f3n<\/strong> se est\u00e1 considerando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El primer punto es que <strong>Secure Streaming no es el nombre de un protocolo de red<\/strong>. Los mecanismos utilizados por ONVIF se construyen sobre protocolos y servicios existentes, como RTP, RTCP, RTSP, HTTP, HTTPS, TCP, UDP, TLS y, en las especificaciones m\u00e1s recientes, SRTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El segundo punto es que un <strong>ONVIF Profile tampoco es un protocolo<\/strong>. Un profile define un conjunto fijo de funcionalidades para permitir que devices y clients de distintos fabricantes tengan una base previsible de interoperabilidad. Las funciones subyacentes se detallan en las ONVIF Network Interface Specifications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ello, tres expresiones que parecen similares deben mantenerse separadas:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Expresi\u00f3n<\/td><td>Significado t\u00e9cnico<\/td><\/tr><tr><td><strong>ONVIF Profile T<\/strong><\/td><td>Profile ONVIF orientado a funcionalidades avanzadas de video IP e interoperabilidad entre device y client<\/td><\/tr><tr><td><strong>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/strong><\/td><td>Funci\u00f3n de transporte protegido por HTTPS\/TLS referenciada por Profile T<\/td><\/tr><tr><td><strong>SecureRTSPStreaming<\/strong><\/td><td>Capability m\u00e1s reciente de Media2 para streaming seguro mediante RTSPS y SRTP<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mezclar estas tres capas conduce a errores de especificaci\u00f3n. El m\u00e1s com\u00fan es afirmar que \u00abSecure Streaming de Profile T es SRTP\u00bb. Esa afirmaci\u00f3n no corresponde a la forma en que Profile T v1.0 define su funci\u00f3n de streaming seguro.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 Establece ONVIF Profile T sobre Secure Streaming?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Profile T fue publicado para sistemas de video basados en IP e incluye funcionalidades relacionadas con H.264\/H.265, configuraci\u00f3n de imagen, eventos, metadata streaming y otras capacidades de video. Para comprender Secure Streaming, sin embargo, la referencia m\u00e1s importante es la <strong>secci\u00f3n 7.9 \u2014 Video streaming<\/strong> de la especificaci\u00f3n Profile T v1.0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para un device, la especificaci\u00f3n establece, entre otros requisitos, soporte de streaming mediante <strong>RTP\/UDP<\/strong> y mediante <strong>RTP\/RTSP\/HTTP\/TCP<\/strong>. A continuaci\u00f3n establece que, <strong>si se soporta<\/strong>, el device debe ser capaz de transmitir video mediante <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong> utilizando el Media Profile seleccionado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la Function List de Profile T, la diferencia aparece de forma expl\u00edcita:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Funci\u00f3n de streaming<\/td><td>Device Profile T<\/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\">Para los clients, <code>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/code> tambi\u00e9n aparece como funci\u00f3n <strong>condicional<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto produce una consecuencia pr\u00e1ctica importante: <strong>Profile T y soporte de HTTPS streaming no son equivalentes<\/strong>. Un producto puede ser conforme con Profile T sin que esta funci\u00f3n condicional est\u00e9 presente. Cuando el requisito del dise\u00f1o es utilizar efectivamente el flujo protegido, es necesario verificar la declaraci\u00f3n de conformidad y las features aplicables al <strong>modelo y firmware<\/strong> ofertados.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 Significa \u00abConditional\u00bb en Profile T?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La propia especificaci\u00f3n define los niveles de requisito. Una feature o funci\u00f3n condicional debe implementarse conforme a ONVIF cuando el device o client soporta esa funcionalidad en las condiciones definidas por el profile. No se convierte simplemente en una funci\u00f3n obligatoria para todos los productos Profile T.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es diferente de una funci\u00f3n marcada como <strong>M \u2014 Mandatory<\/strong>, que forma parte del m\u00ednimo necesario para la conformidad correspondiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para la ingenier\u00eda de especificaci\u00f3n, esta distinci\u00f3n es decisiva. Una frase como \u00abel equipo deber\u00e1 ser ONVIF Profile T\u00bb no demuestra el cumplimiento de toda capacidad condicional existente en el profile.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Antes de la Seguridad: \u00bfC\u00f3mo se Organiza el Streaming de Video?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para comprender d\u00f3nde act\u00faan HTTPS, TLS y SRTP, es necesario separar <strong>codificaci\u00f3n, transporte, control de sesi\u00f3n y protecci\u00f3n criptogr\u00e1fica<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H.264 y H.265 son formatos de codificaci\u00f3n de video. Definen c\u00f3mo se comprime y representa la informaci\u00f3n visual, pero no son responsables de transportar el video por la red ni de establecer una sesi\u00f3n entre c\u00e1mara y VMS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El transporte en tiempo real normalmente se realiza mediante <strong>RTP \u2014 Real-time Transport Protocol<\/strong>Por su parte, <strong>RTSP \u2014 Real Time Streaming Protocol<\/strong> se utiliza para controlar la sesi\u00f3n de streaming. En una representaci\u00f3n simplificada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Imagen capturada \u2193 H.264 \/ H.265 \u2193 RTP \u2193 control por RTSP \u2193 red IP<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">RTP \u2014 Transporte del Medio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTP organiza la transmisi\u00f3n de medios en tiempo real. Su encabezado incluye informaci\u00f3n utilizada para interpretar el flujo, como n\u00famero de secuencia, timestamp y payload type. En sistemas de video IP, es el protocolo que efectivamente transporta el medio encapsulado seg\u00fan los formatos aplicables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RTP, de forma aislada, no debe tratarse como un mecanismo de cifrado. Un flujo RTP convencional no adquiere confidencialidad simplemente porque se transporte por una red IP cerrada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTCP \u2014 Control Asociado a RTP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTCP es el protocolo de control asociado a RTP y puede transportar informaci\u00f3n de calidad y sincronizaci\u00f3n de la sesi\u00f3n. No debe confundirse con RTSP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RTCP y RTSP son protocolos diferentes.<\/strong> RTCP acompa\u00f1a la operaci\u00f3n RTP; RTSP se utiliza para establecer y controlar la sesi\u00f3n de streaming.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTSP \u2014 Control de la Sesi\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTSP permite operaciones como establecimiento, descripci\u00f3n, reproducci\u00f3n y cierre de sesiones. M\u00e9todos como <code>DESCRIBE<\/code>, <code>SETUP<\/code>, <code>PLAY<\/code> y <code>TEARDOWN<\/code> forman parte de esta l\u00f3gica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto, decir simplemente que \u00abRTSP transporta el video\u00bb es una simplificaci\u00f3n imprecisa. En una sesi\u00f3n convencional, RTSP controla la sesi\u00f3n mientras RTP transporta el medio.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Principales Formas de Transporte Consideradas por ONVIF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Las ONVIF Streaming Specifications describen diferentes formas de transporte para atender distintos escenarios de red.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTP sobre UDP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTP puede utilizar UDP directamente. Esta disposici\u00f3n tiene bajo overhead y es especialmente adecuada para la naturaleza temporal del audio y el video, pero no proporciona, por s\u00ed sola, confidencialidad criptogr\u00e1fica.<\/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\">RTP Interleaved en RTSP\/TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es posible transportar medios RTP dentro del propio canal TCP asociado a RTSP, utilizando el mecanismo de datos binarios interleaved.<\/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 sobre HTTP\/TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ONVIF tambi\u00e9n especifica tunneling mediante HTTP, tradicionalmente \u00fatil para atravesar entornos en los que el tr\u00e1fico HTTP es permitido con mayor facilidad por firewalls y 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 sobre HTTPS\/TCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando este tunneling se realiza mediante HTTPS, la conexi\u00f3n HTTP pasa a estar protegida por TLS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Video \/ audio \/ metadatos \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\">Esta es la disposici\u00f3n \u2014 <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong> \u2014 que debe asociarse con la funci\u00f3n condicional de secure\/HTTPS streaming de Profile T.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfD\u00f3nde Est\u00e1 la Seguridad en RTP\/RTSP\/HTTPS\/TCP?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En el mecanismo referenciado por Profile T, la protecci\u00f3n no procede de transformar RTP en SRTP. Procede del <strong>TLS utilizado por HTTPS<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">HTTPS puede entenderse, de forma simplificada, como HTTP operando sobre una sesi\u00f3n TLS. TLS proporciona mecanismos de protecci\u00f3n para los datos que atraviesan ese canal, incluida confidencialidad e integridad en tr\u00e1nsito, adem\u00e1s de mecanismos de autenticaci\u00f3n del endpoint seg\u00fan la configuraci\u00f3n de certificados y confianza utilizada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto significa que el modelo arquitect\u00f3nico es distinto de proteger cada paquete RTP directamente mediante SRTP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TLS No Es un Algoritmo de Cifrado<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Otro error frecuente es tratar TLS como sin\u00f3nimo de AES. TLS es un <strong>protocolo de seguridad<\/strong> que establece una sesi\u00f3n protegida y negocia los mecanismos criptogr\u00e1ficos aplicables. AES puede formar parte de las cipher suites utilizadas, pero no es correcto definir \u00abTLS = AES\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Del mismo modo, no debe concluirse que la simple presencia de la palabra HTTPS demuestra una cipher suite espec\u00edfica sin verificar la versi\u00f3n y configuraci\u00f3n de TLS efectivamente utilizadas por los endpoints.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Certificados y Confianza<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La seguridad de una sesi\u00f3n TLS tambi\u00e9n depende de c\u00f3mo el client valida la identidad del endpoint. Los certificados digitales, la cadena de confianza y las pol\u00edticas de validaci\u00f3n forman parte del dise\u00f1o de una implantaci\u00f3n segura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un certificado self-signed puede proporcionar cifrado, pero exige un modelo de confianza coherente para que el client sepa que se est\u00e1 comunicando con el dispositivo previsto. En entornos corporativos, la gesti\u00f3n de certificados debe tratarse como parte de la arquitectura de seguridad, no \u00fanicamente como una opci\u00f3n de la interfaz web de la c\u00e1mara.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming de Profile T No Es Sin\u00f3nimo de SRTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es la distinci\u00f3n m\u00e1s importante del tema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Profile T v1.0, la funci\u00f3n condicional de transporte seguro se describe como:<\/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\">No se describe como \u00abSRTP\u00bb. El medio RTP permanece dentro de la arquitectura de tunneling RTSP\/HTTP, mientras TLS protege el canal HTTPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una representaci\u00f3n simplificada:<\/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 protege el canal HTTPS que transporta 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\/>medio<\/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\/>protege el canal<\/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 protege el canal HTTPS que transporta RTP\/RTSP<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">SRTP, en cambio, opera de forma diferente:<\/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: la protecci\u00f3n se aplica directamente al paquete RTP antes del transporte por 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\/>medio<\/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\/>protege el paquete<\/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: la protecci\u00f3n se aplica directamente al paquete RTP antes del transporte por UDP\/IP<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En ambos casos existe protecci\u00f3n del medio en tr\u00e1nsito, pero el punto en que se aplica esa protecci\u00f3n y la arquitectura de los protocolos no son los mismos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ello, la expresi\u00f3n <strong>\u00abProfile T con Secure Streaming\u00bb no debe utilizarse como prueba autom\u00e1tica de soporte de SRTP<\/strong>.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 Es SecureRTSPStreaming en las Especificaciones ONVIF M\u00e1s Recientes?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La evoluci\u00f3n de las ONVIF Network Interface Specifications incorpor\u00f3 una capacidad distinta denominada <strong><code>SecureRTSPStreaming<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la <strong>Media2 Service Specification 26.06<\/strong>, la capability se describe como una indicaci\u00f3n de soporte para <strong>live media streaming via RTSPS and SRTP<\/strong>. Esta definici\u00f3n separa claramente el mecanismo moderno del HTTPS streaming referenciado por Profile T.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Media2 tambi\u00e9n distingue diferentes capacidades de streaming, como:<\/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 y SRTP;<\/li><li><code>RTPMulticast<\/code> \u2014 soporte de multicast UDP;<\/li><li><code>RTP_RTSP_TCP<\/code> \u2014 soporte de RTP\/RTSP\/TCP;<\/li><li><code>RTSPWebSocketUri<\/code> \u2014 soporte del transporte RTSP\/RTP sobre WebSocket, conforme a la especificaci\u00f3n aplicable.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La diferencia de nomenclatura es relevante: <strong><code>SecureRTSPStreaming<\/code> es una capability espec\u00edfica<\/strong>, no una simple forma alternativa de escribir la funci\u00f3n condicional HTTPS de Profile T.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 Es RTSPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RTSPS representa RTSP operando sobre una conexi\u00f3n protegida por TLS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De forma simplificada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RTSP\n \u2193\nTLS\n \u2193\nTCP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En las especificaciones actuales de secure streaming con SRTP, el canal RTSP seguro es importante porque la informaci\u00f3n de establecimiento y gesti\u00f3n de la sesi\u00f3n no puede transmitirse de forma insegura mientras se pretende construir un medio protegido criptogr\u00e1ficamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ONVIF Streaming Specification 26.06 establece que <strong>TLS debe utilizarse para RTSP cuando se utiliza SRTP<\/strong>. La especificaci\u00f3n tambi\u00e9n determina que un device no debe devolver RTP\/SAVP ni informaci\u00f3n MIKEY en el SDP si el canal RTSP no es seguro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este detalle demuestra que existen dos superficies distintas de protecci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>control plane<\/strong> \u2014 comandos y negociaci\u00f3n RTSP protegidos por TLS;<\/li><li><strong>media plane<\/strong> \u2014 medio RTP protegido por SRTP.<\/li><\/ul>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo Funciona SRTP?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SRTP \u2014 Secure Real-time Transport Protocol<\/strong> es una extensi\u00f3n de seguridad para RTP. En lugar de depender de un t\u00fanel TLS externo para proteger el medio, SRTP aplica mecanismos criptogr\u00e1ficos al propio flujo RTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptualmente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RTP convencional \u2193 protecci\u00f3n SRTP \u2193 SRTP \/ UDP \u2193 red IP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La funci\u00f3n de SRTP incluye protecci\u00f3n de confidencialidad, integridad\/autenticaci\u00f3n del medio seg\u00fan el algoritmo negociado y mecanismos relacionados con la protecci\u00f3n contra replay. El protocolo de control asociado, SRTCP, aplica la protecci\u00f3n correspondiente al tr\u00e1fico de control de RTP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RTP\/AVP y RTP\/SAVP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En sesiones RTP convencionales puede utilizarse el perfil <code>RTP\/AVP<\/code>. Para sesiones protegidas por SRTP aparece <code>RTP\/SAVP<\/code>, indicando el uso del Secure Audio\/Video Profile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta diferenciaci\u00f3n es relevante en la negociaci\u00f3n SDP de una sesi\u00f3n segura.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmos SRTP Previstos por la Especificaci\u00f3n ONVIF 26.06<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La Streaming Specification 26.06 define mecanismos para negociar los algoritmos criptogr\u00e1ficos utilizados por SRTP. Entre los algoritmos enumerados se encuentran:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Identificador<\/td><td>Protecci\u00f3n principal<\/td><\/tr><tr><td><code>AES_CM_128_HMAC_SHA1_80<\/code><\/td><td>AES en counter mode + HMAC-SHA-1 con authentication tag de 80 bits<\/td><\/tr><tr><td><code>AEAD_AES_128_GCM<\/code><\/td><td>AES-128-GCM en modo AEAD<\/td><\/tr><tr><td><code>AEAD_AES_256_GCM<\/code><\/td><td>AES-256-GCM en modo AEAD<\/td><\/tr><tr><td><code>NONE<\/code><\/td><td>caso de configuraci\u00f3n sin protecci\u00f3n SRTP del medio, conforme a las condiciones previstas por la especificaci\u00f3n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed es necesario evitar otro error com\u00fan: la existencia de <code>NONE<\/code> no significa que ONVIF est\u00e9 clasificando medios sin ninguna protecci\u00f3n como equivalentes a SRTP seguro. La especificaci\u00f3n admite escenarios en los que RTSP seguro contin\u00faa operando y en los que el medio puede recorrer un canal TLS, dependiendo del transporte seleccionado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto, el an\u00e1lisis de una implementaci\u00f3n debe considerar <strong>capability, transporte efectivamente seleccionado y algoritmo negociado<\/strong>, y no \u00fanicamente una etiqueta de interfaz.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">MIKEY: Gesti\u00f3n de Claves para SRTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para cifrar medios con SRTP, device y client necesitan compartir o establecer el material de clave utilizado por la sesi\u00f3n. ONVIF utiliza <strong>MIKEY \u2014 Multimedia Internet KEYing<\/strong> para esta finalidad dentro de la arquitectura definida para Secure RTSP Streaming.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La Streaming Specification actual establece soporte de MIKEY para key exchange y key management en devices que se\u00f1alan <code>SecureRTSPStreaming<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El flujo conceptual puede representarse as\u00ed:<\/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\">Establecimiento de Sesi\u00f3n SecureRTSPStreaming \u2014 el canal RTSP seguro precede a cualquier material de clave<\/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 (c\u00e1mara)<\/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 (c\u00e1mara)<\/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\">Sin un canal RTSP seguro, el device no debe<\/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\">devolver RTP\/SAVP ni MIKEY en el 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;\">Handshake TLS \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 con RTP\/SAVP y par\u00e1metros MIKEY<\/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;\">Medio protegido por 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 renovaci\u00f3n de clave en sesi\u00f3n prolongada<\/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>Establecimiento de Sesi\u00f3n SecureRTSPStreaming \u2014 el canal RTSP seguro precede a cualquier material de clave<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La especificaci\u00f3n tambi\u00e9n trata la renovaci\u00f3n de claves durante la sesi\u00f3n. Esto es importante en operaciones de larga duraci\u00f3n, en las que la gesti\u00f3n del ciclo de vida de las claves no debe depender de una \u00fanica configuraci\u00f3n inicial est\u00e1tica.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Comparaci\u00f3n: Streaming Convencional, HTTPS Streaming y SecureRTSPStreaming<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La tabla siguiente resume las arquitecturas que no deben confundirse.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Arquitectura<\/td><td>Control<\/td><td>Transporte del medio<\/td><td>Capa principal de protecci\u00f3n<\/td><td>Relaci\u00f3n ONVIF<\/td><\/tr><tr><td>RTP\/RTSP\/UDP<\/td><td>RTSP<\/td><td>RTP\/UDP<\/td><td>sin protecci\u00f3n criptogr\u00e1fica inherente<\/td><td>streaming convencional<\/td><\/tr><tr><td>RTP\/RTSP\/TCP<\/td><td>RTSP<\/td><td>RTP interleaved\/TCP<\/td><td>sin protecci\u00f3n criptogr\u00e1fica inherente<\/td><td>streaming convencional<\/td><\/tr><tr><td><strong>RTP\/RTSP\/HTTPS\/TCP<\/strong><\/td><td>RTSP tunneled<\/td><td>RTP tunneled<\/td><td><strong>TLS en HTTPS<\/strong><\/td><td>funci\u00f3n condicional referenciada por <strong>Profile T<\/strong><\/td><\/tr><tr><td><strong>RTSPS + SRTP<\/strong><\/td><td><strong>RTSP sobre TLS<\/strong><\/td><td><strong>SRTP<\/strong>, t\u00edpicamente sobre UDP<\/td><td><strong>TLS en el control + SRTP en el medio<\/strong><\/td><td><strong><code>SecureRTSPStreaming<\/code><\/strong> en las especificaciones actuales<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Esta tabla es la forma m\u00e1s segura de interpretar el t\u00e9rmino en documentaci\u00f3n t\u00e9cnica: primero se identifica <strong>qu\u00e9 arquitectura est\u00e1 en uso<\/strong>; despu\u00e9s se eval\u00faan las propiedades de seguridad de esa arquitectura.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 Significa \u00abSecure Streaming: Yes\u00bb en una Declaraci\u00f3n ONVIF?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al evaluar un equipo en la base de productos conformes, es habitual encontrar informaci\u00f3n de que determinado modelo soporta Profile T y, por separado, una feature identificada como <strong>Secure Streaming<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el contexto del conjunto de features de Profile T, esta informaci\u00f3n debe correlacionarse con la funci\u00f3n de HTTPS streaming definida en el profile, es decir, <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La existencia de dos informaciones separadas es intencionadamente importante para procurement:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Profile T: conforme + Secure Streaming: Yes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">no es la misma afirmaci\u00f3n que:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Profile T: conforme<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">de forma aislada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Del mismo modo, <code>Secure Streaming: Yes<\/code> en el contexto de Profile T no debe transformarse en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SRTP: demostrado<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">sin evidencia t\u00e9cnica adicional de la capability moderna correspondiente.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo Verificar Correctamente la Conformidad de una C\u00e1mara o VMS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ONVIF recomienda utilizar la base oficial de <strong>Conformant Products<\/strong> para confirmar la conformidad de los productos. No es suficiente una referencia comercial gen\u00e9rica de que la marca \u00abes ONVIF\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El an\u00e1lisis debe considerar al menos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. <strong>fabricante<\/strong>; 2. <strong>modelo exacto<\/strong>; 3. <strong>versi\u00f3n de firmware<\/strong> asociada a la declaraci\u00f3n; 4. <strong>profiles declarados<\/strong>; 5. <strong>features condicionales relevantes<\/strong>; 6. documentaci\u00f3n de capabilities e implementaci\u00f3n; 7. soporte correspondiente en el client\/VMS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta \u00faltima etapa suele descuidarse. La interoperabilidad es una propiedad de la relaci\u00f3n entre <strong>device y client<\/strong>. La c\u00e1mara puede ofrecer una modalidad segura que el VMS no implemente, o el VMS puede implementar la funci\u00f3n sin que el device ofertado la proporcione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En t\u00e9rminos de ingenier\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>soporte del device + soporte del client + configuraci\u00f3n compatible = funcionalidad operativa<\/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\">Verificaci\u00f3n de Secure Streaming en Procurement: Qu\u00e9 Demuestra la Declaraci\u00f3n ONVIF y Qu\u00e9 Requiere Evidencia Adicional<\/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>S\u00ed<\/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>S\u00ed<\/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>S\u00ed<\/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>S\u00ed<\/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>Base ONVIF Conformant Products<\/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>\u00bfProfile T conforme?<\/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>Sin base contractual<\/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>\u00bfSecure 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>Solo RTSP\/RTP convencional<\/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>Demuestra 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>\u00bfEl TR exige 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>Satisfecho por el canal TLS<\/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\/>\u00bfen 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 no demostrado \u2014<br\/>exigir evidencia<\/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>Verificar client\/VMS<br\/>y configuraci\u00f3n<\/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 + configuraci\u00f3n<br\/>= funci\u00f3n operativa<\/p><\/span><\/div><\/foreignObject><\/g><\/g><\/g><\/g><\/g><\/svg><figcaption>Verificaci\u00f3n de Secure Streaming en Procurement: Qu\u00e9 Demuestra la Declaraci\u00f3n ONVIF y Qu\u00e9 Requiere Evidencia Adicional<\/figcaption><\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo Especificar Secure Streaming en un Dise\u00f1o, Memoria o T\u00e9rmino de Referencia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando el objetivo t\u00e9cnico es proteger el transporte entre c\u00e1mara y VMS, la especificaci\u00f3n debe declarar la capacidad pretendida. Utilizar \u00fanicamente el nombre del profile puede producir un requisito incompleto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una especificaci\u00f3n que diga solamente:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&gt; \u00abLa c\u00e1mara deber\u00e1 contar con ONVIF Profile T.\u00bb<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">establece un requisito relevante de interoperabilidad, pero <strong>no demuestra espec\u00edficamente la presencia de <code>RTP\/RTSP\/HTTPS\/TCP<\/code><\/strong>, porque esta funci\u00f3n es condicional en Profile T.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando el dise\u00f1o necesita la funci\u00f3n de HTTPS streaming, el requisito debe formularse de forma m\u00e1s precisa, por ejemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&gt; El equipo deber\u00e1 disponer de conformidad ONVIF Profile T y soportar streaming sobre RTP\/RTSP\/HTTPS\/TCP, con comprobaci\u00f3n mediante la documentaci\u00f3n oficial de conformidad y\/o features aplicables al modelo y firmware ofertados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta redacci\u00f3n debe adaptarse al contexto de contrataci\u00f3n y al modelo de comprobaci\u00f3n adoptado en el documento.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cuando el Requisito Es Espec\u00edficamente SRTP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si la arquitectura de cybersecurity del proyecto exige que el propio medio RTP est\u00e9 protegido mediante SRTP, no es suficiente escribir \u00fanicamente \u00abProfile T con Secure Streaming\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En ese caso, la especificaci\u00f3n debe establecer expl\u00edcitamente el requisito de <strong>RTSPS\/SRTP o <code>SecureRTSPStreaming<\/code><\/strong>, junto con los mecanismos de comprobaci\u00f3n y compatibilidad entre device y client.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n se recomienda verificar:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>algoritmos soportados;<\/li><li>soporte de Media2\/capabilities aplicables;<\/li><li>interoperabilidad efectiva con el VMS;<\/li><li>gesti\u00f3n de certificados TLS;<\/li><li>comportamiento de key management;<\/li><li>impacto sobre unicast\/multicast y la topolog\u00eda adoptada;<\/li><li>procedimientos de commissioning.<\/li><\/ul>\n\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 Protege Secure Streaming \u2014 y Qu\u00e9 No Protege?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El cifrado del transporte es una capa importante de seguridad, pero no debe presentarse como protecci\u00f3n completa del sistema de videovigilancia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Confidencialidad en Tr\u00e1nsito<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un objetivo central es reducir la posibilidad de que el medio pueda ser comprendido por un tercero que obtenga acceso a la ruta de red, siempre que la sesi\u00f3n y los endpoints est\u00e9n configurados correctamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Integridad del Transporte<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TLS y SRTP incluyen mecanismos destinados a detectar modificaciones indebidas en los datos protegidos durante el transporte, dentro de los modelos de seguridad de cada protocolo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Autenticaci\u00f3n del Endpoint<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TLS puede utilizar certificados para autenticaci\u00f3n y establecimiento de confianza. Esta propiedad depende de la validaci\u00f3n correcta del certificado y de la pol\u00edtica de confianza del client.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La Autenticaci\u00f3n y Autorizaci\u00f3n del Usuario Son Otra Capa<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cifrar el flujo no sustituye los controles de identidad y acceso. Contrase\u00f1as d\u00e9biles, credenciales compartidas, privilegios excesivos o cuentas administrativas comprometidas siguen siendo riesgos independientes.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Problema de seguridad<\/td><td>Mecanismo relacionado<\/td><\/tr><tr><td>Confidencialidad del tr\u00e1fico<\/td><td>TLS \/ SRTP<\/td><\/tr><tr><td>Integridad en tr\u00e1nsito<\/td><td>TLS \/ SRTP<\/td><\/tr><tr><td>Identidad del endpoint<\/td><td>TLS\/certificados, seg\u00fan implementaci\u00f3n<\/td><\/tr><tr><td>Autenticaci\u00f3n de usuario<\/td><td>mecanismos de autenticaci\u00f3n del sistema<\/td><\/tr><tr><td>Autorizaci\u00f3n<\/td><td>pol\u00edtica de privilegios y access control<\/td><\/tr><tr><td>Integridad\/autenticidad de la grabaci\u00f3n almacenada<\/td><td>mecanismos espec\u00edficos de evidencia\/media signing<\/td><\/tr><tr><td>Segmentaci\u00f3n y contenci\u00f3n<\/td><td>arquitectura de red, VLAN, ACL, firewall<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming No Es Media Signing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Otro concepto que debe mantenerse separado es <strong>Media Signing<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secure Streaming trata de la protecci\u00f3n de la comunicaci\u00f3n en tr\u00e1nsito. Media Signing, por su parte, est\u00e1 relacionado con la posibilidad de verificar propiedades de autenticidad e integridad del medio seg\u00fan la arquitectura espec\u00edfica de firma definida por ONVIF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Que una grabaci\u00f3n haya sido transmitida por un canal seguro no significa autom\u00e1ticamente que posea una firma verificable capaz de demostrar posteriormente su origen o ausencia de modificaci\u00f3n. Del mismo modo, una soluci\u00f3n de media signing no sustituye la necesidad de proteger el transporte mientras el medio atraviesa la red.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Son controles complementarios para problemas diferentes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming Tampoco Sustituye la Seguridad de la Red<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Incluso cuando video y control circulan mediante mecanismos criptogr\u00e1ficos adecuados, el sistema debe seguir dise\u00f1\u00e1ndose como infraestructura ciberf\u00edsica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entre los controles complementarios se encuentran:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>segmentaci\u00f3n l\u00f3gica de la red;<\/li><li>VLAN y pol\u00edticas entre segmentos;<\/li><li>ACL y firewall;<\/li><li>restricci\u00f3n de las interfaces de gesti\u00f3n;<\/li><li>gesti\u00f3n de certificados;<\/li><li>hardening de los dispositivos;<\/li><li>actualizaci\u00f3n y lifecycle de firmware;<\/li><li>desactivaci\u00f3n de servicios innecesarios;<\/li><li>cuentas individualizadas y m\u00ednimo privilegio;<\/li><li>monitoreo de eventos y logs.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">El cifrado de la ruta reduce una categor\u00eda de riesgo. No convierte endpoints comprometidos en confiables ni corrige una arquitectura de red permisiva.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Impactos de Arquitectura: TLS\/TCP y SRTP\/UDP No Son Equivalentes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El dise\u00f1o de transporte tambi\u00e9n tiene implicaciones operativas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una sesi\u00f3n RTP\/RTSP\/HTTPS\/TCP utiliza TCP y TLS. Esto implica establecimiento de sesi\u00f3n, procesamiento criptogr\u00e1fico y el comportamiento de entrega confiable de TCP. En determinadas condiciones, la p\u00e9rdida de paquetes puede provocar retransmisiones y head-of-line blocking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SRTP, por su parte, puede preservar la l\u00f3gica temporal de RTP sobre UDP mientras a\u00f1ade protecci\u00f3n criptogr\u00e1fica al medio. Sin embargo, esto no significa que SRTP sea universalmente \u00abm\u00e1s r\u00e1pido\u00bb ni que HTTPS streaming produzca necesariamente un retardo perceptible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El comportamiento real depende de factores como:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>capacidad de procesamiento del device;<\/li><li>aceleraci\u00f3n criptogr\u00e1fica;<\/li><li>cantidad de streams simult\u00e1neos;<\/li><li>bitrate;<\/li><li>resoluci\u00f3n y frame rate;<\/li><li>condiciones de la red;<\/li><li>arquitectura de grabaci\u00f3n;<\/li><li>capacidad del VMS;<\/li><li>estrategia unicast o multicast.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Estos factores deben evaluarse mediante dimensionamiento y pruebas, no mediante afirmaciones gen\u00e9ricas de rendimiento.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Evoluci\u00f3n de ONVIF: del HTTPS Streaming al Soporte Formal de SRTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es importante interpretar la evoluci\u00f3n de las especificaciones sin reescribir retroactivamente el significado de 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 consolid\u00f3 el uso de Media2 e incluy\u00f3 <code>Streaming over RTP\/RTSP\/HTTPS\/TCP<\/code> como funci\u00f3n condicional de video. Esta es la referencia adecuada al interpretar Secure Streaming asociado a Profile T.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Generaciones Posteriores de Media2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las especificaciones Media2 pasaron a exponer la capability <code>SecureRTSPStreaming<\/code>, expl\u00edcitamente relacionada con <strong>RTSPS y SRTP<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Junio de 2026 \u2014 Network Interface Specifications 26.06<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El historial oficial de ONVIF registra, en la versi\u00f3n 26.06, la incorporaci\u00f3n de <strong>soporte de SRTP en la Streaming Specification<\/strong>. La especificaci\u00f3n vigente pasa a detallar el transporte SRTP sobre UDP, la negociaci\u00f3n de algoritmos, el uso obligatorio de TLS en el canal RTSP cuando se utiliza SRTP y la gesti\u00f3n de claves mediante MIKEY.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo tanto, la formulaci\u00f3n correcta no es decir que \u00abONVIF cambi\u00f3 el significado del Secure Streaming de Profile T\u00bb. Lo correcto es decir que <strong>las Network Interface Specifications evolucionaron y pasaron a especificar tambi\u00e9n Secure RTSP Streaming basado en RTSPS y SRTP, coexistiendo con la funci\u00f3n de HTTPS streaming que integra Profile T<\/strong>.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Errores Comunes sobre Secure Streaming y ONVIF<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Afirmaci\u00f3n<\/td><td>Interpretaci\u00f3n correcta<\/td><\/tr><tr><td>\u00abSecure Streaming es SRTP.\u00bb<\/td><td>No como definici\u00f3n de la funci\u00f3n de Profile T. En Profile T, la referencia es RTP\/RTSP\/HTTPS\/TCP.<\/td><\/tr><tr><td>\u00abTodo Profile T dispone de Secure Streaming.\u00bb<\/td><td>No. La funci\u00f3n HTTPS es condicional.<\/td><\/tr><tr><td>\u00abProfile T + Secure Streaming demuestra SRTP.\u00bb<\/td><td>No. SRTP debe demostrarse mediante la capability\/implementaci\u00f3n espec\u00edfica.<\/td><\/tr><tr><td>\u00abHTTPS y SRTP son la misma protecci\u00f3n.\u00bb<\/td><td>No. HTTPS protege un canal TLS; SRTP protege el medio RTP.<\/td><\/tr><tr><td>\u00abRTSP es el protocolo que transporta el video.\u00bb<\/td><td>RTSP controla la sesi\u00f3n; RTP es el protocolo del medio.<\/td><\/tr><tr><td>\u00abTLS es AES.\u00bb<\/td><td>TLS es un protocolo de seguridad que negocia mecanismos criptogr\u00e1ficos.<\/td><\/tr><tr><td>\u00abEl streaming cifrado garantiza la seguridad de la c\u00e1mara.\u00bb<\/td><td>No. Endpoint, credenciales, firmware y red permanecen dentro del threat model.<\/td><\/tr><tr><td>\u00abEl streaming seguro garantiza la validez o autenticidad forense de la grabaci\u00f3n.\u00bb<\/td><td>No. La protecci\u00f3n del transporte y la gesti\u00f3n\/autenticidad de la evidencia son problemas distintos.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Checklist de Ingenier\u00eda para Adquisici\u00f3n y Commissioning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al exigir Secure Streaming en un sistema de videovigilancia, el an\u00e1lisis no debe terminar en la ficha comercial. El proceso de ingenier\u00eda puede utilizar el siguiente checklist:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. confirmar el producto en la base oficial ONVIF Conformant Products; 2. verificar el modelo exacto y la versi\u00f3n de firmware declarada; 3. confirmar Profile T cuando forme parte del requisito de interoperabilidad; 4. verificar espec\u00edficamente la funci\u00f3n de HTTPS streaming cuando sea requerida; 5. no inferir SRTP \u00fanicamente a partir de Profile T; 6. para SRTP, verificar la capability <code>SecureRTSPStreaming<\/code> y la documentaci\u00f3n t\u00e9cnica aplicable; 7. confirmar soporte equivalente en el VMS\/client; 8. definir la pol\u00edtica de certificados y confianza TLS; 9. probar el establecimiento y reconexi\u00f3n de la sesi\u00f3n; 10. validar el transporte efectivamente utilizado durante commissioning; 11. evaluar impactos de rendimiento con la cantidad real de streams; 12. documentar configuraci\u00f3n, firmware y evidencias de prueba en el As-Built.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En entornos de mayor criticidad, el commissioning puede incluir captura controlada de tr\u00e1fico para <strong>verificar la modalidad de transporte<\/strong>, sin convertir esta actividad en un intento de eludir los controles de seguridad del sistema.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Secure Streaming Debe Tratarse como un Requisito de Ingenier\u00eda Verificable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La principal lecci\u00f3n es que los nombres de profiles y las etiquetas comerciales no sustituyen requisitos t\u00e9cnicos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el contexto de <strong>ONVIF Profile T<\/strong>, Secure Streaming debe asociarse con la funci\u00f3n condicional <strong>RTP\/RTSP\/HTTPS\/TCP<\/strong>, en la que la protecci\u00f3n en tr\u00e1nsito es proporcionada por HTTPS\/TLS. Esta funci\u00f3n no es obligatoria en todos los devices y clients Profile T y, por ello, debe verificarse cuando forme parte de los requisitos del dise\u00f1o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>SecureRTSPStreaming<\/code>, por otro lado, es una capability m\u00e1s reciente de las ONVIF Network Interface Specifications y est\u00e1 asociada con <strong>RTSPS y SRTP<\/strong>. En esta arquitectura, TLS protege el canal de control RTSP y SRTP protege el medio, con mecanismos de negociaci\u00f3n y gesti\u00f3n de claves definidos por la especificaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En especificaciones de videovigilancia, procurement y Owner&#8217;s Engineering, el enfoque correcto es exigir <strong>la capability necesaria y su comprobaci\u00f3n<\/strong>, relacionando device, client, firmware, configuraci\u00f3n y prueba de interoperabilidad. Este enfoque evita que expresiones como \u00abONVIF Profile T\u00bb, \u00abSecure Streaming\u00bb y \u00abSRTP\u00bb se traten como equivalentes cuando, t\u00e9cnicamente, representan elementos diferentes de la arquitectura.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Referencias T\u00e9cnicas<\/summary>\n<p class=\"wp-block-paragraph\">[1] ONVIF. ONVIF Profile T Specification v1.0. Septiembre de 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. Junio de 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. Junio de 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. Junio de 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>Preguntas Frecuentes<\/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\">\u00bfSecure Streaming Es Obligatorio en ONVIF Profile T?<\/strong> <p class=\"schema-faq-answer\">No. En la especificaci\u00f3n Profile T v1.0, Streaming over RTP\/RTSP\/HTTPS\/TCP es una funci\u00f3n condicional. Por ello, la conformidad con Profile T, de forma aislada, no demuestra esta capacidad.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-secure-streaming-no-profile-t-srtp-a7be0be6\"><strong class=\"schema-faq-question\">\u00bfSecure Streaming en Profile T Es SRTP?<\/strong> <p class=\"schema-faq-answer\">No. En Profile T v1.0, la funci\u00f3n asociada al streaming seguro es RTP\/RTSP\/HTTPS\/TCP, protegida por TLS de HTTPS. SRTP forma parte de la capability m\u00e1s reciente SecureRTSPStreaming.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-o-que-securertspstreaming-no-onvif-f7bde2af\"><strong class=\"schema-faq-question\">\u00bfQu\u00e9 Es SecureRTSPStreaming en ONVIF?<\/strong> <p class=\"schema-faq-answer\">En Media2 Service Specification 26.06, SecureRTSPStreaming indica soporte para live media streaming via RTSPS y SRTP.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-o-que-rtsps-86e159d3\"><strong class=\"schema-faq-question\">\u00bfQu\u00e9 Es RTSPS?<\/strong> <p class=\"schema-faq-answer\">Es RTSP operando sobre TLS. En la arquitectura ONVIF actual para SRTP, TLS protege el canal RTSP utilizado para establecer y gestionar la sesi\u00f3n segura.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-profile-t-com-secure-streaming-yes-comprova-supo-7eabeef8\"><strong class=\"schema-faq-question\">\u00bfProfile T con Secure Streaming: Yes Demuestra Soporte de SRTP?<\/strong> <p class=\"schema-faq-answer\">No. La feature de Secure Streaming asociada a Profile T debe interpretarse en el contexto de HTTPS streaming. Si SRTP es un requisito, debe verificarse expl\u00edcitamente en la capability y la documentaci\u00f3n aplicable.<\/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\">\u00bfC\u00f3mo Verificar si una C\u00e1mara Realmente Soporta Secure Streaming?<\/strong> <p class=\"schema-faq-answer\">Verifique el modelo y firmware en la base oficial ONVIF Conformant Products, los profiles declarados y las features\/capabilities aplicables. En el dise\u00f1o, tambi\u00e9n es necesario confirmar el soporte correspondiente del VMS\/client.<\/p><\/div><div class=\"schema-faq-section\" id=\"faq-question-secure-streaming-garante-autenticidade-forense-d-db2b4281\"><strong class=\"schema-faq-question\">\u00bfSecure Streaming Garantiza la Autenticidad Forense de la Grabaci\u00f3n?<\/strong> <p class=\"schema-faq-answer\">No. El streaming seguro protege la comunicaci\u00f3n en tr\u00e1nsito. La integridad y autenticidad verificable del medio almacenado involucran otros mecanismos, como media signing y controles de gesti\u00f3n de evidencia.<\/p><\/div><\/div>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Materiales T\u00e9cnicos Complementarios<\/summary>\n<ul class=\"wp-block-list\"><li><a href=\"\/conteudo\/artigos-tecnicos\/o-que-e-onvif\/\">\u00bfQu\u00e9 Es ONVIF?<\/a><\/li><li><a href=\"\/conteudo\/artigos-tecnicos\/como-evitar-sistemas-seguranca-fisica-porta-entrada-ataques\/\">C\u00f3mo Evitar que los Sistemas de Seguridad F\u00edsica se Conviertan en una Puerta de Entrada para Ataques Cibern\u00e9ticos<\/a><\/li><li><a href=\"\/conteudo\/artigos-tecnicos\/projeto-de-cftv-como-fazer\/\">Dise\u00f1o de Videovigilancia: C\u00f3mo Contratarlo, Etapas y Normas T\u00e9cnicas<\/a><\/li><li><a href=\"\/servicos\/planejamento\/projeto-de-cftv-ip-e-videomonitoramento\/\">Dise\u00f1o de Videovigilancia IP y Videomonitoreo<\/a><\/li><\/ul>\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>Secure Streaming en ONVIF no es autom\u00e1ticamente sin\u00f3nimo de SRTP. Comprenda su significado en Profile T, el transporte RTP\/RTSP\/HTTPS\/TCP y la evoluci\u00f3n hacia SecureRTSPStreaming con RTSPS y 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":"es-es","_a3a_translation_group_id":"c6897eb7-8b94-4e25-9792-4ca507f8066e","_a3a_i18n_canonical_slug":"secure-streaming-onvif-profile-t-https-rtsps-srtp-2","_a3a_prod_post_id":"","_a3a_lang_url_en-us":"","_a3a_lang_url_es-es":""},"categories":[],"segments":[],"mercados":[],"etapas":[],"class_list":["post-82490","articles","type-articles","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/articles\/82490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/articles"}],"about":[{"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/types\/articles"}],"author":[{"embeddable":true,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/articles\/82490\/revisions"}],"predecessor-version":[{"id":82497,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/articles\/82490\/revisions\/82497"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/media\/78568"}],"wp:attachment":[{"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/media?parent=82490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/categories?post=82490"},{"taxonomy":"segments","embeddable":true,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/segments?post=82490"},{"taxonomy":"mercados","embeddable":true,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/mercados?post=82490"},{"taxonomy":"etapas","embeddable":true,"href":"https:\/\/a3aengenharia.com\/es-es\/wp-json\/wp\/v2\/etapas?post=82490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}