Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie sicher ist das Verschlüsselt? (https://www.delphipraxis.net/57375-wie-sicher-ist-das-verschluesselt.html)

glkgereon 20. Nov 2005 12:10

Re: Wie sicher ist das Verschlüsselt?
 
Hagen, auf dich hab ich gewartet
Zitat:

Zitat von negaH
Versuche mal als Value einen String aus lauter #0 Zeichen zu verschlüsseln. Du wirst sehen das im CipherText 1 zu 1 dein Verschlüsselungskey drinnen steht. Ein möglicher Angriff ist also die "Known Plain Text Attack" bei dem ich dir eben einen Value aus lauter #0 Zeichen unterjubel. Dein verschlüsselter Wert liefert mir dann frei Haus deinen Schlüssel. Ich muß dir aber garnicht einen Value aus #0 zeichen unterjubeln, JEDER beliebige Wert reicht aus.

Hmpf. So einfach?

Zitat:

Zitat von negaH
Es gilt: nehme zur Verschlüsselung niemals direkt das Passwort !

Mach ich zum Glück nicht :)

Zum Rest:
Das Problem ist ja, dass das einzige was die Verschlüsselung eines Wertes von der eines anderen Unterscheidet ja der Schlüssel ist.
Normalerweise würde man dann den User diesen Schlüssel eingeben lassen.

In diesem Fall geht dies aber nicht.
Daher habe ich nach einer Möglichkeit gesucht, diesen Schlüssel eben aus gegebenen Werten zu erzeugen.
Dazu habe ich mir folgende Variante überlegt:

Delphi-Quellcode:
function TCryptedIniFile.ReadPassword(Section: String; Ident: String; Default: String): String;
begin
  Result:=Crypt(Crypt(Base64Decode(ReadString(Section,Ident,Default)),Section),Ident);
end;

procedure TCryptedIniFile.WritePassword(Section: String; Ident: String; Value: String);
begin
  WriteString(Section,Ident,Base64Encode(Crypt(Crypt(Value,Section),Ident)));
end;
Nun, ohne eine weitere Analyse:
Ist dieses Verfahren sicher genug, um ein Passwort für einen SQL-Account auf einem Schulserver zu schützen, der lediglich auf eine Tabelle Zugriff hat, und dort nur Einfügen, Löschen und Verändern kann, wobei das Programm auf einem Verwaltungsrechner liegt, wo normalerweise keine Schüler drankommen?
Ja, oder?

tommie-lie 20. Nov 2005 12:40

Re: Wie sicher ist das Verschlüsselt?
 
Zitat:

Zitat von glkgereon
wobei das Programm auf einem Verwaltungsrechner liegt, wo normalerweise keine Schüler drankommen?

Warum versuchst du so krampfhaft ein System zu sichern, auf das sowieso nur Personen Zugriff haben, denen du vertraust (Lehrer)?
Bei einem offenen System (z.B. jeder Client im Schulnetz der frei zugänglich ist), würde ich mir da mehr Gedanken machen.

glkgereon 20. Nov 2005 12:46

Re: Wie sicher ist das Verschlüsselt?
 
Zitat:

Zitat von tommie-lie
Zitat:

Zitat von glkgereon
wobei das Programm auf einem Verwaltungsrechner liegt, wo normalerweise keine Schüler drankommen?

Warum versuchst du so krampfhaft ein System zu sichern, auf das sowieso nur Personen Zugriff haben, denen du vertraust (Lehrer)?
Bei einem offenen System (z.B. jeder Client im Schulnetz der frei zugänglich ist), würde ich mir da mehr Gedanken machen.

Vertraue ich meinen Lehrern? :mrgreen:

Nein, mal ernsthaft.
Das Verwaltungsnetz wird in absehbarer Zeit an das restliche Netz angeschlossen.
Damit bekommen Schüler die Möglichkeit, grundsätzlich auf das Verwaltungsnetz zuzugreifen.
Ich würde nämlich nicht wetten, das wir es schaffen das komplett abzuschotten.

Ausserdem muss, bis der Rechner im Netz hängt, die Datei (Eine Datei mit dem Vertretungsplan soll analysiert und auf den Internet-Server hochgeladen werden) immer zu einem anderen Rechner gebracht und dort hochgeladen werden.

Damit ist das Programm wiederum auf einem Rechner der im Netzwerk hängt. Fortsetzung siehe oben.

St.Pauli 20. Nov 2005 12:52

Re: Wie sicher ist das Verschlüsselt?
 
Wenn das Programm nur für einen bestimmten Personen-Kreis zugänglich ist, warum fragts du dann nicht von ihnen das Passwort ab? Diese wäre eine Möglichkeit, ohne das Passwort speichern zu müssen.

glkgereon 20. Nov 2005 12:54

Re: Wie sicher ist das Verschlüsselt?
 
