ich bin neu bei der Installation von Discourse und habe es kürzlich auf einem Digital Ocean Droplet als unser Firmenforum bzw. Community-Seite eingerichtet.
Während der Installation ist mir aufgefallen, dass die Eingabe des SMTP-Passworts nicht geschützt ist und im Datei app.yml als Klartext gespeichert wird.
Das scheint ein potenzielles Sicherheitsproblem zu sein. Da ich jedoch kein Netzwerk- oder Sicherheitsexperte bin, könnte dies aus mehreren Gründen in Ordnung sein. Um meinen IT-Leiter zufriedenzustellen, wäre es mir jedoch eine große Hilfe, wenn ich besser verstehen könnte, warum dies so gehandhabt wird.
Ich weiß, dass Discourse von vielen Unternehmen weit verbreitet ist, daher vermute ich, dass dieses Thema bereits ausreichend behandelt wurde.
Hashes sind einwegig; sie können nicht zurück in die Originaldaten entschlüsselt werden.
Benutzerpasswörter werden gehasht, da sie nicht reversibel sein müssen. Ein Passwort-Hash in der Datenbank wird nur abgerufen, wenn sich der Benutzer anmeldet. Der Hash des eingegebenen Passworts wird mit dem im Benutzerdatensatz gespeicherten Passwort-Hash verglichen.
Es ist relativ üblich, dass Dinge wie SMTP-Passwörter und API-Schlüssel im Klartext gespeichert werden. Sie müssen in ihrer ursprünglichen Form übermittelt werden, daher würde eine Hash-Bildung ihre Verwendung verhindern. Wenn der Drittanbieter einen Hash des Passworts akzeptieren würde, gäbe es keinen Vorteil darin, Hashes als Schutzmaßnahme zu verwenden.
Wie Jay oben bereits sagte: Wenn die physische Integrität Ihres Servers kompromittiert wird und Ihre app.yml-Datei zugänglich ist, haben Sie weitaus größere Probleme zu bewältigen als die Notwendigkeit, ein SMTP-Passwort zurückzusetzen.
Eine wichtige Einschränkung: Sie sollten das SMTP-Passwort nirgendwo anders verwenden. Dies ist jedoch nicht spezifisch für Discourse. Es ist eine gute Sicherheitspraxis für alle Systeme und jedes Konto.
Wie Jay bereits sagte: Wenn jemand Zugriff auf Ihre app.yml erhält, haben Sie größere Probleme. Das bedeutet, dass sie wahrscheinlich vollen Root-Zugriff auf Ihren Server haben, einschließlich Ihrer Produktionsdatenbank.
Die beste Vorgehensweise ist hier, sicherzustellen, dass Ihr Server sicher ist.
Ich stimme zu, dass der Schutz des Servers die erste Verteidigungslinie ist. In diesem Fall liegt es jedoch nicht in meiner Kontrolle, da ich Discourse auf einem Digital Ocean Droplet installiert habe.
@Stephen – danke für die Hintergrundinformationen zu SMTP-Passwörtern. Ich wusste nicht, dass es in diesem Fall üblich ist, sie im Klartext zu speichern. Wie gesagt, das liegt außerhalb meines Fachgebiets. Es hat mich einfach neugierig gemacht, und ich wollte nachfragen.
Nicht ganz Du kannst Anmeldungen auf SSH-Schlüssel beschränken, eine Firewall betreiben und sicherstellen, dass Sicherheitsupdates regelmäßig angewendet werden. Das ist ein erheblicher Teil der Absicherung einer Droplet.
Das ist richtig. Und es sei denn, Sie haben Ihr Dateisystem verschlüsselt – was schwierig umzusetzen ist –, müssen Sie ihnen ebenfalls vertrauen. Sie haben physischen Zugriff auf die Server und das Netzwerk.
Wie erklärt, benötigen Sie lediglich das Passwort, um es zu verwenden.