Zum Inhalt springen
Contact us

Das App-Passwort des Zielbenutzers

Ein Nextcloud-Administrator kann über WebDAV nicht in die eigenen Dateien eines anderen Benutzers schreiben. Wenn daher ein Job mit Destination Type Nextcloud User als Migration oder Testmigration läuft, werden die Dateien als dieser Benutzer geschrieben, mit einem App-Passwort, das die App für den Lauf erstellt.

  • Nur für diese Art von Job. Eine Analyse schreibt nichts in die Dateien des Benutzers und erhält keines, ebenso wenig ein Job in einen Teamordner oder eine Dateifreigabe.
  • Eines pro Lauf. Jedes Passwort wird für einen Lauf erstellt und trägt den Namen SMART Migration run sowie die Nummer des Laufs.
  • Nur für einen Administrator. Das Konto, das den Job übernimmt, muss ein Nextcloud-Administrator sein. Ein Mitglied einer unter Wer die App nutzen kann gewählten Gruppe darf zwar die API der App nutzen, doch eine Übernahme durch ein solches Konto erhält kein Passwort.
  • Nur für einen existierenden Benutzer. Ein Job, dessen Destination User kein Nextcloud-Benutzer ist, erhält kein Passwort, und sein Lauf kann nicht schreiben.

Das Passwort existiert genau so lange wie der Lauf, für den es erstellt wurde.

  1. Der Server übernimmt den Job

    Der SMART-Migration-Server fragt die App nach dem nächsten Job mit Status Bereit und sendet mit der Anfrage seinen öffentlichen RSA-Schlüssel.

  2. Die App erstellt das Passwort

    Sobald der Job sicher vergeben ist, erstellt die App ein neues App-Passwort für den Zielbenutzer: 72 zufällige Buchstaben und Ziffern aus dem sicheren Zufallsgenerator von Nextcloud. Die App vermerkt, dass sie für den Lauf eines ausgegeben hat, niemals aber das Passwort selbst.

  3. Es wird verschlüsselt und gesendet

    Das Passwort wird mit dem öffentlichen Schlüssel des Servers verschlüsselt und Base64-kodiert in der Antwort auf die Übernahme zurückgegeben. Es wird nie im Klartext gesendet.

  4. Der Server schreibt die Dateien

    Der Server entschlüsselt das Passwort mit seinem privaten Schlüssel und meldet sich als Zielbenutzer bei WebDAV an, um die Dateien zu schreiben.

  5. Die App widerruft es

    Wenn der Server den Lauf als Abgeschlossen oder Abgebrochen meldet oder der Job abgebrochen wird, widerruft die App das Passwort sofort. Ein gelöschter, per Massenaktion abgebrochener oder von einem angehaltenen Server zurückgelassener Lauf wird von einem Hintergrundjob erfasst, der alle fünf Minuten jedes Passwort widerruft, dessen Lauf beendet ist.

Die Bereinigung benötigt die Hintergrundjobs von Nextcloud

Die fünfminütige Bereinigung läuft als einer der Hintergrundjobs von Nextcloud. Stellen Sie diese unter Verwaltungseinstellungen → Grundeinstellungen auf Cron ein, damit sie unabhängig davon laufen, ob jemand eine Seite geöffnet hat. Ein Lauf, der im Status Läuft verbleibt, behält sein Passwort, bis er endet.

Das Passwort wird ausschließlich in der Antwort auf die Übernahme übertragen, verschlüsselt mit einem Schlüssel, den nur der SMART-Migration-Server entschlüsseln kann. Wer diese Antwort liest – in einem Log, in einem Proxy, der HTTPS untersucht, oder in einer gespeicherten Kopie der Kommunikation –, sieht nur Chiffretext.

