Skip to content
English
  • There are no suggestions because the search field is empty.

HandScanner Backend Architecture

The following diagram shows how Data recorded on the HandScanner is processed and transmitted safely and securely 

Security & Data Transmission Protocols 

Diagram

Device

  • Authentication: Uses RSA cryptographic authentication and certificates to prove identity and establish trust between the device and the cloud.

  • SSL/TLS encryption protects the data

    • All data and software updates sent through SSL/TLS-encrypted channels.
  • JSON is used as a structured format for data transmission

    • These packets are transmitted securely using SSL/TLS and are processed by AWS Lambda (see below). 

__________________________________________________________________________________________

Backend 

  • Leverages AWS IoT Core (Amazon Web Services Internet of Things Core)
    • Message routing using TLS MQTT (Message Queuing Telemetry Transport) or HTTPS (Hypertext Transfer Protocol Secure).
  • AWS Lambda processes incoming JSON data from IoT Core:
  • Amazon API Gateway
    • Accepts RESTful HTTP(S) requests from both:

      • Devices (e.g., for pushing updates).

      • Dashboards (e.g., for visualizing data).

  • All REST response endpoints are base64 zip and payload is encrypted

__________________________________________________________________________________________

Frontend 

  •  React (JavaScript Framework) 
  • Uses SSL/TLS encryption via HTTPS to ensure secure content delivery.

  • Exclusively use TypeScript on the frontend 

__________________________________________________________________________________________

How connectivity works

  • All communication is device-initiated (β€œphone home”) over outbound connections.
  • No inbound access, port forwarding, or pinholes are required.
  • Once connected to the network, the HandScanner sends status updates and telemetry to our cloud platform and checks for update instructions. Software/configuration updates are then downloaded by the device over outbound HTTPS.

__________________________________________________________________________________________

Summary & required network allowances

  • Blocked inbound is not an issue.
  • Permit outbound connections on TCP 443, TCP 80, UDP 53, UDP 67/68, UDP 123 to the above destinations.
  • If outbound filtering is enforced, whitelist the domains above.
  • Static IP addresses are not required. If the network uses MAC filtering, we will provide the MAC address for each device in advance so it can be added to the allow-list.
  • With this setup, devices will continue to send status updates and download software/configuration updates without any inbound access.

__________________________________________________________________________________________

Traffic patterns

  • MQTT heartbeat every 3 minutes, plus on scans, every 5 min, every 20 min, on network connection, and every 59 min.
  • HTTPS authentication hourly.
  • S3 file transfer at boot, during updates, and on scan.
  • Captive portal check on network connect.
  • NTP time sync on app launch.

Destination

Port

Protocol

Purpose

Router (local)

53

UDP

DNS name resolution

Router (local)

67, 68

UDP

DHCP address assignment

a16pvx628lslju-ats.iot.us-east-1.amazonaws.com

443

TCP (MQTT over TLS)

Device heartbeat, status, scan results

c17vf01fhrpedp.credentials.iot.us-east-1.amazonaws.com/role-aliases/s3uploadrolealias/credentials

443

TCP (HTTPS)

Device authentication & temporary credentials

*.s3.amazonaws.com

443

TCP (HTTPS)

Transfer of large files (updates)

clients3.google.com/generate_204

80

TCP (HTTP GET)

Captive portal detection

pathspot.app/blank

80

TCP (HTTP GET)

Captive portal detection

1.us.pool.ntp.org

123

UDP (SNTP)

Time synchronization