138701

Sichere Verschlüsselung

Hallo zusammen,

Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).

openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:

1. Ich kann mich nicht für eine Methode entscheiden... Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere. Im Manual wird aes-256-gcm verwendet, weswegen ich es zuerst damit versuchte. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...

2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.

Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 577664

Url: https://administrator.de/forum/sichere-verschluesselung-577664.html

Ausgedruckt am: 17.05.2025 um 00:05 Uhr

Henere
Henere 07.06.2020 um 23:05:52 Uhr
Goto Top
Servus.
Doppelt-ROT-13

SCNR

Henere
cykes
cykes 08.06.2020 um 06:57:38 Uhr
Goto Top
Moin,

Zitat von @138701:
Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
Schön, aber zu welchem Anwendungszweck genau? Geht es Passwörter? Was ist für Dich "gut", also Dein Bewertungskriterium?

openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:
Dann verwende eben openssl_encrypt, wenn Du Dir selbst diese Vorgaben machst.

1. Ich kann mich nicht für eine Methode entscheiden...
Bei der Entscheidungsfindung können wir Dir auch eher schlecht helfen, denn
Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere.
Da wirst Du wohl alle 50+ durchgehen müssen und für Dich bewerten müssen.
[...] aes-256-gcm [...]. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...
Naja, aber was erwartest Du denn bei Verschlüsselung, wenn es nicht nur ein Ersetzungsalgorithmus ist? Du musst immer irgendwie den Schlüssel mit übertragen, sonst kann das Gegenüber damit rein gar nichts anfangen. Auch wenn der Schlüssel separat übertragen wird, nimmt er dennoch Speicherplatz ein.
2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.
Siehe oben
Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Die Verabeitungsgeschwiundigkeit dürfte wohl stark systemabhängig sein. Du wirst nicht umhinkönnen, Dich etwas intensiver mit den verschiedenen Algorithmen auseinanderzusetzen. Es bringt Dir ja auch nichts, wenn wir hier jetzt anfangen, andere Algorithmen vorzuschlagen bzw. aufzulisten, die Dir dann aus dem einen oder anderen Grund nicht passen. Mit Deinen Vorgaben wirst Du aber nichts optimal passendes finden. Irgendwo wirst Du einen Kompromiss eingehen oder das Ding selbst programmieren müssen.

Gruß

cykes
117471
117471 08.06.2020 um 07:47:26 Uhr
Goto Top
Hallo,

warum?

Passwörter werden gehasht und Authentifizierung erfolgt durch Zertifikate.

Gruß,
Jörg
138701
138701 08.06.2020 um 09:35:59 Uhr
Goto Top
Ich setze mich zum ersten Mal mit Verschlüsselungsmethoden auseinander und mit Sicherheit sind hier erfahrenere Sicherheitstechniker unterwegs. Ich bin offen für jede Idee.
Lochkartenstanzer
Lösung Lochkartenstanzer 08.06.2020 aktualisiert um 09:47:49 Uhr
Goto Top
Zitat von @138701:

Hallo zusammen,

Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).

openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:

1. Ich kann mich nicht für eine Methode entscheiden... Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere. Im Manual wird aes-256-gcm verwendet, weswegen ich es zuerst damit versuchte. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...

Moin,

Wenn Du "die beste Verschlüsselung willst", mußt Du die Vollbitverschlüsselung vom Kryptochef nehmen (leider nur noch über archive.org erreichbar https://web.archive.org/web/20060604033443/http://kryptochef.de/ ).

Ansonsten mußt Du Dir einen Benchmark ausdenken und die veschiedenen Verfahren gegeneinander testen. Denn wir können nicht für Dich das nciht entscheiden.

Die Frage ist doch auch , welchem Verwendungszweck das ganze dient. Ich nehme z.B. gerne gpg, wenn ich veschlüsselte Dateien oder Dokumente übertragen will. Das geht natürlich auch mit kurzen strings über eine Pipe.

2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.

Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?

Du bist Dir aber schon bewußt, daß diese drei Kritereien gegeneinander arbeiten. Wenn etwas sicher sein soll, darf das nicht auf Kosten der Zeit udn irgendwelchen Größenbeschränkungen gehen. (z.B. alle Schlösser am Haus abzuschließen dauert länger als wenn man nur die Tür zu zieht)

Wenn etwas schnell verarbeitet wird, hat man keine Zeit, das nach Platz oder Sicherheit zu optimieren. (z.B. alle Schlösser am Haus abzuschließen dauert länger als wenn man nur die Tür zu zieht)

Wenn etwas wenig Platz brauchen soll, mußt Du mehr Zeit investieren.

Außerdem definiert sich "sicher" über die Art der Angriffe, gegen die man sich absichern will. es nützt nichts, sich einen Super-Duper-Safe hinzustellen, in den man nicht ohne weiteres reinkommt, wenn man den "einfach mit dem Auto klauen kann". face-smile

Es hilft nichts, Du mußt selbst Hand anlegen und testen.

Und vor allem mal sagen, wofür das gut sein soll.

lks

Edit: Hat sich mit dem Post vom TO überschnitten.
Lochkartenstanzer
Lochkartenstanzer 08.06.2020 um 09:46:04 Uhr
Goto Top
Zitat von @138701:

Ich setze mich zum ersten Mal mit Verschlüsselungsmethoden auseinander und mit Sicherheit sind hier erfahrenere Sicherheitstechniker unterwegs. Ich bin offen für jede Idee.

Dann schreib mal, was Sinn und Zweck des ganzen ist und gegen welche Angriffe Du Dich schützen willst.

lks
138701
138701 08.06.2020 um 10:32:43 Uhr
Goto Top
Und vor allem mal sagen, wofür das gut sein soll.
Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)
maretz
maretz 08.06.2020 um 10:38:38 Uhr
Goto Top
Ehrlich gesagt würde ich da einfach ne Standard-Version nehmen und drauf ka ob da jetzt 20% mehr is. Denn du hast ja dann eh protokoll-overhead mit drin. Wenn du jetzt nicht grade auch nen File-Transfer mit hast bei dem du eben relevante Grössen erreichst sollte das passen.

