Cifrado
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
La Capgo proporciona una robusta cifrado de extremo a extremo para sus paquetes de la aplicación, asegurando que sus JavaScript code y activos estén protegidos durante la transmisión y el almacenamiento. Este sistema de cifrado está diseñado para darle al usuario control total sobre la seguridad de la aplicación mientras se mantiene la comodidad de las actualizaciones en vivo.
Resumen
Sección titulada “Resumen”Capgo’s sistema de cifrado utiliza métodos criptográficos de industria estándar para proteger sus paquetes de acceso no autorizado. Cuando el cifrado está habilitado, los paquetes se cifran antes de salir del entorno de desarrollo y permanecen cifrados hasta que son descifrados por la aplicación en el dispositivo del usuario.
¿Qué protege realmente la cifrado?A diferencia de los sistemas de actualizaciones OTA que solo firman actualizaciones, Capgo cifra el paquete subido antes del almacenamiento y la entrega. Esto protege el contenido del paquete de acceso casual en el almacenamiento o en tránsito y garantiza que solo alguien con su clave privada pueda producir una actualización cifrada válida. No hace que los activos web enviados sean imposibles de descompilar: la clave pública utilizada por el cliente para descifrar actualizaciones se distribuye en la aplicación, por lo que un atacante determinado puede extraerla e inspeccionar el contenido del paquete con suficiente esfuerzo.
Cómo Funciona la Cifrado
Sección titulada “Cómo Funciona la Cifrado”Capgo utiliza un enfoque de cifrado híbrido que combina la cifrado RSA y AES para una seguridad y rendimiento óptimos:

