Einladungen sind jetzt Links
Einladungen in der Elchi-Konsole liefen über die E-Mail-Adresse und vertrauten jedem, der sie besass. Jetzt sind sie Links: einmal gültig, sieben Tage lang.
Wer jemanden einladen wollte, an einer Anwendung in der Elchi-Konsole mitzuarbeiten, tat das bisher über die Adresse. Sie tippten die E-Mail-Adresse einer Kollegin ein; gab es ein Konto mit dieser Adresse, kam es sofort dazu, und wenn nicht, wartete die Einladung, bis sich jemand mit dieser Adresse registrierte. Ab diesem Release ist eine Einladung stattdessen ein Link.
Was an der Adresse falsch war
Bis zu diesem Release hat EAuth nie geprüft, ob eine Adresse der Person gehört, die sie eingetippt hat. Jeder konnte ein Konto mit colleague@yourcompany.ch registrieren, bevor Ihre Kollegin es tat. Luden Sie diese Adresse dann ein, ging der Platz an wen auch immer das Konto hielt, mit der Rolle, die Sie gewählt hatten, Admin eingeschlossen.
Wir haben das bei einem Review unseres eigenen Codes gefunden, nicht durch einen Vorfall. Als dieses Release ausgeliefert wurde, hatte niemand ausserhalb von Elchi Studios ein Konto, also konnte niemand ausserhalb der Firma betroffen sein. Weg musste es trotzdem, bevor sich jemand darauf verliess.
Dieses Release schliesst die offensichtliche Lücke noch auf einem zweiten Weg: EAuth gibt keiner Anwendung, auch unserer Konsole nicht, ein Konto, dessen Adresse nicht über einen dorthin geschickten Link bestätigt wurde. Zum richtigen Schlüssel macht das die Adresse trotzdem nicht. Eine bestätigte Adresse beweist, dass jemand ein Postfach liest. Sie beweist nicht, dass es die Person ist, die Sie meinten: Postfächer werden geteilt, weitergeleitet und geerbt. Eine Einladung soll an die Person gehen, die Sie ausgewählt haben, nicht an irgendwen, der sich als Besitzer einer Zeichenkette herausstellt.
Wie es jetzt funktioniert
Wenn Sie jemanden einladen, gibt Ihnen die Konsole einen Link. Den schicken Sie selbst, über einen Kanal, dem Sie schon vertrauen.
- Der Link wird einmal angezeigt. Wir speichern nur einen Digest davon, wie bei jedem anderen Credential, damit ihn später niemand zurücklesen kann, auch wir nicht.
- Er funktioniert einmal, sieben Tage lang.
- Die eingetippte Adresse ist eine Notiz, für wen er gedacht ist. Laden Sie dieselbe Adresse erneut ein, wird der Link ersetzt, und ein Link, der an die falsche Stelle ging, funktioniert nicht mehr.
- Wer den Link öffnet, sieht die Einladung und wird gefragt. Beitreten braucht einen Klick. Mailscanner und die Linkvorschauen von Messaging-Apps öffnen Links von sich aus, und sie dürfen eine Einladung, die für einen Menschen bestimmt ist, nicht verbrauchen.
- Wer nicht angemeldet ist, meldet sich zuerst an oder erstellt ein Konto und tritt direkt danach bei. Ein neues Konto bestätigt unterwegs seine Adresse über den Link, den EAuth per Mail schickt, und kommt zur Konsole zurück. Dauert das länger als eine Stunde, muss der Einladungslink noch einmal geöffnet werden; er funktioniert für den Rest seiner sieben Tage weiter.
- Ein Link stirbt mit der Berechtigung der Person, die ihn erstellt hat. Wird der Admin, der jemanden eingeladen hat, aus der Anwendung entfernt oder verliert er die Admin-Rolle, funktionieren seine offenen Links nicht mehr.
- Beitreten ändert nie eine Rolle, die jemand schon hat. Ein alter Link kann ein Mitglied nicht stillschweigend befördern oder zurückstufen.
Die Regel zur Berechtigung kam aus einem zweiten Review, nachdem die erste Version fertig war. Ohne sie hätte ein Admin, dessen Entfernung bevorstand, ein eigenes Zweitkonto einladen und mit dem Link wieder hineinkommen können.
Was es kostet
Sie müssen den Link selbst verschicken. Wir mailen ihn mit Absicht nicht: Sie wissen, auf welchem Kanal Ihre Kollegin einen Link erwartet, und eine Einladung, die per Mail von uns kommt, wäre eine Nachricht mehr, die sich für jeden zum Kopieren lohnt, der Ihr Team phishen will. Selbst verschicken heisst ein paar Sekunden Kopieren, und die Konsole setzt dafür einen Button neben den Link.
Einladungen nach dem alten Verfahren, falls es welche gab, sind mit diesem Release abgelaufen, weil niemand einen Link dafür hat.
Ein Muster, drei Stellen
Dieselbe Art Link trägt jetzt drei Dinge: eine Einladung, die Bestätigung einer Adresse und das Zurücksetzen eines Passworts. Jeder besteht aus 256 zufälligen Bits, wird nur als Digest gespeichert und funktioniert einmal für begrenzte Zeit: sieben Tage für eine Einladung, einen Tag für eine Bestätigung, eine Stunde für ein Zurücksetzen. Einen Reset-Link oder eine Einladung zu öffnen, verbraucht sie nie von allein; das tut nur der Klick der Person. Die Bestätigung einer Adresse ist die Ausnahme, denn wer Mail an diese Adresse öffnen kann, ist genau die Person, um die es bei der Bestätigung geht.
Quellen
- Forgot Password Cheat Sheet, OWASP, gelesen am
Geschrieben von Samuel Krauss, Founder. Abgelegt unter eauth, console, security.
Übersetzt aus dem Englischen. Zum englischen Original