Security and privacy

Designed on the assumption that someone is trying.

A palm cannot be reset like a password. So HathPay keeps as little as it can, encrypts what it keeps, and makes every credential narrow and revocable.

Templates, never images

Captures become a template and are deleted. Templates are encrypted with AES-256-GCM under a key derived for each bank, so one bank's data cannot be read with another's.

Replayed requests fail

Every signed call carries a single-use nonce inside the signature and expires in five minutes. A repeated request is refused and written to the audit log.

Only approved terminals

Terminals sign every request with a private key that never leaves the device. A lost terminal is revoked in one action and stops working at once.

No banking credentials

HathPay never asks for an ATM PIN, card number or online-banking password. Its own PIN is hashed, locks after repeated failures and is asked for only when risk calls for it.

One palm, one customer

A palm already enrolled for another customer is refused. Enrolling both hands closes the route of opening a second account with the other hand.

The customer can stop it

Pause palm payments, lower limits, report a payment or remove HathPay from the bank app. Removal deletes the templates.

The life of a palm capture

What happens to the picture of a hand.

The image exists only long enough to be measured. What is kept is a set of numbers that cannot be turned back into a photograph, encrypted for one bank.

CapturedThe terminal crops one square of the palm and sends it over a signed connection.ROI 320 × 320
MeasuredLine orientations across the palm become a numeric code. The image is not stored.6 orientations
EncryptedOnly the template is kept, encrypted with a key that belongs to that bank.AES-256-GCM · per bank
Deleted on requestRemoving HathPay in the bank app deletes the customer's templates.customer.removed
Controls in depth

Where each protection lives.

ThreatControlWhere
A captured request is sent againSingle-use nonce inside the signature; five-minute window; refusal is auditedEvery API surface, both directions
A stolen or cloned terminalPer-device P-256 key, operations approval, one-step revocation, per-terminal rate limitsDevice trust
A payment charged twiceIdempotency keys on every authorisation; reversal when a later step failsOrchestrator and bank adapter
Someone else's palm at the till1:N match with a margin to the next-best customer; PIN step-up above a threshold; PIN lockoutBiometric service and risk engine
A terminal probing unknown palmsCooldown after repeated unrecognised palmsRisk engine
A record quietly alteredHash-chained audit log, verifiable from the operations consoleAudit ledger
One bank reading another's dataTemplates encrypted with keys derived per bank; separate stores for templates, operations and paymentsData layer
Before real money

What we will prove first.

  • Liveness and anti-spoof testing on the NIR terminal, against photographs, screens and replicas.
  • Accuracy measured on the pilot population: false accepts and false rejects from real people, not lab samples.
  • An independent penetration test and architecture review.
  • Hosting onshore or inside the bank's own environment, in line with State Bank of Pakistan outsourcing requirements.
  • Keys held in a managed key service or HSM, with rotation.

See it working, end to end, in thirty minutes.

Activation in a bank app, enrolment at a branch terminal and a palm payment settled through a simulated bank. Then the architecture and the pilot plan.