1. Generación de Clave
Sección titulada “1. Generación de Clave”- Clave Privada: Generada y almacenada de manera segura en tu entorno de desarrollo (usada para la cifrado)
- Clave Pública: Derivada de tu clave privada y almacenada en la configuración de tu app Capacitor (usada para la descifrado)
- Claves de Sesión: Claves AES aleatorias generadas para cada carga de paquete
2. Proceso de Cifrado
Sección titulada “2. Proceso de Cifrado”- Se genera una clave de sesión AES aleatoria para cada carga de paquete
- Tu paquete se cifra utilizando la clave de sesión AES
- El cálculo de la suma de verificación del paquete se realiza
- Ambas la clave de sesión AES y la suma de verificación están cifradas juntas utilizando su clave privada RSA (creando la "firma")
- El paquete cifrado y la firma cifrada se almacenan
La suma de verificación se cifra junto con la clave AES para evitar la manipulación. Dado que solo su clave privada RSA puede crear esta firma, y solo la clave pública correspondiente puede descifrarla, esto garantiza que tanto la clave de sesión AES como la suma de verificación esperada sean auténticas y no hayan sido modificadas por un atacante.
3. Proceso de descifrado
Sección titulada "3. Proceso de descifrado"- Su aplicación descarga el paquete cifrado y la firma cifrada
- El Capgo SDK utiliza su clave pública RSA (almacenada en la aplicación) para descifrar la firma
- Esto revela la clave de sesión AES y la suma de verificación original
- La clave de sesión AES se utiliza para descifrar el paquete
- Se calcula una suma de verificación del paquete descifrado y se compara con la suma de verificación original para verificar la integridad
Este proceso garantiza que incluso si un atacante intercepta el paquete cifrado, no puede modificar la clave de sesión AES o proporcionar una suma de verificación falsa, porque necesitaría su clave privada para crear una firma válida que la clave pública pueda descifrar.
Capgo vs Otras Plataformas
Sección titulada “Capgo vs Otras Plataformas”| Característica | Capgo | Otras Plataformas de Actualización OTA |
|---|---|---|
| Contenido del Paquete | Cifrado en almacenamiento/tránsito; aún inspecionable por un ingeniero de reverso determinado con el binario de la aplicación | Leído públicamente |
| Método de Seguridad | Cifrado end-to-end completo | Code solo firmado |
| Nivel de privacidad | Protección de entrega/almacenamiento fuerte; no anti-descompilación | La plataforma puede acceder a su code |
| Protección | Contenido + integridad + autenticidad | Integridad + autenticidad solo |
¿Por qué esto importa?:
- Code firmado solo verifica que las actualizaciones no han sido manipuladas y provienen de la fuente correcta
- Capgo cifrado protege el paquete mientras se almacena y se entrega y hace que las actualizaciones cifradas falsificadas sean mucho más difíciles porque el atacante necesitaría tu clave privada
- La ingeniería inversa sigue siendo posible después de que la aplicación se envíe, porque el cliente contiene la clave pública necesaria para descifrar y cargar la actualización
Métodos de cifrado
Sección titulada “Métodos de cifrado”Capgo utiliza Encryption V2 como el método de cifrado estándar:
Encryption V2 (Método estándar actual)
Sección titulada “Encryption V2 (Método estándar actual)”- Utiliza RSA-4096 para una mayor seguridad
- AES-256-GCM para cifrado autenticado
- Proporciona verificación de integridad
- Mejora el rendimiento y la seguridad
Cifrado V1 (Obsoleto)
Sección titulada “Cifrado V1 (Obsoleto)”- Utiliza RSA-2048 para cifrar claves
- AES-256-CBC para cifrar paquetes
- Ya no está disponible en la versión actual CLI
- Las aplicaciones legadas que utilizan V1 deben migrar a V2
Configuración de cifrado
Sección titulada “Configuración de cifrado”Paso 1: Generar claves de cifrado
Sección titulada “Paso 1: Generar claves de cifrado”Primero, genere sus claves de cifrado utilizando el Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createEsto crea:
.capgo_key_v2: Su clave privada (mantenga esto seguro!).capgo_key_v2.pub: Su clave pública (utilizada por su aplicación)
Estos archivos se crean en el directorio actual donde ejecuta el comando.
Paso 2: Guarda tu clave pública en la configuración de Capacitor (Requerido)
Sección titulada “Paso 2: Guarda tu clave pública en la configuración de Capacitor (Requerido)”Tú debes guardar tu clave pública en la configuración de Capacitor para que tu aplicación móvil pueda descifrar los paquetes:
# Save public key from file to Capacitor config (required)npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
# Or save public key data directlynpx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"Paso 3: Sincroniza la plataforma de Capacitor (Requerido)
Sección titulada “Paso 3: Sincroniza la plataforma de Capacitor (Requerido)”Una vez guardada la clave pública, debes sincronizar la plataforma de Capacitor para copiar la configuración actualizada a la capa nativa:
# Sync the platform to copy config to nativenpx cap syncCifrando Paquetes
Sección titulada “Cifrando Paquetes”Método 1: Cifrar durante la subida
Sección titulada “Método 1: Cifrar durante la subida”La forma más sencilla es cifrar durante el proceso de subida:
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)Método 2: Flujo de trabajo de cifrado manual
Sección titulada “Método 2: Flujo de trabajo de cifrado manual”Para tener más control, puedes cifrar manualmente los paquetes:
-
Crear un paquete zip:
Ventana de terminal npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Cifrar el paquete:
Ventana de terminal npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Subir a tu almacenamiento (por ejemplo, S3) y registrar con Capgo:
Ventana de terminal # First upload the encrypted bundle to your storage (e.g., AWS S3)aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip# Then register with Capgo using the external URLnpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
Gestión de claves
Sección titulada “Gestión de claves”Almacenar claves de manera segura
Sección titulada “Almacenar claves de manera segura”Opciones de clave privada:
-
Basado en archivo (desarrollo local):
Ventana de terminal # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
Variable de entorno (CI/CD):
Ventana de terminal # Store in environment variable for CIexport CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"
Configuración de clave pública (Requerida):
# Must save public key to Capacitor config for mobile appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pubEntorno de producción:
- Almacenar claves privadas en servicios de gestión de claves seguras (AWS KMS, Azure Key Vault, etc.)
- Utilizar la gestión de secretos de CI/CD para claves privadas
- Nunca comitar claves privadas en control de versiones
Uso de la clave:
- Clave privada: Utilizado por CLI para la cifrado durante la subida de paquetes (mantener seguro)
- Clave pública: Almacenado en la configuración de la aplicación para la descifrado en el dispositivo (seguro para comitar)
Rotación de claves
Sección titulada “Rotación de claves”Rotar periódicamente sus claves de cifrado para una mayor seguridad:
-
Generar nuevas claves:
Ventana de terminal # Navigate to desired directory first, then create keysmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Guardar la nueva clave pública en la configuración de Capacitor:
Ventana de terminal npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Actualice la configuración de su aplicación con la nueva clave pública
-
Despliegue la aplicación actualizada antes de subir paquetes cifrados con la nueva clave
Prácticas de Seguridad
Sección titulada “Prácticas de Seguridad”Seguridad de la Clave
Sección titulada “Seguridad de la Clave”- Nunca comparta claves privadas entre entornos o miembros del equipo
- Utilice claves diferentes para diferentes entornos (desarrollo, pruebas, producción)
- Rotar las llaves con regularidad (recomendado: cada 6-12 meses)
- Almacenar las llaves de manera segura utilizando sistemas de gestión de llaves adecuados
Seguridad de paquetes
Sección titulada “Seguridad de paquetes”- Verificar siempre la integridad del paquete después de la desifrado
- Mantenerse al tanto de patrones de descarga inusuales o fallas
- Usar HTTPS para todas las URL de paquetes (requerido para aplicaciones móviles)
- Implemente un manejo de errores adecuado para fallos de descifrado Control de Acceso
Sección titulada “Control de Acceso”
Limitar el acceso a las llaves de cifrado solo a personal autorizado- Usar un control de acceso basado en roles para las operaciones de gestión de llaves Auditar el uso y el acceso a las llaves regularmente
- Implemente procedimientos de copia de seguridad y recuperación adecuados Implemente un manejo de errores adecuado para fallos de descifrado
- Control de Acceso Sección titulada “Control de Acceso”
- Limitar el acceso a las llaves de cifrado solo a personal autorizado Usar un control de acceso basado en roles para las operaciones de gestión de llaves
Resolución de problemas de cifrado
Sección titulada “Resolución de problemas de cifrado”Problemas comunes
Sección titulada “Problemas comunes”Fallas de descifrado:
- Verifique que la clave privada coincida con la clave pública utilizada para cifrar
- Verifique que el
ivSessionKeyesté correcto - Asegúrese de que esté utilizando la cifrado V2 (V1 ya no está soportado)
Errores relacionados con la clave:
- Confirme que el formato de la clave privada es correcto (formato PEM)
- Verifique que la clave no se haya dañado durante el almacenamiento o transferencia
- Verifique que la clave tenga permisos adecuados en la configuración de su aplicación
Problemas de rendimiento:
- Los paquetes grandes pueden tardar más en cifrar/descifrar
- Considerar el uso de actualizaciones de Delta (manifest) para reducir los tamaños de los paquetes
- Monitorear el rendimiento del dispositivo durante la descifrado
Comandos de depuración
Sección titulada “Comandos de depuración”Verificar el estado de cifrado:
npx @capgo/cli@latest app debugPrueba el flujo de cifrado/decifrado:
# Test the complete workflow: zip → encrypt → decrypt → unzipnpx @capgo/cli@latest bundle zip com.example.app --key-v2npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --jsonnpx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEYCumplimiento y estándares
Sección titulada “Cumplimiento y estándares”Capgo implementa la cifrado según estándares de la industria:
- AES-256: Algoritmo de cifrado aprobado por FIPS 140-2
- RSA-4096: Cifrado asimétrico fuerte para la protección de claves
- Modo GCM: Proporciona tanto confidencialidad como autenticidad
- Aleatorio seguro: Generación de números aleatorios criptográficamente seguros
Esto hace que Capgo sea adecuado para aplicaciones que requieren cumplimiento con:
- RGPD (Reglamento General de Protección de Datos)
- HIPAA (Ley de Portabilidad y Responsabilidad de Seguros de Salud)
- SOC 2 (Control de Servicios Organizativos 2)
- ISO 27001 (Gestión de la Seguridad de la Información)
Consideraciones de rendimiento
Sección titulada “Consideraciones de rendimiento”Sobrecarga de cifrado
Sección titulada “Sobrecarga de cifrado”- Tamaño del paquete: Los paquetes cifrados son ligeramente más grandes (~1-2% de sobrecarga)
- Tiempo de procesamientoLa cifrado/descifrado añade una latencia mínima
- Uso de memoriaAumento temporal durante las operaciones de cifrado/descifrado
Consejos de optimización
Sección titulada “Consejos de optimización”- Utilice actualizaciones de Delta (manifest) para minimizar el tráfico de datos cifrados
- Optimice el tamaño de su paquete convirtiendo las imágenes a formato WebP
- Minimice los archivos JavaScript y CSS antes de empaquetarlos
- Elimine dependencias no utilizadas y code
- Monitoree el rendimiento del dispositivo en dispositivos más antiguos/lentos
Pasos siguientes
Sección titulada “Pasos siguientes”- Aprenda sobre Almacenamiento personalizado para usar la cifrado con su propia infraestructura
- Explora Canales para gestionar paquetes cifrados entre entornos
- Configura Integración CI/CD para automatizar despliegues cifrados