Das ist nur ein kleines Update, um den Stand der Dinge zu klären.
Zum Einen, ich habe ein paar Änderungen vorgenommen. Sollte ursprünglich noch pqxx für die Verbindung zur Datenbank eingesetzt werden, was unter Windows zu Schwierigkeiten geführt hat, übernimmt nun Qt direkt dieser Arbeit. Das muss jetzt im Code noch umgebaut werden, aber dann geht es zu den Tests auf Windows. Mal die Daumen drücken!
Einen produktiven Fortschritt gibt es jedoch bei der Verschlüsselung. Da habe ich einiges ausprobiert, aber vieles kam mir einfach zu kompliziert vor.
Nun bin ich bei OpenSSL gelandet und das funktioniert hervorragend! Schlüsselgenerierung, Verschlüsselung und Entschlüsselung, alles läuft! Das kann also jetzt für das Programm verwendet werden. Das compilieren unter Windows wurde auch getestet und funktioniert einwandfrei!
Desweiteren habe ich entschieden, keine privaten Nachrichten und Mediendateien auf dem Server zu behalten. Soll heissen, wenn eine Nachricht abgeschickt wird, kommt sie auf den Server. Hat dann der Empfänger die Nachricht abgerufen, wird sie im Anschluss wieder vom Server gelöscht.
Diese Vorgehensweise hat ein paar Vorteile. Der Wichtigste dürfte natürlich sein, sollte irgendwie mal jemand unerlaubt auf die Datenbank zugreifen können, kann er bestenfalls noch ungelesene Nachrichten abgreifen. Diese dann aber verschlüsselt und soweit ich informiert bin, ist RSA mit 4096 Bit im Moment noch nicht so einfach zu knacken. Ausserdem reduziert sich auf die Art die Datenmenge in der Datenbank und sorgt hoffentlich für gut Performance, auch wenn die Nutzerzahl steigt.
Man wird aber die Möglichkeit haben, auf dem heimischen Gerät den Chatverlauf zu speichern. Natürlich verschlüsselt. Wer das nicht will, der kann es ausschalten und wann auch immer er den Chat beendet, kann er nicht mehr auf den Verlauf zugreifen.
Schlussendlich werde ich im Moment den privaten Chat priorisieren. Das war eigentlich überhaupt nicht mein Plan, aber ich gehe davon aus, dass damit am schnellsten das Interesse für dieses kleine Netzwerk zu wecken ist.