What a certificate proves

A job certificate is a signed record that shows what happened in one job. An assessor, a privacy officer or a risk committee can check the certificate on their own machine, with no Hangar account.

Hangar signs one job certificate at the end of each slot or sandbox session. The certificate shows which image ran, when, on which instance, and how the job ended. A data certificate is the signed record of everything that happened to one upload. The reader can check either certificate without an account and without trusting the servers of Hangar.

This page is for the reader of a certificate. The page says what each part of a certificate shows and how the reader checks each part.

Who issues the certificate

TALOS Defence Pty Ltd (ABN 24 696 691 906) issues and signs every certificate. Hangar is the service and the website. The certificate says so on its face.

What the certificate states

On the certificateWhat it records
OrganisationThe customer's legal name and ABN, and the account that booked
What ranFor each job: the image name, the image digest that the name resolved to and when, the command, the names of the environment variables given to the job, and how the job ended (completed, ended abnormally, cancelled or not started), with the reason when there is one
What it ran onThe instance type and id, the number of GPUs, each GPU's UUID and serial from the reset query, the AWS Region and zone, and the capacity block
WhenThe start and end of the slot in Melbourne local time (AEST or AEDT) and in UTC
Data in and outThe digest and size of each file that went in and each file that came out
MovementsEach move of the customer's data: received, staged, mounted, written, downloaded, deleted, each with its time and place
Reset and wipeThe records of the GPU reset and the instance wipe before the job, and the reset path: a fresh instance for the slot, or the same instance reset and rebooted in place between jobs
Attestation kindAn AWS Nitro attestation of the instance, or a test attestation from the Hangar test pool
Attestation, release and auditThe digest of the instance attestation, the digest of the Hangar release that ran the slot, and the digest of that day's AWS audit log
Clock errorHow far the clock that timed every record could be from true time
Operated byWho at TALOS Defence operated the slot
PlacesEach place where the job's data was stored, processed or staged, and where the records are, by AWS Region and zone. The statement of where the data was comes from these places
Region policyThe Region policy that the job ran under, where the policy came from (the organisation or the job), the cell that signed the certificate, the home cell of the organisation, and why the job ran in its Region

The certificate contains digests, names and sizes. The certificate never contains the customer's files.

A sandbox session certificate

A sandbox session certificate records one session in a sandbox. The certificate adds these facts:

On the certificateWhat it records
InstanceThe Graviton instance type and id, the shape (memory per vCPU) and the vCPU count
Image releaseThe digest of the sandbox image release that the session ran
CompanionsEach companion container by name and image digest. Companions ran inside the session's own instance
AllowlistThe digest of the list of destinations that the gateway let the session reach
GatewayHow many connections the gateway handled, and how many the gateway refused
CredentialsEach credential that the gateway attached, by secret name and destination. The value never appears
ApprovalsEach decision on a proposal: approved or declined, by a named person or by the account's Lock, with the time
ResetEach step of the published reset (instance terminated, session security group checked, credentials revoked, gateway CA destroyed, secrets detached), with the time and the digest of the provider's response

The verifier prints each companion, the gateway's refusals and each reset step as a visible line under the result. The verifier checks the allowlist digest, the approvals and every reset response against the signed records in the certificate.

How each statement is backed

How to check a certificate

  1. Get the published key set from the Hangar site or from TALOS Defence's site.
  2. Open the verifier at the Hangar site's verify page, or run hangar verify <certificate> in a terminal.
  3. The verifier runs eleven checks in order and prints each check with one sentence: decoding, the key set, the daily keys, the certificate signature, the record signatures, the record chain, the log proofs, the log head, the times, the facts, and the published log heads.
  4. The result reads "Valid" only when every required check passes. The verifier names the first failed check and marks the checks after it "not run".
  5. Two facts appear as notices directly under the result when they apply. "Test attestation" shows for a certificate from the test pool. "Reset by reboot in place" shows when Hangar rebooted the instance between jobs instead of replacing the instance. Read the notices with the result.

The browser verifier is the terminal verifier's code, compiled for the browser. After the page has loaded, the browser verifier works with the network off. You can save the page and run the page on a machine with no connection. The verifier is free and open source.

What the reader concludes

The certificate states facts about one slot: what ran, on which hardware, when, with which data, where the data went and when Hangar deleted the data. Hangar signs and logs each fact. The certificate gives an assessor the evidence for those facts in a form that the assessor can check without asking Hangar.

The assessor decides what the facts mean for their framework, their classification rules and their obligations. The certificate supplies the facts, and the conclusion belongs to the assessor.

Read this page as Markdown