Skip to content

Operations

Enrollment

Enrollment is physical, and it is the primary path — not a fallback. It happens in person, at a staffed checkpoint, against an institutional ID. There is no remote or self-service way onto the network. This is the mechanism that makes Zajil accountable rather than anonymous.

Why physical is the right default at institution scale

A university already runs exactly this operation every term — ID cards, badge activation, registration desks. Pushing ~10k people through staffed checkpoints is not unusual; it is routine. And because the drill runs continuously (see depletion), emergency recovery stops being a special operation nobody has rehearsed — it is muscle memory.

Three properties fall out for free:

  • Identity binds to a person

    The checkpoint checks a student/staff ID. A roster entry is now a device and a verified human — which is what "know who is sending what" actually requires. No remote enrollment gives you that.

  • Deprovisioning is automatic

    Credentials must be renewed in person. Someone who stops showing up falls off the network on their own. Graduates and leavers require no offboarding process — expiry does the work. See depletion.

  • A rehearsed recovery path

    Because enrollment runs all the time, the staff, the procedure, and the equipment for a manual re-key already exist. The usual reason manual recovery fails — nobody has ever done it — does not apply.

Checkpoints hold no key material

This is the critical security property. If a checkpoint could issue identities, its device would be the softest target in the system — compromise a folding table in a hallway and you can enroll yourself.

Instead:

graph LR
    ROOT["🔑 Root key<br/>(offline)"] -->|pre-generates,<br/>signs, prints| TOK["🎟️ Enrollment tokens<br/>serialized, sealed"]
    TOK -->|handed out at| DESK["🏫 Checkpoint<br/>(holds NO key)"]
    DESK -->|activates one slot| ROSTER["📋 Roster"]

    style ROOT fill:#c1121f,color:#fff,stroke:#8c0c16
    style DESK fill:#f5f5f5,color:#111,stroke:#e4e4e7
  1. The operator pre-generates single-use enrollment tokens offline, under the root key, and prints them.
  2. The checkpoint hands out sealed envelopes and records which serial went to which ID.
  3. A token activates exactly one pre-existing roster slot, once.

Checkpoints activate slots; they never create them

Enrollment tokens are pre-generated offline under the root key. The roster already contains every slot — enrollment just flips one to active. The roster stays a single-writer artifact the operator holds.

What a compromised checkpoint gets you

A stack of paper. You know precisely which serials were taken, so you void that range and reprint. No key material was ever there, nothing needs re-keying, and the blast radius is one envelope box. It also sidesteps a roster-merge problem: no dynamic enrollment means no many-writer reconciliation.

The exception path

Some people genuinely cannot reach a checkpoint — distance students, staff abroad. The policy is deliberately simple: someone is sent to them in person. It stays a physical handoff. An undefined exception path is where every strict enrollment scheme actually leaks, so it is named rather than improvised.

The academic-calendar gap that worries other institutions does not apply here — this is a year-round program, summers included.

Full physical trust, by design

The goal is a network that cannot be joined casually or remotely, so it cannot quietly become infrastructure for what it should not carry. Every door is a desk; every desk checks an ID. Combined with accountability by attribution, this is the halal-by-construction posture: encrypted for its members, closed to misuse, owned end to end.