Chapter 15
Role and Policy Architecture
SANKET Technical Security & Architecture Whitepaper. Public edition 2.0, 7 October 2026.
SANKET separates five things that are often merged: who a person is, what they are allowed to do, which content they can cryptographically read, which devices are trusted, and what administrative power they hold.
Table 28: Five distinct control concepts
| Concept | Question it answers | Where enforced in SANKET |
|---|---|---|
| Authentication | Is this really the account holder? | Password (Argon2id) and TOTP at sign-in for end users, with an optional directory check at enrolment and restore; password (or the customer identity provider as first factor) and a FIDO2 security key for administrators; device-bound tokens |
| Authorisation | May this account perform this action? | API route checks: group roles, administrator permissions, tenant policy, licence features |
| Cryptographic access | Can this device decrypt this content? | Only devices included in a libsignal fan-out, and present on the recipient account's signed device list, receive a decryptable copy |
| Device trust | Is this device allowed to act for the account? | Device state checked on every request and refresh; device client certificate at the edge; key protection level and attestation where policy requires them |
| Administrative privilege | May this administrator change identities, devices or policy? | Permission-scoped administrator roles, a FIDO2 security key and audit |
The separation matters because authorisation and cryptographic access can diverge in useful ways. Removing a member from a group is an authorisation change that immediately removes their devices from future fan-outs; no administrator can, by changing a role, give a device the ability to decrypt messages that were never encrypted to it.
15.1 Administrator Roles (RBAC)
Administrator permissions are organised into categories (users, broadcast, vault, audit log, settings, alerts, licence, integrations and location), each with read, create, edit and delete actions. Five built-in roles are provided and cannot be altered; customers can define additional roles, but an administrator cannot create or assign a role with more permission than they hold. Every administrator, whatever the role, is subject to the same strong-authentication policy (Chapter 13). When administrators sign in through the customer's identity provider, roles still come from the console unless the owner enables a group-to-role map, and that map can never grant the Owner role.
Table 29: Built-in administrator roles
| Permission category | Owner | User Manager | Config Manager | Threat Monitor | Auditor |
|---|---|---|---|---|---|
| Users | All | All | - | - | Read |
| Broadcast | All | - | All | - | Read |
| Vault | All | - | Read | - | Read |
| Audit log | All | Read | - | Read | Read |
| Settings | All | - | All | - | Read |
| Alerts | All | - | - | Read, edit | Read |
| Licence | All | - | - | - | Read |
| Integrations | All | - | - | - | - |
| Location | All | - | - | - | - |
Customers map these to their own structure, for example Organisation Administrator (Owner), Security Administrator (Threat Monitor plus a custom role with user-edit permission for lost-device handling), and Auditor.
15.2 Group Roles
Table 30: Group roles and permissions
| Action | Owner | Group administrator | Member |
|---|---|---|---|
| Send and read messages | Yes | Yes | Yes |
| Add or remove members | Yes | Yes | - |
| Remove a group administrator | Yes | - | - |
| Change roles, transfer ownership, delete group | Yes | - | - |
| Rename group | Yes | Yes | If policy allows |
| Approve pending members (when member approval is on) | Yes | Yes | - |
| Leave group | If policy allows | If policy allows | If policy allows |
Member approval is on by default: an added member is pending until they accept, so nobody is placed into a conversation without consent. Group creation is itself a policy; a deployment chooses the model that suits its structure. Under the administrators-only policy, the default, administrators with the user-creation permission create groups from the console, naming an active end user as the owner and the initial members by Sanket ID; member approval applies to them as to any group, and each creation is audited. Notice broadcasts, the announcement type that is labelled as not end-to-end encrypted, can be sent only by administrators with the broadcast-creation permission, and only the administrator who created a notice can edit or send it.
15.3 Broadcast-Sender Accounts
Administrators hold no libsignal identity, so they cannot send end-to-end encrypted content. Encrypted broadcasts are therefore sent by a dedicated broadcast-sender account: a user account with its own Sanket ID, created, suspended and assigned to named administrators in the console, with every such action audited. It is excluded from contact search, from "all users" audiences and from ordinary chats. Its root of trust is a mobile device in the organisation's custody, and its sending desktop must be approved both by that mobile and in the administrator console. The desktop app encrypts each broadcast for every recipient device through its own libsignal Double Ratchet session, with no sender keys; recipients pin the sending device and identity on the first broadcast and are warned if a later broadcast comes from another device or key. Sending is a desktop function by design; receiving is identical on mobile and desktop. Chapter 17 describes the broadcast lifecycle.
15.4 End-User Policy Controls
Policies apply to the whole installation and are set by administrators with the settings permission. Clients receive a reduced copy of the policy from which sensitive values, such as lockout thresholds and rate limits, are removed. The principal enforced controls are:
Table 31: Enforced policy controls (selection)
| Area | Controls | Enforced at |
|---|---|---|
| Access | Registration mode; TOTP requirement; administrator security keys; identity providers; lockout thresholds; device approval mode; trusted-device and per-platform caps; idle-device revocation | Server |
| Local security | App passcode requirement; biometric unlock; lock timeout; wipe after failed unlocks; duress PIN | Client (mobile); MDM can tighten |
| Messaging | Message editing, delete-for-everyone window, disappearing messages, read receipts, typing indicators | Server |
| Messaging | Forwarding, reactions (end-to-end encrypted; an optional emoji-free server count for very large groups), quoting, link previews, starring | Client |
| Content handling | Clipboard copy of message text; forwarding of files and of vault files into chats, and sharing attachments to other apps | Client (mobile and desktop) |
| Classification | Customer-defined ranked list of labels and a default label; content labelled above the lowest rank has forwarding, export and download turned off (Chapter 38) | Client (mobile and desktop); label inside the end-to-end encryption |
| Files | File sharing on or off per source (camera, gallery, documents, location, contacts, voice); maximum size; allowed and blocked types; download to device; data export | Server and client |
| Calls | Voice, video and group calls; maximum duration; participants; per-user call rates | Server |
| Groups | Creation permission; member approval; maximum members; renaming; leaving | Server |
| Device governance | Remote wipe per device and per user; lost mode and automatic wipe; locate; device mutual TLS; minimum key protection level; attestation enforcement | Server |
| Privacy | Notification sender names and previews (both off by default); last-seen visibility; profile photo and display-name policy | Server and client |
| Retention | Hot message window, broadcast, call log and alert retention (Chapter 44) | Server |
| Integrations | Integration API enablement; audit export | Server and licence |
Note
Note - Client-side controls
Client-enforced controls such as forwarding restrictions govern the behaviour of the SANKET applications. As with any messaging platform, they cannot prevent an authorised reader from copying content by other means, which is why SANKET pairs them with audit, download and export policy, and managed devices. Administrator sign-in and sessions can be limited to configured IPv4 and IPv6 address ranges, enforced by the API (Chapter 27); a firewall or reverse proxy in front of the console remains recommended.
15.5 Attribute-Based and Hierarchical Policy
SANKET's current model is role-based for administrators and membership-based for content, with installation-wide policy. It does not implement attribute-based access control, per-department policy or an organisational hierarchy with inherited permissions. Large organisations typically deploy separate installations for separate security domains, which gives strong compartmentalisation at the cost of cross-domain communication, and installation-level separation remains the recommended separation between formally accredited levels. Per-message and per-file classification labels are implemented (Chapter 38); hierarchical units, attribute-based policy, conversation-level labels and a per-label handling matrix are roadmap directions.
Evaluating SANKET for your organisation?
Talk to Tosh Defence about a technical briefing, a deployment plan for your infrastructure, or the controlled edition of this whitepaper under a non-disclosure agreement.