Revocation.md
October 8, 2021 ยท View on GitHub
Alias revocation
When an internal user who has registered no longer wishes to have that alias associated with them anymore, they can perform alias revocation to remove that alias from the alias database.
Specification
- An internal user with SSB ID
feedIdand a room server with SSB IDroomIdare connected to each other via secret-handshake - The internal user calls a specific muxrpc
asyncAPIroom.revokeAlias(alias, callback) - The room, upon receiving the
room.revokeAliasmuxrpc call, checks whether there exists an entry in the Alias database foralias- If there is no entry, respond
room.revokeAliaswith an error - Else, if there exists an entry for
aliasbut it is not owned byfeedId, respondroom.revokeAliaswith an error - Else, proceed (below)
- If there is no entry, respond
- The room removes the entry from the Alias database associated with
feedId - The room responds
room.revokeAliaswithtrue, indicating success - The internal user receives the room's response to
room.revokeAlias- If it is an error, then (optionally) display a user interface failure to revoke the alias
- If it is
true, then publish an SSB msg of typeaboutwith a field listing all its aliases for various rooms, where this specificaliasis no longer listed. The specific schema of the message type is an application-level concern
The above algorithm is also provided below as a UML sequence diagram:
sequenceDiagram
participant U as SSB peer
participant R as Room server
U->>R: (muxrpc async) `room.revokeAlias(alias)`
alt `alias` does not exist, or other errors
R-->>U: Respond room.revokeAlias with an error
opt
U->>U: Display user interface error
end
else else
R->>R: Remove the entry in<br/>the alias database
R-->>U: Respond room.revokeAlias with `true`
U->>U: Publishes an SSB<br/>msg of type<br/>`about`
end
Security considerations
Malicious room admin
The room admin could refuse to remove the database entry, or could delete the database entry at will (before the internal user performs revocation). In other words, the internal user does not ultimately have power over the deletion of the alias entry from the alias database, it must trust the room admin regarding deletion.