Jetzt kommt es dann eher darauf an was du genau machst... Wenn du einen 1:1 Chat baust ist das ganze kein problem mit der Verschlüsselung, bei einem 1:n oder n:n kann das halt etwas aufwendiger werden (oder du gehst auf Serverbasiert).
138701
138701 08.06.2020 aktualisiert um 10:48:55 Uhr
Goto Top
Es gibt mehrere Chatrooms, die mit den selben Scripts arbeiten. Eine Nachricht wird über Ajax an ein PHP-Script gesendet, welches diese verarbeitet und in eine Datei schreibt. Mit einem anderen Script werden per Ajax alle 2 Sekunden alle Nachrichten aus der Datei gelesen und der Inhalt eines HTML-Elements damit überschrieben.
138701
138701 08.06.2020 um 10:50:05 Uhr
Goto Top
Standard-Version nehmen und drauf ka ob da jetzt 20% mehr is
20% mehr sind total OK ...... Es gibt auch Methoden mit 500%...
117471
Lösung 117471 08.06.2020 um 11:37:24 Uhr
Goto Top
Hallo,

Zitat von @138701:

Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)

Wie gesagt - das ist absoluter Humbug was Du da vor hast.

Hier wendet man das so genannte "Private Key" Verfahren an: https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem

Ich kann mir auch vorstellen, dass da schon diverse vorgefertigte Libraries usw. gibt - ich persönlich nutze PGP seit 1995.

Gruß,
Jörg
Lochkartenstanzer
Lochkartenstanzer 08.06.2020 um 13:02:40 Uhr
Goto Top
Zitat von @117471:

Hallo,

Zitat von @138701:

Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)

Wie gesagt - das ist absoluter Humbug was Du da vor hast.

Hier wendet man das so genannte "Private Key" Verfahren an: https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem

Ich kann mir auch vorstellen, dass da schon diverse vorgefertigte Libraries usw. gibt - ich persönlich nutze PGP seit 1995.

/me 2 seit 1991/1992. genau weiß ich es nicht mehr, aber ich wollte damals das "komische Tool" relativ bald nach erscheinen ausprobieren. face-smile

Inzwischen nutze ich gpg.

lks
117471
117471 08.06.2020 um 13:57:29 Uhr
Goto Top
Hallo,

Zitat von @Lochkartenstanzer:

Inzwischen nutze ich gpg.

Ich gar nichts. Ich habe festgestellt, dass meine E-Mail-Partner durch die Signatur eher mißtrauisch werden als dass diese Vertrauen schafft.

Gruß,
Jörg
Lochkartenstanzer
Lochkartenstanzer 08.06.2020 um 14:06:55 Uhr
Goto Top
Zitat von @117471:

Zitat von @Lochkartenstanzer:

Inzwischen nutze ich gpg.

Ich gar nichts. Ich habe festgestellt, dass meine E-Mail-Partner durch die Signatur eher mißtrauisch werden als dass diese Vertrauen schafft.


Ich nutze gpg selektiv, d.h. zu Partnern, die etwas damit anzufangen wissen, bzw. denen ich erklärt habe wie das funktioniert.

Bei anderen nutze ich für die Vertrauliche Übertragung andere verfahren.

lks
138701
138701 08.06.2020 um 17:02:02 Uhr
Goto Top
Und wie benutze ich pgp in PHP?
144260
Lösung 144260 08.06.2020 aktualisiert um 17:06:42 Uhr
Goto Top
Zitat von @138701:

Und wie benutze ich pgp in PHP?
Nativ ... RTFM => https://www.php.net/manual/de/book.gnupg.php
138701
138701 08.06.2020 um 19:32:23 Uhr
Goto Top
Ich hoste meine Website und habe dadurch keinen Zugriff auf die PHP-Installation oder die php.ini
117471
117471 08.06.2020 um 20:28:01 Uhr
Goto Top
Hallo,

Zitat von @138701:

Ich hoste meine Website und habe dadurch keinen Zugriff auf die PHP-Installation oder die php.ini

Dann kannst Du das Gewünschte leider nicht mit deinen Ressourcen umsetzen.

Gruß,
Jörg