Zitat:

Zitat von St.Pauli
Wenn das Programm nur für einen bestimmten Personen-Kreis zugänglich ist, warum fragts du dann nicht von ihnen das Passwort ab? Diese wäre eine Möglichkeit, ohne das Passwort speichern zu müssen.

Weil ich einen Teufel tuen werde und diesem Typen der das Programm letztendlich nutzt das Passwort sagen.
Der hat das Passwort nicht zu wissen.

Sharky 20. Nov 2005 13:06

Re: Wie sicher ist das Verschlüsselt?
 
Hai Du,

ich glaube St.Pauli meinte eher das Du für jeden User deines Programmes einen User auf dem mySQL-Server anlegst.
Oder Du überlegst dir ein System welches im ersten Schritt mit einem mysql-benutzer die Verbindung zu deiner User-Tabelle aufnimmt und damit den User-Login prüft. Wenn dieser erfolgreich war bekommt dein Programm vom Server das Passwort für die eigentlichen Datentabellen und verbindet sich dann mit diesem.

Ist aber nur so ins blaue gedacht und hat eigentlich auch nichts mehr mit der urspünglichen Frage zu tun ;-)

tommie-lie 20. Nov 2005 13:20

Re: Wie sicher ist das Verschlüsselt?
 
Wenn ich so ein Szenario höre, schwirrt mir gleich das Wort "Webservice" im Kopf rum. Schonmal daran gedacht, mit ASP(.NET) oder auch nur mit einem popeligen CGI etwas zu basteln, bei dem das Ganze ausschließlich in einer kontrollierten Umgebung (dem Server) abläuft? Sichern kann man das Ganze mit HTTP-Auth oder diversen anderen UA-Verfahren, solange niemals ein Passwort im Client gespeichert wird.
Hätte sogar den Vorteil, daß man mit dem gleichen Webservice einen Vertretungsplan für die Schüler nach außen legen kann, anonymer Zugriff ist dann read-only und zeigt lediglich den Plan für den nächsten Tag an.

St.Pauli 20. Nov 2005 13:25

Re: Wie sicher ist das Verschlüsselt?
 
OK, sorry, dann habe ich den Verwendungszweck deines Programmes falsch verstanden. Ich dachte du benutzt es, um Lehrern zu ermöglichen, sich in eine interne MySQL-Datenbank deiner Schule einzuloggen.

Dann will ich es mal so sagen - man muss das ganze praktisch betrachten...
  • Wie groß ist die Wahrscheinlichkeit, dass ein Benutzer über das Netzwerk auf das Programm stößt
    und es ausführt?
  • Wie groß ist die Wahrscheinlichkeit, dass der Benutzer danach im Verzeichnis nach der Passwort-Datei schaut?
  • Wie groß ist die Wahrscheinlichkeit, dass er das Passwort wissen will?
  • Übersteigt der Aufwand, das Passwort in der INI-Datei zu knacken die Möglichkeiten, die sich dem Angreifer erschließen würden?

Neutral General 20. Nov 2005 13:28

Re: Wie sicher ist das Verschlüsselt?
 
Zitat:

Zitat von St.Pauli
OK, sorry, dann habe ich den Verwendungszweck deines Programmes falsch verstanden. Ich dachte du benutzt es, um Lehrern zu ermöglichen, sich in eine interne MySQL-Datenbank deiner Schule einzuloggen.

Dann will ich es mal so sagen - man muss das ganze praktisch betrachten...
  • Wie groß ist die Wahrscheinlichkeit, dass ein Benutzer über das Netzwerk auf das Programm stößt
    und es ausführt?
  • Wie groß ist die Wahrscheinlichkeit, dass der Benutzer danach im Verzeichnis nach der Passwort-Datei schaut?
  • Wie groß ist die Wahrscheinlichkeit, dass er das Passwort wissen will?
  • Übersteigt der Aufwand, das Passwort in der INI-Datei zu knacken die Möglichkeiten, die sich dem Angreifer erschließen würden?

Und allein daraus würde ich als außenstehender sagen: Sicher genug. Wenn ein schüler das Kennwort wissen will dann meistens nur ma aus spaß.. und wenn er dann das Passwort findet und merkt das es verschlüsselt ist dann haben die meisten schon keine Lust mehr.. ich glaube da würde sogar ne einfache Cäsar Verschlüsselung schon reichen als Abschreckung :mrgreen:

Phoenix 20. Nov 2005 15:15

Re: Wie sicher ist das Verschlüsselt?
 
Die imho beste Lösung wäre, für jeden Benutzer einen eigenen User in der Datenbank anzulegen, der genau auf die Tabellen die Berechtigungen hat, die er auch braucht um arbeiten zu können. Das macht die Sache Sicherheitstechnisch recht einfach, weil Du Dich nicht um eine Verschlüsselung kümmern musst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz