php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.11.2011, 14:35  
Neuer Benutzer
 
Registriert seit: 01.03.2011
Beiträge: 16
PHP-Kenntnisse:
Anfänger
Nico befindet sich auf einem aufstrebenden Ast
Standard OpenSSL: erzeugen eines sicheren Schlüssels - Geschmacksfrage oder gibt es Standards?

Hallo!

Ich will für Datenübertragung meiner Php-Skripte Daten mit dem Private/Public-Key verfahren verschlüsseln. Dafür benutze ich die Funktionen openssl_public_encrypt zum verschlüsseln(), und openssl_private_decrypt() zum entschlüsseln.

In meinen Tests funktioniert das alles sehr gut. Aber ich stelle mir gerade die Frage, wie sicher sind die von mir erzeugten Schlüssel?

Ich erzeuge die beiden Schlüssel in meiner SuSE Linux Umgebung so:

Code:
openssl genrsa -out private.key 2048
openssl rsa -in private.key -out public.pem -outform PEM -pubout
Korrigiert mich, aber ich lese immer wieder das die Sicherheit mit der größe des Bit-Werts zusammenhängt mit dem man die Daten verschlüsselt (hier 2048 Bit). Laut der Offiziellen Dokumentation von OpenSSL sollte dieser Werbei 1024 oder höher liegen, andere Quellen sprechen von 2048 Bit.

Gibt es irgendwelche Standards, die man hier beachten muss? Ich möchte den Schlüssel so sicher wie notwendig machen (sollte innerhalb der nächsten 5 jahre nicht zu knacken sein) aber so klein wie möglich halten, da mit der größe der Bit-Zahl die Datenmenge der Verschlüsselten Daten stark steigt.

Gruß
Nico
Nico ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.11.2011, 14:54  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.563
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

erm .. irgendwo hast du wohl nicht alles gelesen dazu - wieso meinst du, die Datenmenge würde durch Verschlüsselung steigen ? Das einzige was bei längeren Schlüsseln steigt, ist der Aufwand die zu knacken - und darum geht es dir ja in erster Linie .

Die Datenmenge selbst ändert sich dadurch nicht ... wenn du echt verschlüsselst bleibt ein Text von 1000 Zeichen auch 1000 Zeichen lang - nur dass eben jetzt Zeichenmüsli drinsteht, das erst wieder entschlüsselt werden muss.

Deine Schlüssellänge mit 2048 ist für ein Public / private-Key Verfahren völlig ausreichend
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 29.11.2011, 15:16  
Neuer Benutzer
 
Registriert seit: 01.03.2011
Beiträge: 16
PHP-Kenntnisse:
Anfänger
Nico befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
erm .. irgendwo hast du wohl nicht alles gelesen dazu - wieso meinst du, die Datenmenge würde durch Verschlüsselung steigen ? Das einzige was bei längeren Schlüsseln steigt, ist der Aufwand die zu knacken - und darum geht es dir ja in erster Linie .

Die Datenmenge selbst ändert sich dadurch nicht ... wenn du echt verschlüsselst bleibt ein Text von 1000 Zeichen auch 1000 Zeichen lang - nur dass eben jetzt Zeichenmüsli drinsteht, das erst wieder entschlüsselt werden muss.
Ich habe das nirgendwo gelesen, mir ist es beim Testen aufgefallen.

Wenn das so stimmt was du schreibst, benutze ich die openssl Funktionen wohl falsch.

PHP-Code:
openssl_public_encrypt("Testnachricht"$crypted$publicKey); 
- "Testnachricht", der zu verschlüsselnde Text, ist 14 Byte groß
- Wenn ich in diesem Fall einen Public Key benutze, den ich mit 2048 Bit erzeugt habe, hat das Ergebnis in $crypted eine Länge von 128 Byte.
- Wenn ich einen Public Key benutze, den ich mit 8192 Bit erzeugt habe, dat das Ergebnis in $crypted eine Länge von 1024 Byte.

Um sicher zu gehen habe ich mehrfach zum Testen Schlüssel erzeugt und Daten damit verschlüsselt. Das Ergebnis ist immer: um so größer der Bit-Wert im Schlüssel, um so länger ist der Verschlüsselte String.

Wie mache ich das jetzt richtig, damit mein Verschlüsselter Text genau so lang ist wie der Klartext, wie du beschrieben hast?

Gruß
Nico

Geändert von Nico (29.11.2011 um 15:25 Uhr).
Nico ist offline   Mit Zitat antworten
Alt 29.11.2011, 15:58  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.563
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

aja - weil du wesentlich kürzere Nachrichten als dein Schlüssel "versendest" - betrachte mal - was eigentlich der Normalfall ist - das die Nachricht mindestens so lang ist wie der Schlüssel - dann passt meine Aussage auch wieder ...

übrigens 8192 Bit = 1024 Byte = Zeichen in ISO-Encoding .... (analog 1024 Bit -> 128 Byte = Zeichen in ISO) ...

insofern relativiert sich meine Aussage etwas ...

mach halt die Nutznachricht länger als den Schlüssel ^^
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 29.11.2011, 16:15  
Neuer Benutzer
 
Registriert seit: 01.03.2011
Beiträge: 16
PHP-Kenntnisse:
Anfänger
Nico befindet sich auf einem aufstrebenden Ast
Standard

Ah, danke. Das ich mich mit Verschlüsselungsverfahren nicht wirklich auskenne ist wohl offensichtlich.

Zum Glück lernt man nie aus.
Nico ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Alternative PEAR Auth Phantomias PHP Einsteiger 7 09.08.2011 20:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
generieren eines sicheren schlüssels, openssl test private key, wie benutze ich openssl, openssl outform host key public

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum