🔧 Cómo Funciona el Protocolo @@
El protocolo DAE permite enviar correos electrónicos encriptados de forma segura utilizando criptografía asimétrica RSA. El proceso es transparente para ambos extremos.
Vea Cómo Funciona
▼Mire este video para aprender cómo enviar y recibir correos encriptados con DAE.
Encriptación en el Navegador - Máxima Seguridad
▼Tus datos nunca salen de tu dispositivo sin encriptar.
- Encriptación 100% cliente-side: Utilizamos librerías JavaScript criptográficas que se ejecutan directamente en tu navegador
- Código transparente: Puedes inspeccionar y auditar el código JavaScript que realiza la encriptación
- Sin servidor de confianza: Ni siquiera los servidores de DAE pueden ver tus mensajes antes de encriptar
- Tranquilidad total: Tus archivos se encriptan localmente en tu ordenador antes de subir nada a internet
📤 Para el Remitente
Redactar el Email
▼Escribe tu correo normalmente, incluyendo archivos adjuntos si lo deseas. El sistema se encargará de todo el proceso de encriptación automáticamente.
Encriptación con RSA en tu Navegador 🔒
▼Encriptación 100% cliente-side: El sistema utiliza librerías JavaScript criptográficas ejecutándose directamente en tu navegador para encriptar TODO el contenido (texto + archivos) en un único archivo utilizando la clave pública RSA del destinatario.
Esto garantiza que tus datos nunca salgan de tu dispositivo sin estar protegidos, y ni siquiera los servidores de DAE pueden ver tu mensaje original.
División en eHead y eBody
▼El archivo encriptado se divide en dos partes:
eHead: Primeros 50 KB del archivo encriptado
eBody: El resto del archivo encriptado
Envío por Email Ordinario
▼El eHead se adjunta en un email ordinario enviado al destinatario. Junto con él, se incluye una URL única desde donde podrá descargar el eBody.
Almacenamiento Seguro
▼El eBody se almacena en los servidores de DAE, protegido y disponible solo para descargar mediante el token único enviado al destinatario.
📥 Para el Destinatario
Recibir el Email
▼El destinatario recibe un email ordinario con:
- Un archivo adjunto eHead
- Una URL para descargar el eBody
Descargar el eBody
▼Accede a la URL proporcionada (formato: download.php?token=XXXXXXXXXX) y descarga el archivo eBody correspondiente.
Unir eHead y eBody
▼Coloca ambos archivos (eHead y eBody) en la misma carpeta de tu ordenador. El sistema los reconocerá automáticamente.
Desencriptar con Clave Privada
▼Utiliza tu clave privada RSA para desencriptar el archivo combinado. Solo tú tienes acceso a esta clave, garantizando la confidencialidad.
Obtener el Mensaje Original
▼El sistema recupera el mensaje original completo: texto + archivos adjuntos. Ahora puedes incorporarlo a tu cliente de correo habitual.
Nota de Seguridad
▼🔐 Información sobre Claves Criptográficas
Clave Pública
▼- Se comparte abiertamente con todos
- Los remitentes la usan para encriptar mensajes para ti
- Se puede publicar sin riesgo
- Se almacena en la base de datos del sistema
Clave Privada
▼- Solo tú la debes tener
- La usas para desencriptar mensajes recibidos
- NUNCA la compartas con nadie
- NUNCA la subas a internet o la envíes por email
- Si la pierdes, nadie puede recuperar tus mensajes
Seguridad
▼- Genera nuevas claves periódicamente (recomendado: cada 6 meses)
- Guarda tu clave privada en un dispositivo seguro
- Considera usar una contraseña para proteger tu clave privada
- Haz copias de seguridad de tu clave privada en lugares seguros
🔍 API Pública de Consulta de Clave Pública
Documentación del Endpoint
▼
Integración con Terceras Aplicaciones:
Documentación de la API REST para que aplicaciones terceras puedan consultar claves públicas de usuarios DAE.
🔑 Obtén tu API Key
Paso 1: Inicia sesión en tu cuenta de DAE.
Paso 2: Ve a Mi Perfil.
Paso 3: En la sección "🔐 API Key para Terceras Apps", haz clic en "Generar API Key".
Paso 4: Copia tu API Key y guárdala de forma segura. Nunca la compartas.
📚 Endpoint de Consulta
GET /api_lookup.php
🔐 Métodos de Autenticación
La API acepta dos métodos de autenticación:
Método 1: API Key (Recomendado para aplicaciones de terceros)
Usa tu email y API Key para autenticarte.
- Vía Query String:
?email=tu@@email.com&api_key=tu_api_key - Vía Headers HTTP:
X-DAE-Email: tu@@email.comyX-API-Key: tu_api_key
Método 2: Sesión (Solo para uso desde el sitio web)
Requiere estar logueado en el sitio web de DAE.
- Usa cookies de sesión automáticamente
- No recomendado para aplicaciones de terceros
Parámetros de Query String:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
email |
string | Sí* | Email del usuario @@ a consultar (ej: usuario@@dominio.com) |
api_key |
string | Sí** | Tu API Key de DAE (para autenticación sin sesión) |
* Requerido: Email a consultar
** Requerido solo si no usas sesión web
Headers HTTP Alternativos (para API Key):
X-DAE-Email: tu@@email.com X-API-Key: dae_123_abc123def456...
Respuesta Exitosa (200 OK):
{
"status": "success",
"user": {
"id": 123,
"email": "usuario@dominio.com",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA...\n-----END PUBLIC KEY-----",
"registered": "2026-01-28 10:30:00"
},
"cost": {
"tokens": 1,
"remaining": 9
},
"auth_method": "api_key"
}
Errores Comunes:
| Código HTTP | Error |
|---|---|
401 |
No autenticado (falta sesión válida o API Key incorrecta) |
401 |
Email no coincide con el de la API Key |
200 |
Usuario no encontrado / inactivo |
429 |
Límite de consultas excedido |
200 |
Tokens insuficientes |
📝 Ejemplos de Uso
Método 1: cURL con API Key (Recomendado)
# Método 1A: Via Query String curl -X GET "https://doubleat.email/api_lookup.php?email=destino@@dominio.com&api_key=dae_123_abc123def456..." \ -H "Content-Type: application/json" # Método 1B: Via Headers HTTP (más seguro) curl -X GET "https://doubleat.email/api_lookup.php?email=destino@@dominio.com" \ -H "X-DAE-Email: tu@@dominio.com" \ -H "X-API-Key: dae_123_abc123def456..." \ -H "Content-Type: application/json"
Método 2: JavaScript con API Key
// Ejemplo con API Key (recomendado para terceras apps)
const email = 'destino@@dominio.com';
const apiKey = 'dae_123_abc123def456...';
// Método 1: Query String
fetch(`https://doubleat.email/api_lookup.php?email=${encodeURIComponent(email)}&api_key=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
console.log('Clave pública:', data.user.public_key);
console.log('Tokens usados:', data.cost.tokens);
console.log('Tokens restantes:', data.cost.remaining);
} else {
console.error('Error:', data.message);
}
});
// Método 2: Headers HTTP (más seguro)
fetch('https://doubleat.email/api_lookup.php?email=' + encodeURIComponent(email), {
headers: {
'X-DAE-Email': 'tu@@dominio.com',
'X-API-Key': apiKey
}
})
.then(response => response.json())
.then(data => {
// Manejar respuesta igual que arriba
});
Método 3: Python con API Key
import requests
# Configuración
api_key = 'dae_123_abc123def456...'
your_email = 'tu@@dominio.com'
target_email = 'destino@@dominio.com'
# Método 1: Query String
url = f'https://doubleat.email/api_lookup.php?email={target_email}&api_key={api_key}'
response = requests.get(url)
data = response.json()
# Método 2: Headers HTTP
headers = {
'X-DAE-Email': your_email,
'X-API-Key': api_key
}
url = f'https://doubleat.email/api_lookup.php?email={target_email}'
response = requests.get(url, headers=headers)
data = response.json()
if data['status'] == 'success':
print(f"Clave pública: {data['user']['public_key']}")
print(f"Tokens usados: {data['cost']['tokens']}")
print(f"Tokens restantes: {data['cost']['remaining']}")
else:
print(f"Error: {data['message']}")
Método 4: Desde el sitio web (requiere login)
Nota: Este método solo funciona si estás logueado en doubleat.email. No es útil para aplicaciones de terceros.
// Solo desde el sitio web DAE (requiere estar logueado)
fetch('https://doubleat.email/api_lookup.php?email=destino@@dominio.com', {
credentials: 'include' // Incluye cookies de sesión automáticamente
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
console.log('Clave pública:', data.user.public_key);
console.log('Tokens usados:', data.cost.tokens);
} else {
console.error('Error:', data.message);
}
});
Limites y Costos:
- Costo: 1 token por consulta
- Límite: 10 consultas por minuto
- Autenticación: Requiere sesión activa (cookie PHPSESSID)
- Rate Limiting: Basado en IP y usuario
💡 Nota para Desarrolladores:
Email format: Al hacer consultas, convierte automáticamente el formato @@ a @ para la búsqueda en base de datos. Tu aplicación puede enviar emails en cualquiera de los dos formatos.