Todos los proyectos
Blanarch · Producto propio · 2026
Cliente VPN para Android, desde el protocolo

Blanarch es mi propia app Android para conectarse a gateways FortiGate SSL-VPN con FortiOS 7.6.2 o anterior (la 7.6.3 quitó el modo túnel). Diseñé la arquitectura y escribí la especificación del protocolo y los tests; agentes de Claude Code implementaron sobre eso y yo revisé el resultado. Conecta de punta a punta en un gateway real, incluso con pérdida de red y sesiones vencidas. No está afiliado a Fortinet.
Arquitectura
- Una interfaz Flutter con el patrón MVVM de la guía oficial de arquitectura de Flutter, con un único lugar donde se conectan las dependencias y tipos Result y Command en vez de excepciones.
- Un contrato tipado con Pigeon entre Dart y Kotlin: los comandos bajan, los eventos de estado suben, y ambos lados se generan desde un solo archivo.
- Puertos y adaptadores en el motor Kotlin. La lógica del protocolo es pura y no hace I/O, así que el inicio de sesión, el framing y PPP se prueban sin red.
Motor de conexión
- Un orquestador con corrutinas que cambia entre los gateways de un perfil y vuelve a entrar con la misma sesión cuando puede.
- Sin conexión, espera sin gastar reintentos, y vuelve a entrar apenas cambia la red real.
- Un servicio VPN en primer plano con un acceso en Ajustes rápidos, notificaciones con Reconectar, Desconectar y respuesta del código en línea, VPN siempre activa y túnel dividido.
Seguridad e inicio de sesión
- Nunca confía en un certificado sin avisar: el usuario confirma su huella SHA-256, que queda fijada para ese host.
- Las contraseñas se cifran con AES-GCM bajo una clave del Android Keystore, detrás de un bloqueo con biometría o el bloqueo de pantalla.
- Inicio de sesión con contraseña y código, aprobación push o SAML con un listener local que funciona en cualquier navegador. También puede leer por IMAP los códigos de un solo uso que llegan por correo.
- Los enlaces y códigos QR de configuración permiten que IT comparta una conexión, y nunca incluyen contraseñas.