WA Security WhitePaper (4) (1) - Español

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Descripción general del cifrado de WhatsApp Informe

técnico
Versión 3 Actualizado el 22 de octubre de 2020
Versión 2 Actualizado el 19 de diciembre de 2017
Versión 1 Publicado originalmente el 5 de abril de 2016
Contenido
Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Términos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Registro de clientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Inicio de la configuración de la sesión. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Recepción de la configuración de la sesión. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Intercambio de mensajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Medios de transmisión y otros accesorios. . . . . . . . . . . . . . . . . 6
Mensajes grupales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Configuración de llamada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Estados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Ubicación en vivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Verificación de claves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Seguridad en el transporte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Definición del cifrado de un extremo a otro. . . . . . . . . . . . . . . . . . . . . . . . 11
Implementación en servicios de WhatsApp. . . . . . . . . . . . . . . . . . . 11 El
cifrado no tiene interruptor de apagado. . . . . . . . . . . . . . . . . . . . . . . . . 13
Visualización del estado de cifrado de un extremo a otro. . . . . . . . . . . . . . . . . . 13
Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
Introducción
Este informe técnico proporciona una explicación técnica del
sistema de cifrado de extremo a extremo de WhatsApp . Visite el sitio web de WhatsApp en www
.whatsapp .com /
security para obtener más información. WhatsApp Messenger permite a las personas intercambiar
mensajes (incluidos chats, chats
grupales, imágenes, videos, mensajes de voz y archivos), compartir publicaciones de estado
y realizar llamadas de WhatsApp en todo el mundo. Los mensajes de WhatsApp,
las llamadas de voz y las videollamadas entre un remitente y un receptor que utilizan el software
cliente de WhatsApp
lanzado después del 31 de marzo de 2016 utilizan el protocolo de señal que se describe a
continuación. Consulte
"Definición de cifrado de extremo a extremo" para obtener información sobre qué comunicaciones
están cifradas de extremo a extremo.
El Protocolo de señal, diseñado por Open Whisper Systems, es la base
del cifrado de extremo a extremo de WhatsApp. Este protocolo de cifrado de extremo a extremo
está
diseñado para evitar que terceros y WhatsApp tengan acceso de texto sin formato
a mensajes o llamadas. Es más, incluso si las claves de cifrado del dispositivo de un usuario
alguna vez se ven comprometidas físicamente, no se pueden utilizar para retroceder en el tiempo
para
descifrar mensajes transmitidos previamente. Este documento ofrece una descripción general del
Protocolo de señales y su uso en
WhatsApp. Términos
Tipos de claves públicas
• Par de claves de identidad: un par de claves Curve25519 a largo plazo,
generado en el momento de la instalación. • Clave previa firmada: un par de claves Curve25519 de
mediano plazo,
generado en el momento de la instalación, firmado por la Clave de identidad y rotado
periódicamente. • Claves previas de un solo uso: una cola de pares de claves Curve25519 para un
uso único , que se generan en el momento de la instalación y se reponen según sea necesario.
Tipos de clave de sesión
• Clave raíz: un valor de 32 bytes que se utiliza para crear claves en cadena. • Clave de cadena: un
valor de 32 bytes que se utiliza para crear
claves de mensaje . • Clave de mensaje: un valor de 80 bytes que se utiliza para cifrar el
contenido del mensaje . Se utilizan 32 bytes para una clave AES-256, 32 bytes para una
clave HMAC-SHA256 y 16 bytes para un IV.
3
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
Registro del cliente
En el momento del registro, un cliente de WhatsApp transmite su
clave de identidad pública , clave previa firmada pública (con su firma) y un lote de
claves previas únicas públicas al servidor. El servidor de WhatsApp
almacena estas claves públicas asociadas al identificador del usuario.
Inicio de la configuración de la sesión
Para comunicarse con otro usuario de WhatsApp, un cliente de WhatsApp
primero debe establecer una sesión cifrada. Una vez que
se establece la sesión , los clientes no necesitan reconstruir una nueva sesión
entre ellos hasta que el estado de la sesión existente se pierda a través de un
evento externo, como la reinstalación de una aplicación o un cambio de dispositivo. Para
establecer una sesión:
1. El cliente iniciador ("iniciador") solicita la clave de identidad pública,
la clave previa firmada pública y una clave previa única pública
para el destinatario. 2. El servidor devuelve los valores de clave pública solicitados. Una
clave previa de un solo uso solo se usa una vez, por lo que se elimina del almacenamiento del
servidor
después de ser solicitada. Si el último lote de
claves previas de un solo uso del destinatario se ha consumido y el destinatario no las ha
reabastecido
, no se devolverá ninguna clave previa de un solo uso. 3. El iniciador guarda la clave de identidad
del destinatario como un destinatario, la
clave previa firmada como destinatario y la clave previa
única como destinatario. 4. El iniciador genera un par de claves efímero Curve25519, Einitiator. 5.
El iniciador carga su propia clave de identidad como iniciador. 6. El iniciador calcula un secreto
maestro como master_secret =
ECDH (Iinitiator, Srecipient) || ECDH (iniciador, destinatario) ||
ECDH (iniciador, receptor) || ECDH (Iniciador, Orecipiente).
Si no hay una clave previa única, se omite el ECDH final.
7. El iniciador usa HKDF para crear una clave raíz y claves en cadena a
partir de master_secret. 4
Descripción general del cifrado de WhatsApp
22 DE OCTUBRE DE 2020
Configuración de la sesión de recepción
Después de crear una sesión de cifrado de larga duración, el iniciador puede
comenzar a enviar mensajes de inmediato al destinatario, incluso si el destinatario está
desconectado.
Hasta que el destinatario responda, el iniciador incluye la información (en el
encabezado de todos los mensajes enviados) que el destinatario requiere para crear una
sesión correspondiente . Esto incluye el iniciador y el iniciador del iniciador. Cuando el destinatario
recibe un mensaje que incluye
información sobre la configuración de la sesión :
1. El destinatario calcula el master_secret correspondiente utilizando
sus propias claves privadas y las claves públicas anunciadas en el encabezado del
mensaje entrante. 2. El destinatario elimina la clave previa de un solo uso utilizada por el iniciador.
3. El iniciador usa HKDF para derivar una clave raíz y
claves en cadena correspondientes del master_secret. Intercambio de mensajes
Una vez que se ha establecido una sesión, los clientes intercambian mensajes que están
protegidos con una clave de mensaje utilizando AES256 en modo CBC para cifrado
y HMAC-SHA256 para autenticación. La clave de mensaje cambia para cada mensaje transmitido
y es efímera, de
modo que la clave de mensaje utilizada para cifrar un mensaje no se puede reconstruir a
partir del estado de sesión después de que se haya transmitido o recibido un mensaje. La clave de
mensaje se deriva de la clave en cadena de un remitente que "
avanza " con cada mensaje enviado. Además, se realiza un nuevo acuerdo ECDH
con cada viaje de ida y vuelta de mensaje para crear una nueva clave de cadena. Esto
proporciona un secreto avanzado a través de la combinación de un
"trinquete hash" inmediato y un "trinquete DH" de ida y vuelta.
Cálculo de una clave de mensaje a partir de una clave de cadena
Cada vez que el
remitente de un mensaje necesita una clave de mensaje nueva , se calcula como:
1. Clave de mensaje = HMAC-SHA256 (Clave en cadena, 0x01). 2. Luego, la clave de cadena se
actualiza como clave de cadena =
HMAC-SHA256 (clave de cadena, 0x02). Esto hace que la clave de la cadena se mueva hacia
adelante y
también significa que una clave de mensaje almacenada no se puede utilizar para
derivar valores actuales o pasados ​de la clave de la cadena. 5
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
Cálculo de una clave de cadena a partir de una clave raíz
Cada vez que se transmite un mensaje,
se anuncia una clave pública efímera Curve25519 junto con él. Una vez que se recibe una
respuesta, una nueva clave de cadena
y clave raíz se calculan como:
1. ephemeral_secret =
ECDH (emisor efímero, destinatario efímero). 2. Clave de cadena, clave raíz =
HKDF (clave raíz, ephemeral_secret). Una cadena solo se usa para enviar mensajes de un usuario,
por lo que las claves de mensaje
no se reutilizan. Debido a la forma en que se
calculan las claves de mensaje y las claves en cadena , los mensajes pueden llegar retrasados,
fuera de servicio o pueden perderse por completo
sin ningún problema. Transmisión de medios y
otros
archivos adjuntos Los archivos adjuntos grandes de cualquier tipo (video, audio, imágenes o
archivos) también están
cifrados de extremo a extremo:
1. El usuario de WhatsApp que envía un mensaje ("remitente") genera
una clave AES256 efímera de 32 bytes y una
clave HMAC-SHA256 efímera de 32 bytes . 2. El remitente encripta el adjunto con la clave AES256
en
modo CBC con un IV aleatorio, luego agrega un MAC del texto cifrado usando
HMAC-SHA256.
3. El remitente carga el archivo adjunto cifrado en un almacén de blobs. 4. El remitente transmite
un mensaje cifrado normal al destinatario
que contiene la clave de cifrado, la clave HMAC, un hash SHA256 del
blob cifrado y un puntero al blob en el almacén de blobs. 5. El destinatario descifra el mensaje,
recupera el blob cifrado
del almacén de blobs, verifica el hash SHA256 del mismo, verifica la MAC
y descifra el texto sin formato. Mensajes grupales
Las aplicaciones tradicionales de mensajería sin cifrar suelen emplear una “distribución en
abanico del lado del servidor”
para los mensajes grupales. Un cliente que desea enviar un mensaje a un grupo de usuarios
transmite un solo mensaje, que luego es distribuido N veces a los N
miembros diferentes del grupo por el servidor. 6
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
Esto contrasta con el "abanico de distribución del lado del cliente", en el que un cliente transmitiría
un
solo mensaje N veces a los N miembros del grupo diferentes. Los mensajes a los grupos de
WhatsApp se basan en las sesiones cifradas por pares
descritas anteriormente para lograr una distribución eficiente del lado del servidor para la mayoría
de los mensajes
enviados a los grupos. Esto se logra utilizando el componente "Claves del remitente" del
Protocolo de mensajería de señal. La primera vez que un miembro de un grupo de WhatsApp envía
un mensaje a un grupo:
1. El remitente genera una clave de cadena aleatoria de 32 bytes. 2. El remitente genera un
par de claves de firma Curve25519 al azar . 3. El remitente combina la clave en cadena de 32 bytes
y la clave pública de la clave
de firma en un mensaje de clave del remitente. 4. El remitente encripta individualmente la clave del
remitente para cada
miembro del grupo, utilizando el protocolo de mensajería por pares
explicado anteriormente. Para todos los mensajes posteriores al grupo:
1. El remitente obtiene una clave de mensaje de la clave en cadena y
actualiza la clave en cadena. 2. El remitente encripta el mensaje usando AES256 en modo CBC. 3.
El remitente firma el texto cifrado con la clave de firma. 4. El remitente transmite el mensaje de
texto cifrado único al servidor,
que se distribuye por el lado del servidor a todos los participantes del grupo.
El "trinquete de control" de la clave en cadena del remitente del mensaje proporciona un
secreto hacia adelante . Cada vez que un miembro del grupo se va, todos los participantes del
grupo borran su
clave de remitente y comienzan de nuevo. Configuración de
llamadas Las llamadas de voz y video de WhatsApp también están encriptadas de un extremo a
otro. Cuando un
usuario de WhatsApp inicia una llamada de voz o video:
1. El iniciador crea una sesión encriptada con el destinatario
(como se describe en la Sección Inicio de la configuración de la sesión), si aún no
existe una. 2. El iniciador genera un secreto maestro SRTP aleatorio de 32 bytes.
3. El iniciador transmite un mensaje cifrado al destinatario que
indica una llamada entrante y contiene el secreto maestro SRTP. 4. Si el respondedor responde a la
llamada, se produce una llamada encriptada SRTP. 7
Descripción general del cifrado de WhatsApp
22 de octubre de 2020

Estados Los
estados de WhatsApp se cifran de la misma manera que los mensajes grupales.
El primer estado enviado a un conjunto determinado de destinatarios sigue la misma secuencia
de pasos que la primera vez que un miembro del grupo de WhatsApp envía un mensaje a un
grupo. Del mismo modo, los estados posteriores enviados al mismo conjunto de destinatarios
siguen
la misma secuencia de pasos que todos los mensajes posteriores a un grupo. Cuando
un remitente de estado elimina un receptor, ya sea cambiando la
configuración de privacidad del estado o eliminando un número de su libreta de direcciones, el
remitente de estado
borra su Clave de remitente y comienza de nuevo.
Ubicación en
vivo Los mensajes y las actualizaciones de ubicación en vivo se cifran de la misma manera que los
mensajes grupales. El primer mensaje de ubicación en vivo o actualización enviada sigue la
misma secuencia de pasos que la primera vez que un miembro del grupo de WhatsApp envía
un mensaje a un grupo. Sin embargo, la ubicación en vivo exige un gran volumen de
transmisiones de ubicación y actualizaciones con entrega con pérdida donde los receptores
pueden esperar ver
grandes saltos en el número de trinquetes o recuentos de iteraciones. El protocolo de señal
utiliza un algoritmo de tiempo lineal para el trinquete que es demasiado lento para esta aplicación.
Este documento ofrece un algoritmo de trinquete rápido para resolver este problema.
Las llaves de cadena son actualmente unidimensionales. Para trincar N pasos se necesitan N
cálculos
. Las claves de cadena se indican como CK (recuento de iteraciones) y las
claves de mensaje como MK (recuento de iteraciones). CK (0)

