8000 Tell a revoked device that its access was revoked; listDeviceCertificates by klehmann · Pull Request #97 · klehmann/MindooDB · GitHub
[go: up one dir, main page]

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/accesscontrol.md
Original file line number Diff line number Diff line change
Expand Up @@ -837,6 +837,21 @@ Three properties are essential:
with the revocation trade-offs in the README and the limitations section. The wipe
is also idempotent: once the local tenant is gone there is nothing left to delete.

**What a revoked device sees.** Opening a database on a device whose signing key is
kept on the person's grant only as a revoked pair, or is wipe-targeted, throws
`DeviceAccessRevokedError` (`isDeviceAccessRevokedError()` also recognises it after
a network hop, by its `"Device access revoked"` message prefix). Its
`wipeRequested` flag says whether a wipe directive is pending. A device that was
never granted keeps the "does not have tenant access yet" error, so apps can tell
the user that access was taken away instead of asking them to request it. The
sync server does the same: a revoked device that is not wipe-targeted cannot sign
in, and its challenge is refused with a `USER_REVOKED` error whose message starts
with `"Device access revoked"` (the directory reports such keys in the optional
`revoked` list of `getUserSigningKeyUniverse`). Apps
apply the directive with `tenant.checkAndApplyRemoteWipe()` after a directory sync
(or `tenant.wipeLocalTenant(dbIds)` to also clear databases this tenant object has
not opened).

**Username hashing (backward compatible).** Today usernames are hashed as unsalted
`SHA-256(lowercase(canonicalUsername))` (hex). Going forward we add a tenant salt:

Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Whether you may add your own devices is the tenant admin's decision, made per pe

A restored backup is not a new device. For your tenants, a device is its keys, and an encrypted backup, a tenant recovery printout and an exported user id all carry those keys along. Restoring one of them on a second computer therefore gives you a copy of the old device, not a new one: if an admin revokes or wipes it, both are hit, and what either of them writes looks the same. Haven notices this and says so under Your devices, with Set up as a separate device — the pairing described above — and Keep as this installation's user id for when the original device is gone for good.

A lost or stolen device is removed by the tenant admin, in every edition. In the tenant directory they open the person with Open user, press Revoke next to the device and, to also delete what the device holds, tick Wipe tenant data on next connect, then save with the admin password. From then on the server accepts nothing from that device. The next time it connects, Haven on that device finds the wipe request, deletes the tenant with all of its local data — databases, keys, sync settings — and says so in a notice; the person's other tenants on that device stay as they are. A device that never comes online again cannot be reached, so revoke it anyway: it can no longer sync. A device that was only revoked, not wiped, shows that its access was revoked when it tries to sync. Editing a person's details in the same dialog remains a Haven Enterprise feature.

The one situation this flow cannot repair is losing every approved device at once, because then nobody is left to approve the replacement. That is what the tenant recovery printout on the Backup tab is for, and why the waiting banner links straight to the Restore tab. Print one per tenant while things are calm; the section on Backup and Restore explains what it holds.

## Workspace
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_de.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Ob du eigene Geräte hinzufügen darfst, entscheidet der Tenant-Admin pro Person

Ein eingespieltes Backup ist kein neues Gerät. Für deine Tenants ist ein Gerät seine Schlüssel, und ein verschlüsseltes Backup, ein Wiederherstellungsausdruck und eine exportierte Benutzer-ID tragen diese Schlüssel mit. Spielst du eines davon auf einem zweiten Computer ein, bekommst du deshalb eine Kopie des alten Geräts, kein neues: Sperrt oder löscht ein Admin es, trifft es beide, und was eines von beiden schreibt, sieht gleich aus. Haven bemerkt das und sagt es unter Deine Geräte, mit Als eigenes Gerät einrichten — der oben beschriebenen Kopplung — und Als Benutzer-ID dieser Installation behalten für den Fall, dass das ursprüngliche Gerät endgültig weg ist.

Ein verlorenes oder gestohlenes Gerät entfernt die Tenant-Administration, in jeder Edition. Im Tenant-Verzeichnis öffnet sie die Person mit Benutzer öffnen, drückt neben dem Gerät Widerrufen und hakt, damit auch die Daten auf dem Gerät gelöscht werden, Tenant-Daten bei nächster Verbindung löschen an; dann speichert sie mit dem Admin-Passwort. Ab da nimmt der Server von diesem Gerät nichts mehr an. Sobald es sich das nächste Mal verbindet, findet Haven auf dem Gerät den Löschauftrag, löscht den Tenant mit allen lokalen Daten — Datenbanken, Schlüssel, Sync-Einstellungen — und sagt das in einem Hinweis; die anderen Tenants der Person auf diesem Gerät bleiben, wie sie sind. Ein Gerät, das nie wieder online geht, ist nicht erreichbar; widerrufe es trotzdem, dann kann es nicht mehr synchronisieren. Ein nur widerrufenes, nicht gelöschtes Gerät zeigt beim Synchronisieren, dass sein Zugriff widerrufen wurde. Die Details einer Person im selben Dialog zu bearbeiten, bleibt eine Funktion von Haven Enterprise.

Die eine Situation, die dieser Ablauf nicht heilen kann, ist der Verlust aller freigegebenen Geräte auf einmal, denn dann ist niemand mehr da, der den Ersatz freigeben könnte. Genau dafür ist der Notfallausdruck zur Tenant-Wiederherstellung auf dem Tab Backup da, und deshalb verlinkt das Warte-Banner direkt auf den Tab Wiederherstellen. Drucke einen pro Tenant, solange alles ruhig ist; der Abschnitt zu Backup und Wiederherstellen erklärt, was darauf steht.

## Arbeitsbereich
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_es.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Si puedes añadir tus propios dispositivos lo decide el admin del tenant, person

Una copia de seguridad restaurada no es un dispositivo nuevo. Para tus tenants, un dispositivo son sus claves, y una copia de seguridad cifrada, una hoja de recuperación del tenant y un ID de usuario exportado llevan esas claves consigo. Restaurar cualquiera de ellos en un segundo ordenador te da por tanto una copia del dispositivo antiguo, no uno nuevo: si un admin lo revoca o lo borra, afecta a los dos, y lo que escribe cada uno se ve igual. Haven lo detecta y lo indica en Tus dispositivos, con Configurar como dispositivo propio —la vinculación descrita arriba— y Conservar como ID de usuario de esta instalación para cuando el dispositivo original ya no exista.

Un dispositivo perdido o robado lo retira la administración del tenant, en todas las ediciones. En el directorio del tenant abre a la persona con Abrir usuario, pulsa Revocar junto al dispositivo y, para borrar también lo que guarda el dispositivo, marca Borrar los datos del tenant en la próxima conexión; después guarda con la contraseña de administración. Desde ese momento el servidor no acepta nada de ese dispositivo. La próxima vez que se conecte, Haven en ese dispositivo encuentra la orden de borrado, elimina el tenant con todos sus datos locales — bases de datos, claves, ajustes de sincronización — y lo avisa con un mensaje; los demás tenants de la persona en ese dispositivo siguen igual. Un dispositivo que no vuelve a conectarse no se puede alcanzar; revócalo de todos modos, así ya no puede sincronizar. Un dispositivo solo revocado, sin borrado, muestra al sincronizar que su acceso fue revocado. Editar los datos de una persona en el mismo diálogo sigue siendo una función de Haven Enterprise.

La única situación que este flujo no puede reparar es perder todos los dispositivos aprobados a la vez, porque entonces no queda nadie que pueda aprobar el sustituto. Para eso está la impresión de recuperación del tenant en la pestaña Copia de seguridad, y por eso el aviso de espera enlaza directamente con la pestaña Restaurar. Imprime una por tenant mientras todo está tranquilo; la sección sobre copia de seguridad y restauración explica lo que contiene.

## Espacio de trabajo
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Le droit d'ajouter vos propres appareils est une décision de l'admin du tenant,

Une sauvegarde restaurée n'est pas un nouvel appareil. Pour vos tenants, un appareil, ce sont ses clés, et une sauvegarde chiffrée, une feuille de récupération de tenant et un identifiant exporté emportent tous ces clés avec eux. Restaurer l'un d'eux sur un second ordinateur vous donne donc une copie de l'ancien appareil, pas un nouvel appareil : si un admin le révoque ou l'efface, les deux sont touchés, et ce que l'un ou l'autre écrit est indiscernable. Haven le remarque et le signale dans Vos appareils, avec Configurer comme appareil distinct — l'association décrite plus haut — et Garder comme identifiant de cette installation pour le cas où l'appareil d'origine a définitivement disparu.

Un appareil perdu ou volé est retiré par l'administration du tenant, dans toutes les éditions. Dans l'annuaire du tenant, elle ouvre la personne avec Ouvrir l’utilisateur, clique sur Révoquer à côté de l'appareil et, pour effacer aussi ce que contient l'appareil, coche Effacer les données du tenant à la prochaine connexion, puis enregistre avec le mot de passe d'administration. Dès lors, le serveur n'accepte plus rien de cet appareil. À sa prochaine connexion, Haven sur cet appareil trouve la demande d'effacement, supprime le tenant avec toutes ses données locales — bases de données, clés, réglages de synchronisation — et l'indique dans un message ; les autres tenants de la personne sur cet appareil restent intacts. Un appareil qui ne se reconnecte jamais ne peut pas être atteint ; révoquez-le quand même, il ne pourra plus synchroniser. Un appareil seulement révoqué, sans effacement, indique lors de la synchronisation que son accès a été révoqué. Modifier les données d'une personne dans la même boîte de dialogue reste une fonction de Haven Enterprise.

La seule situation que ce parcours ne peut pas réparer, c'est la perte simultanée de tous les appareils approuvés, puisqu'il ne reste alors plus personne pour approuver le remplaçant. C'est à cela que sert l'impression de récupération du tenant sur l'onglet Sauvegarde, et c'est pourquoi la bannière d'attente renvoie directement vers l'onglet Restauration. Imprimez-en une par tenant pendant que tout va bien ; la section sur la sauvegarde et la restauration explique ce qu'elle contient.

## Espace de travail
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_it.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Se puoi aggiungere i tuoi dispositivi lo decide l'admin del tenant, persona per

Un backup ripristinato non è un nuovo dispositivo. Per i tuoi tenant un dispositivo sono le sue chiavi, e un backup cifrato, un foglio di ripristino del tenant e un ID utente esportato portano con sé queste chiavi. Ripristinarne uno su un secondo computer ti dà quindi una copia del vecchio dispositivo, non uno nuovo: se un admin lo revoca o lo cancella, colpisce entrambi, e ciò che scrive l'uno o l'altro appare uguale. Haven se ne accorge e lo segnala in I tuoi dispositivi, con Configura come dispositivo separato — l'abbinamento descritto sopra — e Mantieni come ID utente di questa installazione per quando il dispositivo originale non esiste più.

Un dispositivo perso o rubato viene rimosso dall'amministrazione del tenant, in ogni edizione. Nella directory del tenant apre la persona con Apri utente, preme Revoca accanto al dispositivo e, per cancellare anche ciò che il dispositivo contiene, spunta Cancella i dati del tenant alla prossima connessione, poi salva con la password di amministrazione. Da quel momento il server non accetta più nulla da quel dispositivo. Alla connessione successiva, Haven su quel dispositivo trova la richiesta di cancellazione, elimina il tenant con tutti i suoi dati locali — database, chiavi, impostazioni di sincronizzazione — e lo comunica con un avviso; gli altri tenant della persona su quel dispositivo restano come sono. Un dispositivo che non torna più online non si può raggiungere; revocalo comunque, così non può più sincronizzare. Un dispositivo solo revocato, senza cancellazione, durante la sincronizzazione mostra che il suo accesso è stato revocato. Modificare i dati di una persona nella stessa finestra resta una funzione di Haven Enterprise.

L'unica situazione che questo percorso non può riparare è la perdita di tutti i dispositivi approvati in una volta sola, perché allora non resta nessuno ad approvare il sostituto. È a questo che serve la stampa di recupero del tenant nella scheda Backup, ed è per questo che l'avviso di attesa rimanda direttamente alla scheda Ripristino. Stampane una per tenant quando le cose sono tranquille; la sezione su Backup e Ripristino spiega che cosa contiene.

## Area di lavoro
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_nb.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Om du kan legge til egne enheter, bestemmer tenantadministratoren for hver perso

