Autor Beitrag
Flitzs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Mo 22.06.09 20:38 
Hey,
da ich nach einiger Zeit googeln nichts gefunden habe das mir weiterhilft, probier ichs mal hier.

Wie speichere ich ein Passwort sicher auf einem PC?

Also der erste Schritt der mir hier einfällt ist natürlich Hashen. Jedoch könnte man doch einfach ein Passwort hernehmen das man selbst erstellt und dann auch verschlüsseln und einfach den Eintrag des Programms ersetzen.

Dann bleibt noch die Möglichkeit dem Hash irgendeine Zufalls- Zahl oder Konstante hinzuzufügen, doch diese müsste ja auch im Programm vermerkt werden und wäre so ja nicht wirklich viel sicherer.

Dann hatte ich noch die Idee, dem Hash irgend eine Passwort bezogene Information hinzu zu fügen (z.B. Länge des Passworts), doch wäre das ja auch nicht viel sicherer, da ja, sobald man weiß wie der Hash erstellt wird, das auch wieder sinnlos wäre.

Also bleibt die Frage, was übersehe ich? Wie speichere ich ein Passwort sicher auf einem PC?

mfg Flitzs.
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Mo 22.06.09 22:25 
Kurze Antwort: Am besten gar nicht *g*

Wenn du das Passwort mit einem Super-Duper-Turbo-Algorithmus verschlüsselt auf der Festplatte speicherst, kann man das Programm z.B. in einer virtuellen Maschine installieren, ein Passwort nach Wahl generieren und die Datei ersetzen.

Ich erinnere mich da an eine Zitat (CCC wars glaub ich)
Zitat:
Und die Firewall von XXX ist total praktisch - sie hat einen Passwort-Safe und kontolliert, wann die Passwörter übertragen werden. Die Datei ist zwar verschlüsselt, aber man kann sie einfach in eine andere INstallation kopieren und schon hat man alle wichtigen Passwörter des Opfers!


Also die einzige, wirklich sichere Variante, ein Passwort zu speichern, ist es, dieses nochmal mit einem Passwort zu schützen ;)

Wenn es nur ein "Sichtschutz" sein soll, dass man nicht mit nem Texteditor rankommt, reicht eine xor-Verschlüsseleung mit einem festen Passwort.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 22.06.09 23:15 
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Wenn es nur ein "Sichtschutz" sein soll, dass man nicht mit nem Texteditor rankommt, reicht eine xor-Verschlüsseleung mit einem festen Passwort.

Ich hoffe du meintest XOR-Verschlüsslung jetzt nicht als Fachbegriff. Sonst entzieh ich dir jegliche Akkreditierung von Fachkompetenz :mrgreen:

Es gibt zwar eine Reihe von Krypto-Verfahren, die auf XOR basieren (eigentlich nahezu alle benötigen irgendwo ein XOR für ihre Berechnungen) aber es gibt nicht DIE "XOR-Verschlüsslung". Das, was meistens darunter verstanden wird, ist eine Klasse von Substitutionsverfahren mit endlich langen (oft von der CPU mit einem Schlag verarbeitbaren) Schlüsseln, aber auf Grund deren Antiquiertheit und bekannten Schwächen hat das mit Verschlüsslung nichts zu tun ;-)

Ab Blowfish, Tiger, AES, DSS, RSA und ECC können wir gerne übervon Verschlüsslung reden ;-)

user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Kurze Antwort: Am besten gar nicht *g*

Full-ACK ;-)

Um's Ausführlich zu machen: so, dass die Passwort-Datei alleine keine Informationen über die Passwörter zulässt, ohne, dass man dafür eine andere Information benötigt.

Dies ist im einfachsten Fall z.B. ein "Masterpasswort", was zum Erzeugen des Schlüssels für die Verschlüsslung (und damit meine ich wirklich nicht XOR!) verwendet wird.

Wird das verwendete Passwort nicht für die Weitergabe gebraucht (also rein zum Abgleichen), so sollte man einen PW-Hash nehmen. Da MD5 und SHA1 inzwischen gebrochen UND kaputt sind, sollte mindestens auf SHA2 (SHA256 oder SHA512), besser aber auf SHA3, Whirlpool oder RIPE MD320 gesetzt werden.

Zur Sicherung der Hashes gegen Manipulationen bietet es sich an, wenn man eine Sicherung des Hashes mit Hilfe eines Key Exchange-Protokolls, über Public Key Cryptography (DSS, RSA oder ECC wären z.B. möglich) oder eines Voting-Protokolls wären denkbar.

Wichtig ist aber in allen Fällen, dass man irgendwo einen vertrauenswürdigen Punkt braucht, der sicherstellt, dass die Verifikation z.B. der Signatur eines Public Key-Verfahrens vertrauenswürdig ist. Stellt das Passwort z.B. eine Seriennummer für ein Programm dar, so wäre dieser in der Literatur oftmals Trend oder Vera bezeichnete Punkt z.B. der Infrastruktur-Server des Programmes.

Rein praktisch könnte soetwas u.U. so aussehen, dass das PW z.B. gehasht wird und dieser Hash dann an den Infrastruktur-Server gesendet wird, auf dem ein X.509-Zertifikat mit Private Key vorhanden und, der diesen Hash dann unterschreibt. Der Client prüft anschließend die Signatur des Servers und übernimmt diese mit samt dem Hash in die PW-Datei. Da der Client jederzeit über den Public Key des Servers die Signatur prüfen kann, die auch in der PW-File auftaucht, kann auch eine Manipulation am Passwort erkannt werden.

Dieses Verfahren scheitert jedoch an der Vertrauenswürdigkeit von Trend/Vera, bzw. der Sicherheit, dass Manipulationen am Public Key, den der Client vom Server hat, erkennen kann. Insgesamt muss man immer bedenken, dass man auf einer unvertrauenswürdigen Platform kein vertrauenswürdiges System bauen kann.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Di 23.06.09 05:24 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Ab Blowfish, Tiger, AES, DSS, RSA und ECC können wir gerne übervon Verschlüsslung reden ;-)
Nö, auch Caesar-Verschlüsselung, also einfache Buchstabensubsitution ist eine Verschlüsselung. Somit kann man auch das gemeinhin als XOR-Verschlüsselung bekannte Verfahren als 'Verschlüsselung' bezeichnen. Ob sie wirklich einigermaßen sicher ist, sei mal dahingestellt.

_________________
Na denn, dann. Bis dann, denn.
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Di 23.06.09 06:28 
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Kurze Antwort: Am besten gar nicht *g*
Für 100%ige Sicherheit stimmt diese Antwort natürlich, aber da das Speichern von Passwörtern immer wieder benötigt wird, muss man Abstriche an der Sicherheit oder dem Komfort machen!

Für eine hohe Sicherheit benötigt man mindestens eine vertrauenswürdige Hard- oder Software und/oder ein Geheimnis, welche entweder das Speichern selbst und/oder die Verschlüsselung (als Blackbox) übernimmt oder in diese Berechnungen eingeht. Dies umfasst Smartcards, USB-Tokens o.ä. als lokale Hardware oder einen Server, welcher in vielerlei Hinsicht (außreichend) sicher und vertrauenswürdig genutzt werden kann, als globale nicht direkt zu erreichene Hard- oder Software. Als Geheimnisse können ebenfalls Hardware oder Passwörter o.ä. genutzt werden.

In der IT-Sicherheit muss man immer Ziele, Vorraussetzungen und Annahmen treffen, um ein Protokoll o.ä. zu erstellen, da nur mit diesen Angaben wirklich ein (kausaler) Beweis der Sicherheit möglich ist.


Die Wahl des kryptographischen Primitivs entscheidet sich ebenfalls an den Zielen und Voraussetzungen, da z.B. oft non-malleability als Eigenschaft für die Primitive gefordert wird, welche die XOR-Verschlüsselung (mit einem pseudozufälligen Bytestrom) nicht besitzt.
Flitzs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Di 23.06.09 10:40 
Hey,
danke für die Antworten.

mfg Schakal
R4id
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 28

Win XP Home, Win XP Prof.
D7 Prof., D2006 Arch., BCB2006 Arch.
BeitragVerfasst: Di 23.06.09 11:04 
Naja, ich habs bisher immer so gemacht, das Password verschlüsselt und vom verschüsselten Passwort eine Check-Sum erstellt. Funktioniert auch zimlich gut, denk ich mal ^^
Flitzs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Di 23.06.09 20:14 
user profile iconR4id hat folgendes geschrieben Zum zitierten Posting springen:
Naja, ich habs bisher immer so gemacht, das Password verschlüsselt und vom verschüsselten Passwort eine Check-Sum erstellt. Funktioniert auch zimlich gut, denk ich mal ^^


Naja, was machst du dann mit der Checksum?

mfg Schakal