Eficiencia y seguridad en protocolos de streaming P2P


Cristóbal Medina López



UAL

I Jornadas de Doctorado en Informática
Universidad de Almería
Spain


SAL P2PSP protocol

Sigue la presentación en la Web


URL para seguir las diapositivas:

http://slides.p2psp.org/2018-02-JDI/



Diapositivas

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones
P2PSP protocol

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


2. El Splitter recibe el stream , lo segmenta en chunks y envía cada uno de ellos a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


2. El Splitter recibe el stream , lo segmenta en chunks y envía cada uno de ellos a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


2. El Splitter recibe el stream , lo segmenta en chunks y envía cada uno de ellos a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


2. El Splitter recibe el stream , lo segmenta en chunks y envía cada uno de ellos a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


2. El Splitter recibe el stream , lo segmenta en chunks y envía cada uno de ellos a un peer distinto.


3. Cada peer envía sus trozos al resto de peers con el fin de que todos tengan el stream completo.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

1. El vídeo se envía en tiempo real al splitter.


2. El Splitter recibe el stream , lo segmenta en chunks y envía cada uno de ellos a un peer distinto.


3. Cada peer envía sus trozos al resto de peers con el fin de que todos tengan el stream completo.


4. Los peers envían el stream al player.

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Google Chromecast


Google Chromecast (GC) es un pequeño dispositivo de bajo coste y consumo, que conectado a una pantalla o a un televisor a través del puerto HDMI puede ampliar sus capacidades con conexión a Internet y reproducción de contenido multimedia en alta definición.


Dispositivo Chromecast

¿Cómo funciona?


Chromecast en Cast developers

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Tecnologías Web que incorpora



HTML5
WebRTC




MSE

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Implementación


Modelo clásico de streaming en Chromecast


Cliente/servidor en Chromecast

Implementación


Un Team P2PSP en Chromecast


Team P2PSP en Chromecast

Implementación


Arquitectura de un peer P2PSP corriendo en Chromecast


Arquitectura peer en chromecast

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Experimentación


Uso de CPU ejecutando P2PSP frente a un modelo Cliente-Servidor en la primera y segunda generación de Google Chromecast


Resultados experimentación

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Pollution Attacks


Se trata de un peer o un conjunto de peer envenenando chunks con el objetivo de modificar el contenido de la retransmisión. Se puede llevar a cabo de multiples formas.


Pollution Attacks


Ataque persistente, selectivo y colaborativo: varios atacantes pueden colaborar para llevar a cabo un ataque selectivo y persistente hacia un peer o un conjunto de peers.


Collaborative Attack

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Estrategia basada en Trusted Peers y Shamir's Secret Sharing


La idea principal es muy simple: “si quieres permanecer en el team debes tener un buen comportamiento con al menos t peers”. Las reglas de comportamiento son:


TP-SSS

Estrategia basada en Trusted Peers y Shamir's Secret Sharing


TP-SSS

1.El Splitter envía un mensaje $eSP^r_{j,i}$.


  • $eSP^r_{j,i}=\{eCH^r_{j,i},\ SH^{r+1}_i\}$

    • $eCH^r_{j,i} = \{C_j, j, P_i, r, E_{K^r_i}[S_{pr}(H(C_j||j||P_i||r))]\}$

    • $SH^{r+1}_i=\{\{SH^{r+1}_i\}_q,\ q=1,\ \ldots,\ n_r\}$

      • $\{SH^{r+1}_i\}_q=\{P_i,P_q, r+1, A^{r+1}_{q,i},S_{pr}(H(P_i||P_q||r+1||A^{r+1}_{q,i}))\}$

Estrategia basada en Trusted Peers y Shamir's Secret Sharing


TP-SSS

1.El Splitter envía un mensaje $eSP^r_{j,i}$.


  • $eSP^r_{j,i}=\{eCH^r_{j,i},\ SH^{r+1}_i\}$

    • $eCH^r_{j,i} = \{C_j, j, P_i, r, E_{K^r_i}[S_{pr}(H(C_j||j||P_i||r))]\}$

    • $SH^{r+1}_i=\{\{SH^{r+1}_i\}_q,\ q=1,\ \ldots,\ n_r\}$

      • $\{SH^{r+1}_i\}_q=\{P_i,P_q, r+1, A^{r+1}_{q,i},S_{pr}(H(P_i||P_q||r+1||A^{r+1}_{q,i}))\}$

