Zum Inhalt springen
NomaDev

Sicherheit

Sicherheit: Was liegt wo

NomaDev ist so gebaut, dass deine Arbeit nie über uns laufen muss. Diese Seite erklärt Punkt für Punkt, wo dein Code, deine Passwörter und deine Schlüssel liegen, und das Wenige, das unser eigener Dienst speichert.

Deine Projekte verlassen nie deinen Rechner

Der NomaDev-Server läuft auf dem Rechner oder VPS, auf dem deine Projekte schon liegen. Claude Code, Git, die Vorschau und die Uploads laufen alle dort.

Dein Handy verbindet sich direkt mit diesem Rechner. Zu Hause meist über Tailscale, ein verschlüsseltes Punkt-zu-Punkt-Netz auf Basis von WireGuard; auf einem VPS über HTTPS mit deinem eigenen Zertifikat. Dazwischen gibt es keinen Server von uns, wir könnten deinen Code also nicht einmal sehen, wenn wir wollten.

Passwörter und Passphrasen liegen nur auf deinem Handy

Braucht ein Upload ein FTP- oder SFTP-Passwort oder die Passphrase eines SSH-Schlüssels, tippst du es auf dem Handy ein. Lässt du es dir merken, wird es im Android Keystore gespeichert, dem verschlüsselten Speicher, den die Hardware deines Handys schützt; sonst gilt es nur für diesen Versuch.

Das Passwort geht für genau diesen Upload an deinen Rechner, bleibt im Arbeitsspeicher, solange der Upload läuft, und wird nie auf die Festplatte geschrieben — weder auf deinem Rechner noch bei uns. Unsere Server sehen es nie.

Trennst du das Handy in der App, werden auch die darauf gespeicherten Passwörter gelöscht.

SSH-Schlüssel wandern nur, wenn du es willst

Zum Veröffentlichen per SFTP nutzt der Server die SSH-Schlüssel, die schon auf deinem Rechner liegen, im Ordner deines Benutzers. Sie werden nicht kopiert und nirgendwohin hochgeladen: Das Handy erfährt nur, ob der Schlüssel eine Passphrase braucht.

Die einzige Ausnahme entscheidest du: Um den Schlüssel eines Ziels im Terminal zu nutzen, kannst du ihn aufs Handy kopieren. Wie das funktioniert, steht unten.

Das SSH-Terminal

Das Terminal verbindet sich vom Handy direkt mit dem Server, per SSH: Die Verbindung ist durchgehend verschlüsselt und läuft weder über deinen Rechner noch über einen Server von uns. Deshalb funktioniert es sogar, wenn der Rechner aus ist.

Schlüssel und Passwörter des Terminals liegen nur auf dem Handy, verschlüsselt mit einem Schlüssel des Android Keystore, den die Hardware schützt. Zum Benutzen brauchst du deinen Fingerabdruck oder die PIN, und eine Entsperrung gilt fünf Minuten. Sie landen nie im Android-Backup oder in Google Drive, und nur der native Teil der App benutzt sie, im Moment der Verbindung.

Du kannst einen Schlüssel direkt auf dem Handy erzeugen: Der private Teil verlässt es nie, auf den Server kopierst du nur den öffentlichen. Willst du lieber den Schlüssel, den ein Ziel schon auf dem Rechner nutzt, kopiert die App ihn ein einziges Mal, nach Fingerabdruck oder PIN, und nur wenn die Anfrage verschlüsselt ankommt, per HTTPS oder über einen HTTPS-Proxy auf demselben Rechner: Über eine unverschlüsselte Verbindung lehnt der Rechner ab.

Beim ersten Verbinden mit einem Server zeigt dir die App seinen Fingerabdruck und merkt ihn sich; für Ziele, die dein Rechner schon bestätigt hat, gilt dessen Fingerabdruck. Ändert er sich, hält die App an und warnt dich, und zum Akzeptieren musst du lange drücken. Schlüssel und Passwörter werden erst nach dieser Bestätigung entsperrt.

Was durch das Terminal läuft, bleibt im Speicher des Handys, nie auf der Festplatte, und ist weg, wenn du die Sitzung schließt. Das Terminal erscheint nicht in den letzten Apps oder auf Screenshots, außer du erlaubst es. Im Hintergrund bleiben Sitzungen höchstens so lange offen, wie du wählst, und über die Benachrichtigung schließt du alle mit einem Tippen.

