Los datos de tus clientes
jamás nos pertenecen.

Verifika fue diseñado con un principio arquitectónico no negociable: el comprobante de pago jamás toca un disco, una base de datos, ni ningún sistema de almacenamiento externo.

RAM · Sin disco · Sin bucket API Keys como SHA-256 Logs sin PII Auditado OWASP Top 10 0 vulnerabilidades en última revisión Revisión automática en cada actualización OWASP Headers TLS 1.3 Deno Isolates

Cada comprobante se destruye en <3 segundos.

01 · TRANSMISIÓN
HTTPS / TLS 1.3. Imagen viaja cifrada desde el dispositivo del cliente.
02 · RAM ONLY
Edge Function Deno. Sin escrituras a disco. Sin almacenamiento en S3 o bucket.
03 · ANÁLISIS IA
Claude Vision + metadatos EXIF. Todo en memoria, sin logs de contenido.
04 · DESTRUCCIÓN
JSON al cliente. Isolate Deno destruido. Imagen desaparece con el GC del runtime.

Garantía arquitectónica, no solo operacional: Supabase Edge Functions ejecuta Deno en isolates efímeros sin acceso a filesystem persistente. Incluso si el código intentara escribir a disco, la plataforma lo impediría.

Nunca almacenamos la imagen original.

Jamás almacenamos
  • Imagen original del comprobante
  • Nombre del remitente
  • Número de cuenta del pagador
  • Cualquier PII extraído por la IA
  • Texto crudo de respuesta del modelo
Solo guardamos
  • ·Puntaje de autenticidad (0–100)
  • ·Veredicto (LEGÍTIMO / SOSPECHOSO / INCIERTO)
  • ·Hash SHA-256 (unidireccional, sin datos originales)
  • ·Banco detectado + país
  • ·Canal de análisis (web / api / widget)

El número de referencia de transacción se guarda para detección de doble gasto, cifrado en tránsito vía TLS 1.3. Los hashes SHA-256 son unidireccionales: no permiten reconstruir los datos originales.

Seis capas de protección activas.

Autenticación

API Keys almacenadas como hash SHA-256. La llave en texto plano nunca se persiste. Llaves publicables restringidas a dominios registrados.

Control de uso por capas

Cuota gratuita anónima: 3 análisis por IP/mes. Con API Key o sesión: medición por créditos (1 crédito por análisis; los comprados no expiran). Cada llamada a la IA tiene timeout de 55s.

Headers OWASP

X-Content-Type-Options · CSP: default-src 'none' · HSTS 2 años · Cache-Control: no-store · Permissions-Policy

Logs sin PII

safeLog() filtra datos sensibles antes de cualquier emisión. Sin imagen, sin nombre, sin texto crudo del modelo en producción.

Anti-Prompt Injection

Contenido del comprobante en sandbox [DATO_EXTERNO_INICIO] / [FIN] con instrucción explícita al modelo de ignorar texto con apariencia de instrucción.

Webhooks HMAC-SHA256

Header X-Verifika-Signature: sha256=<hex> en cada notificación. Permite al receptor validar integridad del payload.

Cada respuesta de API los incluye.

X-Content-Type-Options:         nosniff
Referrer-Policy:                no-referrer
Content-Security-Policy:        default-src 'none'
Strict-Transport-Security:      max-age=63072000; includeSubDomains; preload
Cache-Control:                  no-store
Permissions-Policy:             camera=(), microphone=(), geolocation=()

Verificado en cada cambio de código.

La seguridad no es una promesa estática: cada push y cada Pull Request dispara un pipeline de QA & Security en GitHub Actions que audita el código y bloquea el merge si algo falla.

SAST · ANÁLISIS ESTÁTICO
Semgrep · reglas OWASP Top 10

Reglas OWASP, detección de secretos, XSS e inyección sobre todo el repositorio. Última corrida: 0 hallazgos.

DEPENDENCIAS
npm audit

Auditoría de dependencias en cada build. Última corrida: 0 vulnerabilidades.

CERO RETENCIÓN · GATE
Sin escrituras a disco

Un check automático inspecciona las Edge Functions y falla el build si alguna intentara escribir a disco (Deno.writeFile, makeTempFile, etc.).

PRUEBA RUNTIME
100 comprobantes concurrentes

Script que inyecta 100 peticiones simultáneas y luego escanea disco (/tmp, proyecto) en busca de imágenes/PDF residuales. Pasa solo si el disco queda limpio.

QA & Security workflow El estado de esta insignia refleja el resultado real del último pipeline, no una afirmación fija.

Stack seguro por diseño.

Aspecto Detalle
Runtime Supabase Edge Functions (Deno) — isolates efímeros sin filesystem persistente
Base de datos PostgreSQL en Supabase — cifrado en reposo (AES-256), RLS activo en todas las tablas
Red Cloudflare CDN + TLS 1.3 — sin ruta no cifrada disponible
Modelo de IA Anthropic Claude Vision — bajo términos de privacidad de Anthropic (DPA disponible en anthropic.com)
Claves secretas Supabase Secrets — nunca en código fuente ni en logs de producción
Tamaño máximo 10 MB por imagen — validado en Edge Function antes de procesar
Timeout de análisis 55 segundos — AbortSignal.timeout() en llamada a Claude Vision

¿Encontraste una vulnerabilidad?

Reporta de forma privada antes de divulgar públicamente. No publiques vulnerabilidades como issues en GitHub. Los reportes válidos pueden recibir créditos gratuitos como agradecimiento.

hola@kitifica.com
Asunto
[SECURITY] Nombre breve del issue
Respuesta
48 horas hábiles

Versión 1.0 · 2026-07-19 · Verifika by Kitifica

Volver a verifika.app