Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions es/xchat/cryptography-primer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ X Chat usa tres tipos de material de claves, cada uno con un propósito específ

Cuando alguien te agrega a una conversación, cifra la clave de conversación usando tu clave pública de identidad. Solo tu clave privada de identidad puede descifrarla.

Las mitades públicas se registran y descubren a través de las APIs de **claves públicas** de la plataforma (consulta Encryption keys en la referencia de la API). Las mitades privadas permanecen dentro del Chat XDK (por ejemplo, mediante la [copia de seguridad segura de claves](#copia-de-seguridad-segura-de-claves-almacenamiento-distribuido-de-claves) o un blob de claves cuidadosamente protegido).
Las mitades públicas se registran y descubren a través de las APIs de **clave pública** de la plataforma (consulta Encryption keys en la referencia de la API). Las mitades privadas permanecen dentro del Chat XDK (por ejemplo, mediante la [copia de seguridad segura de claves](#copia-de-seguridad-segura-de-claves-almacenamiento-distribuido-de-claves) o un blob de claves cuidadosamente protegido).

### 2. Par de claves de firma

Expand All @@ -75,7 +75,7 @@ Las mitades públicas se registran y descubren a través de las APIs de **claves
| **Clave pública de firma** | Se comparte con otros; se usa para verificar tus firmas |
| **Clave privada de firma** | Se mantiene en secreto; se usa para firmar tus mensajes |

Cuando envías un mensaje, se firma con tu clave privada de firma. Los destinatarios verifican usando tu clave pública de firma (también publicada mediante las APIs de claves públicas). El Chat XDK firma como parte del cifrado de un mensaje y puede verificar al descifrar cuando proporcionas el material de clave pública del remitente.
Cuando envías un mensaje, se firma con tu clave privada de firma. Los destinatarios verifican usando tu clave pública de firma (también publicada mediante las APIs de clave pública). El Chat XDK firma como parte del cifrado de un mensaje y puede verificar al descifrar cuando proporcionas el material de clave pública del remitente.

### 3. Clave de conversación

Expand All @@ -88,7 +88,7 @@ Cuando envías un mensaje, se firma con tu clave privada de firma. Los destinata
| **Compartida entre participantes** | Todos los participantes que deberían leer la conversación tienen una copia |
| **Versionada** | Las claves pueden rotarse; las apps deberían llevar registro de las versiones a lo largo del tiempo |

Las claves de conversación se generan cuando se configura una conversación o cuando las claves rotan. Cada participante recibe una **copia cifrada** de la clave, producida con su clave pública de identidad. Después de descifrar tu copia una vez, conservas la clave de conversación **en bruto** y la usas para cifrar mensajes (y [multimedia](/xchat/media)) de forma rápida. La configuración de esas copias para una conversación se hace mediante el Chat XDK junto con los endpoints de **claves** de conversación—se recorre en [Primeros pasos](/xchat/getting-started#4-set-up-conversation-keys).
Las claves de conversación se generan cuando se configura una conversación o cuando las claves rotan. Cada participante recibe una **copia cifrada** de la clave, producida con su clave pública de identidad. Después de descifrar tu copia una vez, conservas la clave de conversación **en bruto** y la usas para cifrar mensajes (y [multimedia](/xchat/media)) de forma rápida. La configuración de esas copias para una conversación se hace mediante el Chat XDK junto con los endpoints de **clave** de conversación—se recorre en [Primeros pasos](/xchat/getting-started#4-set-up-conversation-keys).

---

Expand Down Expand Up @@ -143,9 +143,9 @@ Un desafío central del cifrado de extremo a extremo es la **distribución de cl

Cuando se prepara una conversación para mensajería:

1. Se genera una clave de conversación aleatoria (en el Chat XDK)
2. Para **cada participante**, esa clave se cifra dirigida a su **clave pública de identidad**
3. Esas copias cifradas se almacenan y entregan mediante las APIs de Chat de X
1. El Chat XDK genera una clave de conversación aleatoria
2. El Chat XDK cifra esa clave dirigida a la **clave pública de identidad de cada participante**
3. Tu app publica esas copias cifradas a través de las APIs de Chat de X
4. Cada participante descifra **su** copia con su clave privada de identidad (en el Chat XDK)

X solo manipula las copias **envueltas**, nunca la clave de conversación en bruto.
Expand All @@ -166,7 +166,7 @@ Tu app debería:

## Copia de seguridad segura de claves: almacenamiento distribuido de claves

Tus claves **privadas** de identidad y firma deben almacenarse con cuidado. X Chat incluye un sistema de **copia de seguridad segura de claves** (implementado con Juicebox) para que las claves puedan recuperarse con un código de acceso entre dispositivos sin darle a ningún servidor el secreto completo.
Tus claves **privadas** de identidad y firma deben almacenarse con cuidado. X Chat incluye un sistema de **copia de seguridad segura de claves** para que las claves puedan recuperarse con un código de acceso entre dispositivos sin darle a ningún servidor el secreto completo.

### El problema con el almacenamiento tradicional de claves

Expand Down Expand Up @@ -201,7 +201,7 @@ flowchart LR
Obtienes recuperabilidad (nuevo dispositivo + código de acceso) sin que una sola parte tenga el secreto completo.

<Note>
No configuras servidores de copia de seguridad de claves a mano para el flujo normal. El Chat XDK incluye el cliente de copia de seguridad; la configuración de realms proviene de la X API como **`juicebox_config`** en tu registro de clave pública (el campo lleva el nombre de Juicebox, la implementación subyacente). El almacenamiento del código de acceso por primera vez y el desbloqueo posterior son llamadas del Chat XDK—consulta [inicializar con claves existentes](/xchat/getting-started#2-initialize-the-chat-xdk-with-existing-keys) y [crear y registrar las claves](/xchat/getting-started#3-create-and-register-keys-first-time-setup) en Primeros pasos. Algunas apps (especialmente servidores y bots) usan un blob de claves exportado en lugar de la copia de seguridad segura de claves; protege ese material como una contraseña.
No configuras servidores de copia de seguridad de claves a mano para el flujo normal. El Chat XDK incluye el cliente de copia de seguridad; la configuración de realms proviene de la X API como el campo **`juicebox_config`** en tu registro de clave pública. El almacenamiento del código de acceso por primera vez y el desbloqueo posterior son llamadas del Chat XDK—consulta [inicializar con claves existentes](/xchat/getting-started#2-initialize-the-chat-xdk-with-existing-keys) y [crear y registrar las claves](/xchat/getting-started#3-create-and-register-keys-first-time-setup) en Primeros pasos. Algunas apps (especialmente servidores y bots) usan un blob de claves exportado en lugar de la copia de seguridad segura de claves; protege ese material como una contraseña.
</Note>

---
Expand All @@ -224,7 +224,7 @@ Si algo cambia en el material firmado, la verificación falla. Solo alguien con

### En tu app

El Chat XDK firma cuando cifras mensajes salientes y verifica cuando descifras mensajes entrantes contra el material de clave pública del remitente (obtenido de las APIs de claves públicas). La verificación es **obligatoria por defecto**: el SDK rechaza los eventos firmados no verificados a menos que desactives explícitamente la comprobación (no recomendado). Los detalles están en la referencia del [Chat XDK](/xchat/xchat-xdk).
El Chat XDK firma cuando cifras mensajes salientes y verifica cuando descifras mensajes entrantes contra el material de clave pública del remitente (obtenido de las APIs de clave pública). La verificación es **obligatoria por defecto**: el SDK rechaza los eventos firmados no verificados a menos que desactives explícitamente la comprobación (no recomendado). Los detalles están en la referencia del [Chat XDK](/xchat/xchat-xdk).

### Cambios de estado firmados (firmas de acción)

Expand Down Expand Up @@ -264,11 +264,11 @@ Las firmas están vinculadas al contenido del evento y son inmutables: un evento
| Término | Definición |
|:--------|:-----------|
| **Cifrado simétrico** | Misma clave cifra y descifra (se usa para mensajes y flujos de multimedia) |
| **Cifrado asimétrico** | Claves distintas para cifrar y descifrar (se usa para envolver claves de conversación) |
| **Cifrado asimétrico** | Claves distintas para cifrar y descifrar (se usa para intercambiar claves de conversación) |
| **Clave pública** | Es seguro compartirla; se usa para cifrar *hacia* alguien o verificar sus firmas |
| **Clave privada** | Debe permanecer secreta; se usa para descifrar o firmar |
| **Par de claves** | Una clave pública y una clave privada vinculadas |
| **ECDH / ECIES** | Algoritmos usados al envolver claves de conversación hacia claves de identidad |
| **ECDH / ECIES** | Algoritmos usados al intercambiar claves de conversación mediante claves de identidad |
| **ECDSA** | Algoritmo de firma usado para la autoría de mensajes |
| **P-256** | Curva elíptica usada en X Chat (secp256r1) |
| **Clave de conversación** | Clave simétrica compartida por los participantes en una conversación (versionada a lo largo del tiempo) |
Expand Down
Loading