Análisis del protocolo P2PSP: ejecución en Google Chromecast y propuesta para proteger la integridad del contenido


Máster en Informática Avanzada e Industrial


Cristóbal Medina-López
Director: Vicente González-Ruiz



UAL

Universidad de Almería


Curso 2014/2015

Sigue la presentación en la Web


URL para seguir las diapositivas:

http://slides.p2psp.org/TFM-CML/



Diapositivas

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro
P2PSP protocol

¿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 video se envía en tiempo real al splitter.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

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


2. El Splitter divide el stream en varios trozos y cada trozo se envía a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

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


2. El Splitter divide el stream en varios trozos y cada trozo se envía a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

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


2. El Splitter divide el stream en varios trozos y cada trozo se envía a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

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


2. El Splitter divide el stream en varios trozos y cada trozo se envía a un peer distinto.


¿Cómo funciona el protocolo P2PSP?


Un Team P2PSP


A P2PSP Team

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


2. El Splitter divide el stream en varios trozos y cada trozo se envía 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 video se envía en tiempo real al splitter.


2. El Splitter divide el stream en varios trozos y cada trozo se envía 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
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

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

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

¿Por qué Chromecast?


Fácil de usar

Fácil de usar: acceder al contenido es tan simple como enviar la orden desde un dispositivo secundario como un smartphone, tablet u ordenador.



HTML5

Etiqueta <video>: permite incrustar contenido multimedia directamente, sin necesidad de plugins.



WebRTC

WebRTC: define los recursos PeerConnection y DataChannel. Juntos, permiten establecer un canal de datos bidireccional entre los navegadores mediante socket sobre UDP.

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Implementación


Un Team P2PSP en Chromecast


Team P2PSP en Chromecast

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Ataques de contaminación


Los ataques de contaminación o Pollution attacks ocurren cuando un peer o un conjunto de peer modifican el contenido del stream que retransmiten. Se pueden llevar a cabo de diferentes formas.


Pollution Attacks


Persistent attack: un atacante envenena todos los chunks recibidos desde el splitter y los envia al team al completo.


Persistent Attack

Pollution Attacks


On-Off attack: el atacante solo envenena algunos chunks.


On-Off Attack

Pollution Attacks


Selective attack: envenenar los chunks dirigidos a un único peer o a un conjunto de ellos.


Selective Attack

Pollution Attacks


Collaborative attack: varios atacantes pueden colaborar para producir un ataque on-off o selectivo a un conjunto de peers.


Collaborative Attack

Pollution Attacks


Hand-wash attack: dejar el team y unirse de nuevo con otro alias para continuar el ataque.


Hand-wash Attack

Pollution Attacks


Bad-mouth attack: culpar a peer legítimos de no enviar chunks o enviarlos envenenados.


Bad-mouth Attack

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Propuestas


Presentamos dos estrategias diferentes con el objetivo de mitigar el impacto de ataques de contaminación del stream o ataques relacionados usando sistemas de confianza, firmas digitales y peer de confianza.



1. Strategy based on Trusted Peers.
(STrPe)


Trusted Peers

2. Strategy based on Trusted Peers and Digital Signatures.
(STrPe-DS)


Trusted Peers and Digital Signatures

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Strategy based on Trusted Peers


¿Cómo funciona?


STrPe

Strategy based on Trusted Peers.


¿Cómo funciona?


STrPe

1. Sólo el splitter sabe quienes son los TPs en el team.


Strategy based on Trusted Peers.


¿Cómo funciona?


STrPe

1. Sólo el splitter sabe quiénes son los TPs en el team.


2. Cada TP crea un hash para cada chunk incluyendo el número de chunk y el punto extremo del emisor. Después envía el mensaje al splitter.


Strategy based on Trusted Peers.


¿Cómo funciona?


STrPe

1. Sólo el splitter sabe quiénes son los TPs en el team.


2. Cada TP crea un hash para cada chunk incluyendo el número de chunk y el punto extremo del emisor. Después envía el mensaje al splitter.


3. El Splitter comprueba si los chunks han sido alterados.


Strategy based on Trusted Peers.


¿Cómo funciona?


STrPe

1. Sólo el splitter sabe quiénes son los TPs en el team.


2. Cada TP crea un hash para cada chunk incluyendo el número de chunk y el punto extremo del emisor. Después envía el mensaje al splitter.


3. El splitter comprueba si los chunks han sido alterados.


4. El splitter sabe quién es el encargado de reenviar un determinado chunk.


Strategy based on Trusted Peers.


¿Cómo funciona?


STrPe

1. Sólo el splitter sabe quiénes son los TPs en el team.


2. Cada TP crea un hash para cada chunk incluyendo el número de chunk y el punto extremo del emisor. Después envía el mensaje al splitter.


3. El splitter comprueba si los chunks han sido alterados.


4. El splitter sabe quién es el encargado de reenviar un determinado chunk.


5. El atacante es expulsado del team.


Strategy based on Trusted Peers.


Problemas:


  • Los peers no saben si están siendo envenenados.


  • Si un atacante sabe quienes son los trusted peers, el sistema es completamente vulnerable al Selective Attack.


Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

1.Cuando un peer se une al team recibe la clave pública del splitter.


Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

1.Cuando un peer se une al team recibe la clave pública del splitter.


2.Para cada chunk el splitter envía un mensaje como este:
{chunk, nChunk, dst, S priv (H(chunk + nChunk + dst))}.


Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

1.Cuando un peer se une al team recibe la clave pública del splitter.


2.Para cada chunk el splitter envía un mensaje como este:
{chunk, nChunk, dst, S priv (H(chunk + nChunk + dst))}.


3.Los peers verifican dst y comprueban si el valor del hash es correcto.


Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

1.Cuando un peer se une al team recibe la clave pública del splitter.


2.Para cada chunk el splitter envía un mensaje como este:
{chunk, nChunk, dst, S priv (H(chunk + nChunk + dst))}.


3.Los peers verifican dst y comprueban si el valor del hash es correcto.


4.El splitter solicita periodicamente la lista de peers eliminados.


Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

1.Cuando un peer se une al team recibe la clave pública del splitter.


2.Para cada chunk el splitter envía un mensaje como este:
{chunk, nChunk, dst, S priv (H(chunk + nChunk + dst))}.


3.Los peers verifican dst y comprueban si el valor del hash es correcto.


4.El splitter solicita periodicamente la lista de peers eliminados.


5.Los peers eliminados por cualquier TP son directamente expulsados por el splitter.


Strategy based on Trusted Peers and Digital Signatures


Ha sido diseñada para mitigar el ataque selectivo y para identificar los chunks envenenados usando firmas digitales. Las reglas de comportamiento son:


STrPe-DS

1.Cuando un peer se une al team recibe la clave pública del splitter.


2.Para cada chunk el splitter envía un mensaje como este:
{chunk, nChunk, dst, S priv (H(chunk + nChunk + dst))}.


3.Los peers verifican dst y comprueban si el valor del hash es correcto.


4.El splitter solicita periodicamente la lista de peers eliminados.


5.Los peers eliminados por cualquier TP son directamente expulsados por el splitter.


6.El splitter tiene que decidir expulsar al peer basándose en la información recibida de peers legítimos o de peers atacantes.


Strategy based on Trusted Peers and Digital Signatures


Problema:



  • Tomar una decisión para expulsar al atacante no es una tarea fácil.


Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

¿Cómo tomar una decisión para expulsar a los peers del team?



Attack 1

Selective Attack


Attack 2

Bad-mouth Attack



Si tres peers están quejándose de otro peer es dificil para el splitter saber si son tres atacantes intentando expulsar a un peer legítimo o si realmente es un atacante envenenando a tres peer bien intencionados.

Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Métodos de no-repudio


El objetivo es demostrar la integridad y el origen de los datos.


Non-repudiation

Métodos de no-repudio


El objetivo es demostrar la integridad y el origen de los datos.


Non-repudiation

Usando Trusted Third Parties (TTPs). [1]
No está en consonancia con la filosofía P2P.



Métodos de no-repudio


El objetivo es demostrar la integridad y el origen de los datos.


Non-repudiation

Usando Trusted Third Parties (TTPs). [1]
No está en consonancia con la filosofía P2P.



Existen métodos de no repudio sin TTPs pero consideran que ambas partes están interesadas en el contenido y el número de mensajes necesarios es normalmente muy alto. [2]
El atacante podría estár interesado en envenenar el contenido pero no en el contenido en sí mismo.



Métodos de no-repudio


El objetivo es demostrar la integridad y el origen de los datos.


Non-repudiation

Usando Trusted Third Parties (TTPs). [1]
No está en consonancia con la filosofía P2P.



Existen métodos de no repudio sin TTPs pero consideran que ambas partes están interesadas en el contenido y el número de mensajes necesarios es normalmente muy alto. [2]
El atacante podría estár interesado en envenenar el contenido pero no en el contenido en sí mismo.






Actualmente no existe un método de no-repudio efectivo que permita el splitter decidir quién es el atacante.



Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Métodos basados en la confianza


Debido a la ausencia de un método de no-repudio, esta es la solución más usada. [3] [4] [5]


Non-repudiation

Métodos basados en la confianza


Debido a la ausencia de un método de no-repudio, esta es la solución más usada. [3] [4] [5]


Non-repudiation

Modelos estadísticos.



Métodos basados en la confianza


Debido a la ausencia de un método de no-repudio, esta es la solución más usada. [3] [4] [5]


Non-repudiation

Modelos estadísticos.



Redes bayesianas.



Métodos basados en la confianza


Debido a la ausencia de un método de no-repudio, esta es la solución más usada. [3] [4] [5]


Non-repudiation

Modelos estadísticos.



Redes bayesianas.



Machine learning.



Métodos basados en la confianza


Debido a la ausencia de un método de no-repudio, esta es la solución más usada. [3] [4] [5]


Non-repudiation

Modelos estadísticos.



Redes bayesianas.



Machine learning.



...



Métodos basados en la confianza


Debido a la ausencia de un método de no-repudio, esta es la solución más usada. [3] [4] [5]


Non-repudiation

Modelos estadísticos.



Redes bayesianas.



Machine learning.



...






Los métodos basados en la confianza pueden producir resultados falsos-positivos o falsos negativos.



Índice de contenidos


  • P2PSP
  • Adaptación a Google Chromecast
    • Google Chromecast
    • Tecnologías Web
    • Implementación

  • Ataques a la integridad del contenido
    • Propuestas
      • STrPe
      • STrPe-DS

    • Expulsar a los peers
      • Métodos de no-repudio
      • Métodos basados en la confianza

    • Trabajo futuro

Trabajo futuro


¿Y si existiera un método que evite los resultados falsos positivos y falsos negativos?


Non-repudiation

Sin TTPs.



Rápida convergencia.



100% de éxito.



Estamos trabajando en ello!



Gracias!