2.El peer reconstruye $K^r_i$, descifra el mensaje y verifica la firma.


Estrategia basada en Trusted Peers y Shamir's Secret Sharing


TP-SSS

1.El Splitter envía un mensaje $eSP^r_{j,i}$.


  • $eSP^r_{j,i}=\{eCH^r_{j,i},\ SH^{r+1}_i\}$

    • $eCH^r_{j,i} = \{C_j, j, P_i, r, E_{K^r_i}[S_{pr}(H(C_j||j||P_i||r))]\}$

    • $SH^{r+1}_i=\{\{SH^{r+1}_i\}_q,\ q=1,\ \ldots,\ n_r\}$

      • $\{SH^{r+1}_i\}_q=\{P_i,P_q, r+1, A^{r+1}_{q,i},S_{pr}(H(P_i||P_q||r+1||A^{r+1}_{q,i}))\}$

2.El peer reconstruye $K^r_i$, descifra el mensaje y valida la firma.


3.El peer envía el mensaje descifrado.


  • $PP^r_{i,q}=\left\{CH^r_{j,i},\ \{SH^{r+1}_i\}_q \right\}$

    • $CH^r_{j,i} = \{C_j, j, P_i, r, S_{pr}(H(C_j||j||P_i||r))\}$

Estrategia basada en Trusted Peers y Shamir's Secret Sharing


TP-SSS

1.El Splitter envía un mensaje $eSP^r_{j,i}$.


  • $eSP^r_{j,i}=\{eCH^r_{j,i},\ SH^{r+1}_i\}$

    • $eCH^r_{j,i} = \{C_j, j, P_i, r, E_{K^r_i}[S_{pr}(H(C_j||j||P_i||r))]\}$

    • $SH^{r+1}_i=\{\{SH^{r+1}_i\}_q,\ q=1,\ \ldots,\ n_r\}$

      • $\{SH^{r+1}_i\}_q=\{P_i,P_q, r+1, A^{r+1}_{q,i},S_{pr}(H(P_i||P_q||r+1||A^{r+1}_{q,i}))\}$

2.El peer reconstruye $K^r_i$, descifra el mensaje y valida la firma.


3.El peer envía el mensaje descifrado.


  • $PP^r_{i,q}=\left\{CH^r_{j,i},\ \{SH^{r+1}_i\}_q \right\}$

    • $CH^r_{j,i} = \{C_j, j, P_i, r, S_{pr}(H(C_j||j||P_i||r))\}$

4.El peer verifica el mensaje y almacena el share.

Índice de contenidos


  • P2PSP
    • ¿Qué es?
    • Funcionamiento

  • Eficiencia
    • Google Chromecast
    • Tecnologías Web
    • Implementación
    • Experimentación

  • Seguridad
    • Pollution Attacks
    • Shamir y Trusted Peers
    • Resultados

  • Conclusiones

Resultados


Resultados obtenidos tras un análisis teórico: $\text{MPs} <= N/2$


results sss

Conclusiones


Los dispositivos con recursos limitados que pueden ejecutar un navegador Web como mozilla o Chrome también pueden ser usados para el streaming P2P.



La estandarización y popularización de tecnologías como WebRTC, la mejora de los formatos multimedia y las futuras soluciones para peer detrás de NAT simplificarán el desarrollo de sistemas de streaming P2P heterogéneos.


Conclusiones


  • El ataque más severo es completamente mitigado usando un solo TP, con overhead:

    • Del splitter a los peers $$oSP_r = n_r \times ss$$

    • Entre los Peers $$oPP_r = ss$$

      donde $ss$ es el tamaño de un share y $n_r$ es el tamaño del team

  • Para el resto de ataques (aunque el impacto es bajo), podemos incrementar la efectividad aumentando el número de TPs.


  • El valor óptimo para t es el número de WIPs, pero no es trivial obtenerlo. Por tanto, una alternativa sería un algoritmo para el cálculo de t de un modo adaptativo.

good guys?

¡Gracias!