En gjenopprettet sikkerhetskopi er ikke en ny enhet. For tenantene dine er en enhet nøklene sine, og en kryptert sikkerhetskopi, en gjenopprettingsutskrift for en tenant og en eksportert bruker-ID tar alle med seg disse nøklene. Gjenoppretter du en av dem på en ny datamaskin, får du derfor en kopi av den gamle enheten, ikke en ny: trekker en administrator den tilbake eller sletter den, rammes begge, og det de skriver, ser likt ut. Haven merker dette og sier det under Dine enheter, med Sett opp som egen enhet — tilkoblingen beskrevet ovenfor — og Behold som bruker-ID for denne installasjonen for når den opprinnelige enheten er borte for godt.

En mistet eller stjålet enhet fjernes av tenant-administratoren, i alle utgaver. I tenant-katalogen åpner hen personen med Åpne bruker, trykker Tilbakekall ved enheten og, for også å slette det enheten inneholder, krysser av for Slett tenant-data ved neste tilkobling, og lagrer deretter med administratorpassordet. Fra da av godtar serveren ingenting fra den enheten. Neste gang den kobler til, finner Haven på enheten sletteforespørselen, sletter tenanten med alle lokale data — databaser, nøkler, synkroniseringsinnstillinger — og sier fra i en melding; personens andre tenanter på enheten forblir som de er. En enhet som aldri kommer på nett igjen kan ikke nås; trekk den tilbake likevel, så kan den ikke lenger synkronisere. En enhet som bare er trukket tilbake, ikke slettet, viser ved synkronisering at tilgangen er trukket tilbake. Å redigere opplysninger om en person i den samme dialogen er fortsatt en funksjon i Haven Enterprise.

Den ene situasjonen denne flyten ikke kan reparere, er å miste alle godkjente enheter på én gang, for da er det ingen igjen til å godkjenne erstatningen. Det er det tenant-nødutskriften på Backup-fanen er til for, og derfor lenker ventebanneret rett til Gjenoppretting-fanen. Skriv ut én per tenant mens alt er rolig; avsnittet om backup og gjenoppretting forklarer hva den inneholder.

## Arbeidsområde
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_nl.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Of je eigen apparaten mag toevoegen, beslist de tenantbeheerder per persoon. Als

Een teruggezette back-up is geen nieuw apparaat. Voor je tenants is een apparaat zijn sleutels, en een versleutelde back-up, een herstelafdruk van een tenant en een geëxporteerde gebruikers-ID nemen die sleutels allemaal mee. Zet je er een van terug op een tweede computer, dan krijg je dus een kopie van het oude apparaat, geen nieuw: trekt een beheerder het in of wist hij het, dan raakt dat beide, en wat ze schrijven, ziet er hetzelfde uit. Haven merkt dit op en meldt het onder Je apparaten, met Als apart apparaat instellen — de koppeling die hierboven is beschreven — en Behouden als gebruikers-ID van deze installatie voor als het oorspronkelijke apparaat definitief weg is.

Een verloren of gestolen apparaat wordt door de tenantbeheerder verwijderd, in elke editie. In de tenantdirectory opent die de persoon met Gebruiker openen, klikt naast het apparaat op Intrekken en vinkt, om ook te wissen wat het apparaat bevat, Tenant-gegevens wissen bij de volgende verbinding aan, en slaat dan op met het beheerderswachtwoord. Vanaf dan accepteert de server niets meer van dat apparaat. De volgende keer dat het verbinding maakt, vindt Haven op dat apparaat het wisverzoek, verwijdert de tenant met al zijn lokale gegevens — databases, sleutels, synchronisatie-instellingen — en meldt dat; de andere tenants van de persoon op dat apparaat blijven zoals ze zijn. Een apparaat dat nooit meer online komt, is niet te bereiken; trek het toch in, dan kan het niet meer synchroniseren. Een apparaat dat alleen is ingetrokken, niet gewist, laat bij het synchroniseren zien dat zijn toegang is ingetrokken. De gegevens van een persoon in hetzelfde venster bewerken blijft een functie van Haven Enterprise.