BestandteilWas verwendet wird
Der Schlüssel des ServersEin RSA-Schlüsselpaar mit mindestens 2048 Bit, erzeugt vom SMART-Migration-Server. Nur der öffentliche Schlüssel wird gesendet, als publicKey: Base64 seiner DER-Form oder PEM.
VerschlüsselungRSA-OAEP mit SHA-1, ausgeführt durch das OpenSSL von PHP auf dem Nextcloud-Server.
Bei der ÜbertragungDer Chiffretext, Base64-kodiert, als destinationUserAppPassword, innerhalb der HTTPS-Verbindung, die der Server ohnehin nutzt.
EntschlüsselungCrypterObject von PowerBuilder auf dem SMART-Migration-Server, mit dem privaten Schlüssel.
  • Warum Public-Key-Verschlüsselung. Der öffentliche Schlüssel ist kein Geheimnis: Selbst wenn eine Anfrage und ihre Antwort gemeinsam abgefangen werden, geben sie das Passwort nicht preis. Ein gemeinsamer Schlüssel, der mit der Anfrage gesendet würde, wäre neben dem Passwort unterwegs, das er schützen soll.
  • Warum SHA-1 in OAEP. OAEP mit SHA-1 ist das, was CrypterObject von PowerBuilder entschlüsselt. Die Sicherheit von OAEP beruht nicht auf der Kollisionsresistenz der Hashfunktion, daher spielen die bekannten Kollisionsschwächen von SHA-1 hier keine Rolle.
  • Kein Schlüssel, kein Passwort. Eine Übernahme ohne publicKey erhält für einen solchen Job kein Passwort, und das Nextcloud-Log nennt den Grund. Ein publicKey, der kein öffentlicher RSA-Schlüssel mit mindestens 2048 Bit ist, wird abgelehnt, bevor ein Job übernommen wird.
  • Im Fehlerfall wird geschlossen. Kann das Passwort nicht verschlüsselt werden, wird es sofort widerrufen, und die Antwort auf die Übernahme enthält keines.

Auf dem SMART-Migration-Server

Der Server erzeugt sein Schlüsselpaar beim Start eines Workers und hält den privaten Schlüssel ausschließlich im Arbeitsspeicher. Er entschlüsselt das Passwort unmittelbar vor der Anmeldung bei WebDAV und schreibt weder das Passwort noch den privaten Schlüssel jemals in seine Logs.

Weder die App noch Nextcloud speichert das Passwort selbst.

  • Die eigene Liste der App-Passwörter von Nextcloud speichert es wie jedes App-Passwort: als Einweg-Hash, angezeigt in den Einstellungen → Sicherheit → Geräte & Sitzungen des Benutzers, solange der Lauf andauert.
  • Die App speichert eine Zeile pro ausgegebenem Passwort, mit dem Lauf, dem Benutzer, dem Erstellungszeitpunkt und dem Konto, das den Job übernommen hat, damit sie weiß, was zu widerrufen ist. Die Zeile wird gelöscht, sobald das Passwort widerrufen ist.
  • Das Nextcloud-Log verzeichnet jedes ausgegebene und widerrufene Passwort mit Benutzer und Lauf auf der Stufe Info, und jede Ablehnung als Warnung: kein publicKey, eine Übernahme durch ein Konto, das kein Administrator ist, ein Benutzer, der nicht existiert.

Ein App-Passwort meldet sich als sein Benutzer an. Solange der Lauf andauert, kann es daher in Nextcloud alles tun, was dieser Benutzer kann. Es ist nicht auf den Zielordner des Jobs beschränkt.

  • Es kann nicht zugreifen auf externen Speicher, bei dem sich der Benutzer mit seinen eigenen Anmeldedaten anmeldet, noch auf Dateien, die mit den eigenen Schlüsseln des Benutzers verschlüsselt sind: Es wird ohne das Anmeldepasswort des Benutzers erstellt. Serverseitige Verschlüsselung mit dem Master-Schlüssel ist kein Problem.
  • Es ist kurzlebig. Es existiert von der Übernahme bis zum Ende des Laufs, und nur der SMART-Migration-Server kann es lesen.

Die Verschlüsselung hält das Passwort von allem fern, was zwischen der App und dem Arbeitsspeicher des SMART-Migration-Servers liegt. Sie schützt nicht vor jemandem, der bereits eines der beiden Enden kontrolliert.

GeschütztNicht geschützt
Die Antwort auf die Übernahme, die in ein Log, einen Support-Mitschnitt oder eine gespeicherte Datei geschrieben wirdJemand, der den SMART-Migration-Server kontrolliert, während der Lauf andauert: Er besitzt den privaten Schlüssel und bereits die Microsoft 365-Anmeldedaten
Ein Proxy oder Überwachungswerkzeug, das HTTPS-Verkehr untersuchtEin Nextcloud-Administrator, der mit occ ohnehin für jeden Benutzer App-Passwörter erstellen kann
Eine Anfrage und ihre Antwort, die gemeinsam abgefangen werdenEin Passwort, das von einem Lauf übrig bleibt, der nie endet: Es besteht, bis der Lauf beendet ist

Der Benutzer kann das Passwort in seinen eigenen Einstellungen → Sicherheit → Geräte & Sitzungen widerrufen; ein Administrator kann es mit occ user:auth-tokens:list und occ user:auth-tokens:delete auflisten und löschen. Der Lauf kann danach nicht mehr in die Dateien des Benutzers schreiben.

Siehe auch