AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Password in datei speichern ?

Ein Thema von mimi · begonnen am 26. Jul 2007 · letzter Beitrag vom 26. Jul 2007
Antwort Antwort
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Password in datei speichern ?

  Alt 26. Jul 2007, 18:34
Hallo,
ich überlege seit einiger Zeit wie ich am besten ein Password so in einer Dateispeicherere das es sinn ergibt !

Ich meine damit folgendes:
Der user möchte jetzt einen Text sicher speichern dazu verwende ich
die unit RCx.pas die ich hier im Forum gefunden habe.
das geht auch.

Wenn ich bei meiner VST auf einen Eintrag klicke der Verschlüsselt ist, kommt/soll ein Password Dialog kommen.
Nur wenn das Richtige Password eingeben wird, sollen die Daten zum Eintrag freigeben werden.

Im Moment ist so gelöst: ich speichere zu jedem Item 1 Password ab.
Nicht im klar Text sondern mit dieser Funktion:
Delphi-Quellcode:
function StringToCharIndex(const aValue: String): String;
var
  x:Integer;
  str:String;
  k:Integer;
begin
  str:='';
  k:=0;
  for x:=1 to Length(aValue) do begin
    k:=k+ord(AValue[x]);
  end;
  str:=IntTostr(k);
  result:=str;
end;
Die Funktion hat ein String als Rückgabe wert weil es schon ein längere Text sein könnte/kann.

bei der Password eingebe wird jetzt Geprüft ob das gespeicherte Password mit dem eingeben stimmt, dazu rufe ich einfach die oben gepostet Funktion auf und gut ist.

Sobald die VST abgespeichert wird, wird der Text der zum Item der VST gehört gespeichert und verschlüsselt.
Und genau das ist Problem:
Ich möchte jetzt z.b. Eintrag4 mit dem Password: Sicher1 haben und Eintrag1 mit dem Password: Sicher2
der Text zu Eintrag4 soll mit Sicher1 verschlüsselt werden, sicher1 ist aber als zahlen reihe so abgespeichert das es nicht wieder zurück gebildet werden kann.
Und ich möchte nicht das der user bei jedem geschütztem Eintrag sein Password eingeben muss.

ich habe mir überlegt, das Password was ich ja abspeichere zu Verlängern und Fertig.
Das Problem dabei ist nur, das Projekt möchte ich eines Tages veröffentlichen als OpenSoruce.
eine erstellt Datei soll auch danach noch 80% Sicher sein.

Ich hoffe ihr versteht das wie ich es meine.

Jeder Eintrag kann/(muss aber nicht) ein anders Passwort haben.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Password in datei speichern ?

  Alt 26. Jul 2007, 18:55
ich glaube ich habe eine Lösung, für das Problem gefunden:
Ich stelle beim verändern das Textes zum Eintrag einfach eine Variable auf True.
Wenn ich ein Geschützen Text lesen möchte, muss ich ja das Password sowieso eingeben.
das Wird jetzt schon in einer Liste geführt mit dem Eintrag zusammen.
Jeder Eintrag hat eine einmalige ID die zufällig erzeugt wird.
Beim Speichern könnte ich jetzt prüfen ob die Variable die beim verändern auf True gestellt wurden ist, auf False steht, der alte Eintrag wird also so genommen.

Wenn ein Text verändert wurde, steht das Password ja im Klartext in ein Array drin.
zugeben, das Password könnte ich jetzt noch mit einem zufallst Password verschlüsseln.

das währe noch eine Stufe sichere.
und die ID auch. Bei jedem Programm start wird dann ein Zufallst Password erstellt und in einer Variable gepackt(evlt. auch aufgeteilt in ein Array)

Was meint ihr dazu ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Password in datei speichern ?

  Alt 26. Jul 2007, 19:04
Man könnte das Passwort mit MD5 kodieren, und so speichern.

EDIT:
Pascal impementation
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Password in datei speichern ?

  Alt 26. Jul 2007, 19:14
Das würde alles auf ein und das selbe Problem rauß kommen:
ich möchte den text ja mit einem Password verschlüsseln und nicht mit der Md5Sum. Das währe ja zu einfach oder ?

ach ja: ich arbeite mit Lazarus unter Linux ! auf die meisten Komponenten habe ich also kein zugrief !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: Password in datei speichern ?

  Alt 26. Jul 2007, 19:31
Ein Password-Dialog, in diesem gibt der Benutzer sein Passwort ein, das wird benutzt um die Datei zu ver/entscl. Alles andere ist unsicher, soll heisen das Passwort sollte vom Benutzer frei gewählt werden und nur in seinem Kopf gespeichert werden.

Der Ablauf der Verschl. einer Datei sieht so aus

1.) per Dialog das Passwort beim Benutzer erfragen
2.) Zufallssalt A (16 Bytes) erzeugen
3.) über den Zufallssalt A + Password wird mit einer Hashfunktion zb. SHA1 ein Sessionkey S erzeugt.
4.) Zufallssalt B (16 Bytes) erzeugen
5.) per Hashfunktion zb. SHA1 eine Prüfsumme P über Zufallssalt B + Datei erzeugen
6.) in der Zieldatei einen Header schreiben, dieser enthält Zufallssalt A
7.) RCx mit Sessionkey S initialisieren
8.) den Zufallssalt B mit RCx verschlüsseln und in Zieldatei speichern
9.) die Prüfsumme P mit RCx verschlüsseln und in Zieldatei speichern
10.) die Datei mit RCx verschlüsseln und in Zieldatei speichern

RCx benutzt S als Passwort. Die Schritte 8., 9. und 10. arbeiten mit dem gleichen RCx Objekt. Dh. dieses wird einmal mit S initalisiert und dann verschl. nacheinander B,P und Datendatei. Das ist dann vergleich so als ob deine Datei am Anfang die Daten B und P enthielte.

So wirds wirklich sicher und alle wichtigen Angriffe der Kryptologie werden verhindert.
Statt der Prüfsumme P könntest du auch nach Punkt 10. einen bekannten String als Identifier verschlüsseln und in die Zieldatei hintendran hängen. Wird nun wieder entschlüsselt und es treten Fehler auf so wird dieser Identifier am Ende der Entschlüsselung falsch sein.

Gruß hagen
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Password in datei speichern ?

  Alt 26. Jul 2007, 20:12
Danke für deine Antwort, ich habe das jetzt so:
Ist ein Eintrag verschlüsselt und soll er geöffnet werden kommt ein Password Dialog.
Wenn das Password richtig eingeben wurde, wird es in ein Array zusammen mit dem verschlüsseltem Password gespeichert.

Verwenden Einträge die gleichen Passwörter, so muss der user nicht 100 mal das gleiche Password eingeben.

Ich denke ich werde dein Rat befolgen und bei diesem Array anwenden, weil im Moment wird das Password ja zweimal gespeichert im Array einmal als Zahl und einmal als Klartext.

In der Datei die mit der Speicher Funktion von der VST erzeugt wird/wurde wird es nur einmal gespeichert.

Möchte der User ein Eintrag verändern muss er ja schon mind. einmal das richtige Password Eingeben.
Was ja in ein Dynamisches Array gespeichert wird.
Ich denke im Moment dürfte das große Problem sein, wenn jemand den Ram Ausliest.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz