Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  remote-secret.md   Sprache: unbekannt

 
Spracherkennung für: .md vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

# Remote Secret Subprotocol

This protocol provides an optional protection layer for customers using Threema
Work, cryptographically guarding access to application storage with the help of
a Remote Secret stored on the Work server.

With this mechanism it is possible to remotely block access to the application
storage, temporarily or permanently. Given a timely response, it allows to
prevent data theft, e.g. when a device has been stolen.

## Terminology

- `RS`: Remote Secret (Key)
- `RSH`: Remote Secret Hash
- `RSHID`: Remote Secret Hash tied to an Identity
- `RSAT`: Remote Secret Authentication Token

## Storage Protection

Generally, all stored data that can be protected by the Remote Secret feature
should be protected by it. With the following exceptions:

- RSAT
- RSH/RSHID
- Identity/Safe/Data backups¹
- When using RSHID: The user's Threema ID
- For OnPrem: Cached OPPF file²

Due to significant platform differences, the concrete implementation depends on
the respective platform.

¹: Customers that want to prevent access to backups without RS are advised to
disable backups via MDM.

²: The domain rules and Work server URL from the OPPF file are required to
access the Remote Secret endpoint securely.

## Activation

The following steps are defined as the _Remote Secret Activate Steps_:

1. If storage is already protected by the Remote Secret feature, abort these
   steps.
2. Let RS be a random key.
3. In a loop:
   1. Call the _Remote Secret Create_ endpoint with RS.
   2. If the received status code is `401` and indicates invalid credentials,
      prompt the user to enter their Work credentials and continue with the next
      loop iteration.
   3. If the received status code is not `200` or could not be decoded,
      exceptionally abort these steps.
   4. Extract RSAT and RSH/RSHID from the response.
4. Apply RS to protect inner application storage and store RSAT and RSH/RSHID.

## Deactivation

The following steps are defined as the _Remote Secret Deactivate Steps_:

1. If storage is not protected by the Remote Secret feature, abort these steps.
2. Stop the task that is continuously running the _Remote Secret Monitor Steps_.
3. Run the _Remote Secret Monitor Steps_ until it yields RS.
4. Remove the protection of inner storage by RS and purge RSAT and RSH/RSHID
   from storage.
5. Schedule a persistent task bound to the application to run the _Remote Secret
   Delete Steps_ with RSAT.

The following steps are defined as the _Remote Secret Delete Steps_:

1. Let RSAT be the RSAT associated to RS the storage was previously protected
   with.
2. Call the _Remote Secret Delete_ endpoint with RSAT.
3. In a loop:
   1. If the received status code is `401` and indicates invalid credentials,
      prompt the user to enter their Work credentials and continue with the next
      loop iteration.
   2. If the received status code is not `200` or `204`, log an error and abort
      these steps.

## Monitoring

The following steps are defined as the _Remote Secret Monitor Steps_:

1. Let `interval` be `10s`, `max-failed-attempts` be `5` and `failed-attempts`
   be `0`.
2. In a loop:
   1. Call the _Remote Secret Monitor_ endpoint with RSAT.
   2. If the received status code is `403`, run the _Remote Secret Lock Steps_
      with `reason` _locked_ and abort these steps.
   3. If the received status code is `404`, run the _Remote Secret Lock Steps_
      with `reason` _not found_ and abort these steps.
   4. If the received status code is not `200` or the response could not be
      decoded:
      1. If `failed-attempts` is greater than or equal to `max-failed-attempts`,
         run the _Remote Secret Lock Steps_ with `reason` _server error_ and
         abort these steps.
      2. Increase `failed-attempts` by `1`.
   5. If the status code is `200` and the response could be decoded:
      1. If the derived RSH/RSHID from RS of the response does not match the
         stored RSH/RSHID, run the _Remote Secret Lock Steps_ with `reason`
         _mismatch_ and abort these steps.
      2. Reset `failed-attempts` to `0`.
      3. Update `interval` and `max-failed-attempts` from the response.
      4. If the RS was not yielded before, yield the retrieved RS.
   6. Wait for `interval` before continuing in the next iteration.

The following steps are defined as the _Remote Secret Lock Steps_:

1. Let `reason` be any of the following lock reasons: _locked_, _not found_,
   _server error_, _mismatch_.
2. Immediately lock access to the storage and purge any keys from memory.
3. Notify the user according to `reason` with the option to manually retry.

[Dauer der Verarbeitung: 0.13 Sekunden, vorverarbeitet 2026-04-27]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge