HandScanner: arquitectura técnica y seguridad
Protocolos de seguridad y transmisión de datos

Equipo
-
Autenticación: usa autenticación criptográfica RSA y certificados para comprobar su identidad y establecer confianza entre el equipo y la nube.
-
El cifrado SSL/TLS protege los datos.
- Todos los datos y las actualizaciones de software viajan por canales cifrados con SSL/TLS.
-
Los datos se transmiten en JSON, un formato estructurado.
-
Estos paquetes se envían de forma segura con SSL/TLS y los procesa AWS Lambda (ver abajo).
-
__________________________________________________________________________________________
Backend
- Usa AWS IoT Core (el servicio de Internet de las Cosas de Amazon Web Services).
- El enrutamiento de mensajes usa MQTT sobre TLS (Message Queuing Telemetry Transport) o HTTPS (Hypertext Transfer Protocol Secure).
- AWS Lambda procesa los datos JSON que llegan desde IoT Core:
- Amazon API Gateway
-
Recibe solicitudes HTTP(S) RESTful de:
-
Los equipos (por ejemplo, para enviar actualizaciones).
-
Los dashboards (por ejemplo, para mostrar datos).
-
-
- Todas las respuestas REST van comprimidas en zip y codificadas en base64, y el contenido viaja cifrado.
__________________________________________________________________________________________
Frontend
- React (framework de JavaScript)
-
Usa cifrado SSL/TLS vía HTTPS para entregar el contenido de forma segura.
- El frontend usa exclusivamente TypeScript.
__________________________________________________________________________________________
Cómo funciona la conexión
- Toda la comunicación la inicia el equipo ("phone home") mediante conexiones de salida.
- No requiere acceso de entrada, redirección de puertos ni aperturas en el firewall.
- Al conectarse a la red, el HandScanner envía actualizaciones de estado y telemetría a nuestra plataforma en la nube y revisa si hay instrucciones de actualización. Después descarga las actualizaciones de software o configuración por HTTPS de salida.
__________________________________________________________________________________________
Resumen y permisos de red necesarios
- Que el tráfico de entrada esté bloqueado no es problema.
- Permite conexiones de salida por TCP 443, TCP 80, UDP 53, UDP 67/68 y UDP 123 hacia los destinos de abajo.
- Si se filtra el tráfico de salida, agrega esos dominios a la lista de permitidos.
- No se requieren direcciones IP fijas. Si la red filtra por MAC, te compartiremos antes la dirección MAC de cada equipo para que la agreguen a la lista de permitidos.
- Con esta configuración, los equipos seguirán enviando actualizaciones de estado y descargando actualizaciones de software y configuración sin ningún acceso de entrada.
__________________________________________________________________________________________
Patrones de tráfico
- Señal de vida MQTT cada 3 minutos, además de al escanear, cada 5 min, cada 20 min, al conectarse a la red y cada 59 min.
- Autenticación HTTPS cada hora.
- Transferencia de archivos S3 al arrancar, durante actualizaciones y al escanear.
- Revisión de portal cautivo al conectarse a la red.
- Sincronización de hora NTP al abrir la app.
|
Destino |
Puerto |
Protocolo |
Para qué sirve |
|
Router (local) |
53 |
UDP |
Resolución de nombres DNS |
|
Router (local) |
67, 68 |
UDP |
Asignación de direcciones DHCP |
|
a16pvx628lslju-ats.iot.us-east-1.amazonaws.com |
443 |
TCP (MQTT over TLS) |
Señal de vida, estado y resultados de escaneo |
|
c17vf01fhrpedp.credentials.iot.us-east-1.amazonaws.com/role-aliases/s3uploadrolealias/credentials |
443 |
TCP (HTTPS) |
Autenticación del equipo y credenciales temporales |
|
*.s3.amazonaws.com |
443 |
TCP (HTTPS) |
Transferencia de archivos grandes (actualizaciones) |
|
clients3.google.com/generate_204 |
80 |
TCP (HTTP GET) |
Detección de portal cautivo |
|
pathspot.app/blank |
80 |
TCP (HTTP GET) |
Detección de portal cautivo |
|
1.us.pool.ntp.org |
123 |
UDP (SNTP) |
Sincronización de hora |