Nur die Handys, die du erlaubst

Um ein Handy zu verbinden, brauchst du einen Code, den dein Rechner anzeigt: 8 Zeichen, nur einmal gültig, 10 Minuten lang und nach 5 Fehlversuchen ungültig. Der QR-Code enthält denselben Code.

Jedes Handy bekommt dann seinen eigenen Zugangs-Token. Der Server speichert nur dessen SHA-256-Fingerabdruck, nie den Token selbst, also kann sich nicht einmal jemand, der die Dateien des Servers liest, als dein Handy ausgeben.

In den Einstellungen siehst du jedes verbundene Handy und kannst jedes davon trennen. Ein getrenntes Handy kann sich nicht mehr verbinden; ein Neustart des Servers schließt auch eine Verbindung, die noch offen war.

Nichts ist ohne Authentifizierung offen

Jede Anfrage an den Server muss den Token des Handys tragen. Die Live-Verbindung startet mit einem Einmal-Ticket, das 30 Sekunden gilt, damit der Token nie in einer Adresse oder einem Log landet.

Die Vorschau der Website, die du entwickelst, ist nie öffentlich: Sie öffnet sich nur aus der App, mit einem Einmal-Ticket, das gegen ein privates Cookie getauscht wird.

Beim ersten Upload auf einen FTPS- oder SFTP-Server zeigt dir die App den Fingerabdruck des Servers, und NomaDev merkt ihn sich; ändert er sich später, warnt dich die App, bevor es weitergeht.

Was unsere Server speichern, und sonst nichts

Wir betreiben einen einzigen Dienst: den, der Benachrichtigungen an dein Handy weiterleitet, weil der Firebase-Schlüssel zum Versenden nicht in die App gepackt werden kann.

Er speichert den Benachrichtigungs-Token deines Handys, gekoppelt an eine zufällige Kennung, mit der dein Rechner eine Benachrichtigung anfordert. Für jede Benachrichtigung bekommt er die Art (fertig, Frage, Berechtigung, Fehler, Vorschau), den Projektnamen und die Sitzungs-ID; den Text schreibt er selbst aus festen Sätzen, und nichts davon wird gespeichert.

Er bekommt nie Code, Fehlermeldungen, Passwörter oder Schlüssel. Nutzungsstatistiken, in der App und auf der Website, starten nur, wenn du zustimmst: Sie gehen an Google Analytics und enthalten nie Code, Dateien oder Projektnamen.

Und Claude?

Claude Code läuft auf deinem Rechner mit deinem eigenen Konto und schickt Anthropic, was es für die Arbeit an deinem Code braucht — genau wie im Terminal. NomaDev fügt diesem Austausch nichts hinzu und ändert nichts daran. Siehe die Datenschutzerklärung von Anthropic.

Fragen zur Sicherheit

Könnt ihr meinen Code sehen?

Nein. Dein Handy spricht direkt mit deinem Rechner, und unser einziger Dienst kümmert sich um Benachrichtigungen, die nie Code enthalten.

Wo werden meine FTP- und SFTP-Passwörter gespeichert?

Nur im Android Keystore deines Handys, und nur, wenn du sie dir merken lässt. Dein Rechner nutzt sie im Arbeitsspeicher für einen einzigen Upload.

Läuft das SSH-Terminal über meinen Rechner?

Nein. Das Handy verbindet sich direkt mit dem Server. Schlüssel und Passwörter des Terminals liegen nur auf dem Handy, verschlüsselt und mit deinem Fingerabdruck oder deiner PIN entsperrt.

Was, wenn jemand die Adresse meines Servers findet?

Ohne den Token eines verbundenen Handys wird jede Anfrage abgelehnt, und um ein neues Handy zu verbinden, braucht man einen Code, den dein Rechner anzeigt.

Was, wenn ich mein Handy verliere?

Trenne es von einem anderen verbundenen Handy aus, in den Einstellungen: Ab diesem Moment kann es sich nicht mehr verbinden. War die App offen, starte auch den Server neu, damit die bestehende Verbindung geschlossen wird.