De ene situatie die deze procedure niet kan repareren, is dat je alle goedgekeurde apparaten tegelijk kwijt bent, want dan is er niemand over om de vervanger goed te keuren. Daar is de tenant-noodafdruk op het tabblad Back-up voor, en daarom linkt de wachtbanner rechtstreeks naar het tabblad Herstellen. Druk er één per tenant af terwijl alles rustig is; de paragraaf over back-up en herstel legt uit wat erop staat.

## Werkruimte
Expand Down
2 changes: 2 additions & 0 deletions docs/haven-handbook_pl.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ O tym, czy możesz dodawać własne urządzenia, decyduje administrator tenanta,

Przywrócona kopia zapasowa to nie nowe urządzenie. Dla Twoich tenantów urządzenie to jego klucze, a zaszyfrowana kopia zapasowa, wydruk odzyskiwania tenanta i wyeksportowany identyfikator użytkownika zabierają te klucze ze sobą. Przywrócenie któregoś z nich na drugim komputerze daje więc kopię starego urządze C62F nia, a nie nowe: jeśli administrator je wycofa lub wyczyści, dotyczy to obu, a tego, co zapisuje każde z nich, nie da się rozróżnić. Haven to zauważa i informuje o tym w „Twoje urządzenia”, oferując „Skonfiguruj jako osobne urządzenie” — opisane wyżej parowanie — oraz „Zachowaj jako identyfikator tej instalacji” na wypadek, gdy oryginalnego urządzenia już nie ma.

Zgubione lub skradzione urządzenie usuwa administracja tenanta, w każdej edycji. W katalogu tenanta otwiera osobę przyciskiem Otwórz użytkownika, klika Odwołaj obok urządzenia i, aby usunąć także to, co jest na urządzeniu, zaznacza Wyczyść dane tenanta przy następnym połączeniu, a potem zapisuje hasłem administratora. Od tej chwili serwer niczego od tego urządzenia nie przyjmuje. Przy następnym połączeniu Haven na tym urządzeniu znajduje polecenie usunięcia, usuwa tenanta ze wszystkimi lokalnymi danymi — bazami danych, kluczami, ustawieniami synchronizacji — i informuje o tym komunikatem; pozostałe tenanty tej osoby na urządzeniu zostają bez zmian. Urządzenia, które już nigdy nie połączy się z siecią, nie da się dosięgnąć; mimo to cofnij jego dostęp, wtedy nie może już synchronizować. Urządzenie, którego dostęp tylko cofnięto, bez usuwania danych, pokazuje przy synchronizacji, że jego dostęp został cofnięty. Edycja danych osoby w tym samym oknie pozostaje funkcją Haven Enterprise.

Jedyna sytuacja, której ten przebieg nie naprawi, to utrata wszystkich zatwierdzonych urządzeń naraz, bo wtedy nie zostaje nikt, kto mógłby zatwierdzić zamiennik. Do tego służy wydruk awaryjny tenanta na karcie Kopia zapasowa i dlatego baner oczekiwania prowadzi wprost do karty Przywracanie. Wydrukuj jeden na tenanta, póki jest spokojnie; sekcja o kopii zapasowej i przywracaniu wyjaśnia, co taki wydruk zawiera.

## Obszar roboczy
Expand Down
1 change: 1 addition & 0 deletions docs/userkeys.md
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,7 @@ Server authentication, device discovery (`discoverTenantsOnServer`), access-cont
| `tenant.revokeOwnDeviceCertificate(fingerprint)` | Withdraw one (a sold or retired device): deletes the document. It stops counting at the delete's trusted time; an undelete does not bring it back. |
| `directory.resolveSignerToGrant(key, T)` | The grant a key acts under, `via: "grant"` or `"certificate"`. |
| `directory.listCertifiedDevices(usernameHash)` | Certified devices that count now. |
| `directory.listDeviceCertificates()` | Every certificate with its trusted `issuedAt` and, if withdrawn, `deletedAt`; nothing filtered, for audit and time-travel views. |
| `directory.updateUserGrant(username, { revokeSigningKeys, wipeSigningKeys })` | Revokes and wipes certified devices like listed ones: the key goes into `revokedUserKeyPairs` and the wipe list. |

Things to know:
Expand Down
Loading
0