CK (1)

CK (N-1) MK (N-1)

Considere una extensión donde mantenemos dos cadenas de llaves de cadena:


CK1 (0) CK2 (0)

CK1 (1) CK2 (1)

CK2 (M-1) MK (M-1)

8
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
En este ejemplo, las claves de mensaje siempre se derivan de CK2. Un receptor
que necesita trincar en una gran cantidad puede omitir M iteraciones a la vez
(donde M es un entero positivo constante acordado) al presionar CK1
y generar un nuevo CK2:
CK1 (0)

CK1 (1) CK2 (0) MK (M)

CK1 (2) CK2 (1)


Un valor de CK2 puede incrementarse hasta M veces. Para trincar N pasos se necesitan hasta
[N ÷ M] + M cálculos. Después de que un remitente crea una clave de mensaje y encripta un
mensaje con ella, todas las
claves de cadena en la ruta que condujo a su creación deben destruirse para preservar el
secreto de reenvío. CK1 (0)

CK1 (1) CK2 (0) MK (M)

CK1 (2) CK2 (1)

Generalizando a las dimensiones D, un remitente puede producir D claves de cadena iniciales.


Cada clave de la cadena, excepto la primera, se deriva de la clave de la cadena anterior utilizando
una
función unidireccional distinta: estas son las flechas que apuntan a la derecha en el diagrama de
arriba. Los remitentes distribuyen todas las claves de la cadena D a los receptores que las
necesitan,
excepto como se indica a continuación. RNG CK1 (0) CK2 (0)… CKD (0)
Los valores legales para D son potencias positivas de dos menores o iguales al número
de bits en el contador de iteraciones: 1, 2, 4, 8, 16 y 32. Los implementadores seleccionan un
valor de D como una compensación explícita CPU-memoria (o CPU-ancho de banda de red).
Si una clave de cadena CKj (para j en [1, D]) tiene un recuento de iteraciones de M, no se puede
utilizar. Este algoritmo restaura las claves de la cadena a un estado utilizable:
1. Si j = 1, falla porque el recuento de iteraciones ha alcanzado su límite. 2. Derivar CKj de CKj-1
3. Trinquete CKj-1 una vez, recirculando si es necesario. Pasar de un recuento de iteraciones a otro
nunca hace trincar una sola
clave de cadena más de M veces. Por lo tanto, ninguna operación de trinquete requiere más de
D × M pasos. 9
Descripción general del cifrado de WhatsApp
22 DE OCTUBRE DE 2020
Signal usa diferentes funciones para el cálculo de la clave del mensaje versus el trinquete
, ya que ambos provienen de la misma clave de cadena. En esta notación, {x} se
refiere a una matriz de bytes que contiene un solo byte x. MK = HmacSHA256 (CKj (i), {1})
CKj (i + 1) = HmacSHA256 (CKj (i), {2})

Cada dimensión debe usar una función diferente. Las claves se inicializan como:
j = 1: CK1 (0) RNG (32)
j> 1: CKj (0) HmacSHA256 (CKj-1 (0), {j + 1})
Y con trinquete como:
CKj (i) HmacSHA256 ( CKj (i-1), {j + 1})
Verificación de claves Los
usuarios de WhatsApp además tienen la opción de verificar las claves de los otros
usuarios con los que se están comunicando en contextos cifrados de extremo a extremo
para que puedan confirmar que un tercero no autorizado (o WhatsApp)
no ha iniciado un ataque de intermediario. Esto se puede hacer escaneando un
código QR o comparando un número de 60 dígitos.
El código QR contiene:
1. Una versión. 2. El identificador de usuario para ambas partes.
3. La clave de identidad pública completa de 32 bytes para ambas partes. Cuando cualquiera de
los usuarios escanea el código QR del otro, las claves se comparan para asegurarse de
que lo que está en el código QR coincida con la clave de identidad recuperada del
servidor. El número de 60 dígitos se calcula concatenando las dos
huellas digitales numéricas de 30 dígitos para la clave de identidad de cada usuario. Para calcular
una
huella digital numérica de 30 dígitos :
1. De forma iterativa, SHA-512 hash la clave de identidad pública y el identificador de usuario
5200 veces.
2. Tome los primeros 30 bytes de la salida hash final.
3. Divida el resultado de 30 bytes en seis fragmentos de 5 bytes.
4. Convierta cada fragmento de 5 bytes en 5 dígitos interpretando cada
fragmento de 5 bytes como un entero sin signo big-endian y reduciéndolo módulo
100000. 5. Concatenar los seis grupos de cinco dígitos en treinta dígitos.
10
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
Seguridad en el transporte La
comunicación entre los clientes de WhatsApp y los servidores de chat de WhatsApp
se distribuye en capas dentro de un canal cifrado separado. En KaiOS, iPhone y
Android, esos clientes con capacidad de cifrado de extremo a extremo utilizan Noise Pipes con
Curve25519, AES-GCM y SHA256 del Noise Protocol Framework
para conexiones interactivas de larga duración. Esto proporciona a los clientes algunas
propiedades agradables:
1. Configuración y reanudación de conexión liviana extremadamente rápida. 2. Cifra los metadatos
para ocultarlos a los observadores de la red no autorizados.
No se revela información sobre la identidad del usuario que se conecta. 3. No se almacenan
secretos de autenticación de clientes en el servidor. Los clientes se
autentican mediante un par de claves Curve25519, por lo que el servidor
solo almacena la clave de autenticación pública de un cliente. Si la
base de datos de usuarios del servidor alguna vez se ve comprometida, no
se revelarán credenciales de autenticación privadas . Nota: En los casos en que un usuario
empresarial delega la operación de su
cliente API empresarial a un proveedor, ese proveedor tendrá acceso a sus
claves privadas, incluso si ese proveedor es Facebook. Sin embargo, estas
claves privadas aún no se almacenarán en el servidor de chat de WhatsApp. Consulte los
detalles a continuación. Definición de cifrado de
extremo a extremo WhatsApp define el cifrado de extremo a extremo como las comunicaciones
que permanecen
cifradas desde un dispositivo controlado por el remitente a uno controlado por el
destinatario, donde ningún tercero, ni siquiera WhatsApp o nuestra empresa matriz
Facebook, pueden acceder. el contenido intermedio. Un tercero en este contexto
significa cualquier organización que no sea el remitente o el usuario destinatario que
participa directamente en la conversación. Implementación en los
servicios de WhatsApp
Esto es sencillo cuando se trata de dos personas que se comunican en
sus teléfonos o computadoras usando WhatsApp Messenger o la
aplicación WhatsApp Business: el punto final de WhatsApp de cada persona se ejecuta en un
dispositivo
que controlan. 11
Descripción general del cifrado de WhatsApp
22 de octubre de 2020
Algunas organizaciones pueden usar la API de WhatsApp Business, una aplicación
que se puede implementar como un punto final de WhatsApp en un servidor. La
API empresarial permite a esas organizaciones enviar y recibir
mensajes mediante programación. WhatsApp considera que las comunicaciones con los usuarios
de la API empresarial que administran
el punto final de la API en los servidores que controlan están encriptadas de un extremo a otro, ya
que
no hay acceso de terceros al contenido entre los puntos finales.
Algunas organizaciones pueden optar por delegar la administración de su
punto final de la API de WhatsApp Business a un proveedor. En estos casos, la comunicación aún
utiliza el mismo cifrado de protocolo de señal y los clientes en o después de la versión
v2.31 están configurados para generar claves privadas dentro del
punto final de API controlado por el proveedor . Sin embargo, debido a que el usuario de la API de
WhatsApp Business ha
elegido a un tercero para administrar su punto final, WhatsApp no ​considera
estos mensajes encriptados de un extremo a otro.
En 2021, las organizaciones que utilizan la API empresarial podrán designar a
la empresa matriz de WhatsApp, Facebook, como el proveedor que opera el
punto final de la API empresarial en su nombre. Dado que dichos mensajes no se envían
directamente a un punto final controlado por la organización, WhatsApp no
considera que los chats con organizaciones que eligen usar Facebook para operar
su punto final API estén encriptados de un extremo a otro.
12
Descripción general del cifrado de WhatsApp
22 de octubre de 2020 El
cifrado no tiene interruptor de apagado
Todos los chats utilizan el mismo protocolo de señal que se describe en este documento técnico,
independientemente
de su estado de cifrado de extremo a extremo. El servidor de WhatsApp no ​tiene acceso a
las claves privadas del cliente, aunque si un usuario empresarial delega la operación de su
cliente de API empresarial a un proveedor, ese proveedor tendrá acceso a sus
claves privadas , incluso si ese proveedor es Facebook.
Al conversar con una organización que utiliza la API empresarial, WhatsApp
determina el estado de cifrado de un extremo a otro basándose únicamente en la
elección de la organización de quién opera su punto final.
El estado de cifrado de un chat cifrado de extremo a extremo no puede cambiar sin que
el cambio sea visible para el usuario.
Visualización del
estado de cifrado de extremo a extremo
En todos nuestros servicios, WhatsApp aclara el estado de cifrado de extremo a extremo de un
chat. Si el teléfono del usuario ve que se está comunicando con un punto final de API
que delega el funcionamiento de su API a un proveedor, el teléfono se lo mostrará al
usuario. El usuario también puede verificar el estado del cifrado dentro del chat o
en la sección de información comercial de su aplicación. Estos cambios entrarán en vigencia en
todas las versiones de WhatsApp después de enero de 2021. Conclusión
Todos los mensajes de WhatsApp se envían con el mismo protocolo de señal descrito
anteriormente,
y WhatsApp considera que todos los mensajes de un dispositivo controlado por el remitente
a uno cuyo dispositivo está controlado por el destinatario están encriptados de extremo a
extremo.
Las comunicaciones con un destinatario que elige utilizar un proveedor para administrar su
punto final de API no se consideran cifradas de extremo a extremo. Si esto ocurre, WhatsApp
se lo deja claro a los usuarios dentro del chat. La biblioteca de protocolo de señales utilizada por
WhatsApp se basa en la
biblioteca de código abierto , disponible aquí:
http://github.com/whispersystems/libsignal-protocol-java/
13
Descripción general del cifrado de WhatsApp
22 de octubre de 2020

También podría gustarte