AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Username Paßwort nicht im Klartext im Programm Prinzipfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Username Paßwort nicht im Klartext im Programm Prinzipfrage

Ein Thema von haentschman · begonnen am 1. Jan 2009 · letzter Beitrag vom 1. Jan 2009
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

Username Paßwort nicht im Klartext im Programm Prinzipfrage

  Alt 1. Jan 2009, 13:47
Guten Morgen an alle...

- prinzipiell geht es darum, eine Mail mit Anhang per Indy zu verschicken. Wie das funktioniert ist klar.
- zum Versenden benötigt man ja die Authentifikationsdaten.
- diese Daten sollten ja nicht im Klartext im Programm hinterlegt sein.
- welcher Weg ist für Euch am sinnvollsten ?

Ich hatte folgende Idee:
- die Benutzerdaten in einem Textfile verschlüsselt auf dem Server im Internet.
- vor Versenden:
- Stringlist erzeugen
- IdSMTP erzeugen
- Textfile holen
- Textfile entschlüsseln
- entschlüsselte Werte in Stringlist
- Mail mit den Werten aus Stringlist verschicken
- Stringlist freigeben
- IDSMTP freigeben

Somit wären die Daten nur kurzfristig im Klartext im Memory (ausreichende Sicherheit)
Sollten sich die Benutzerdaten ändern, kann man das über das Textfile bequem pflegen.

Was denkt Ihr ? Danke für Tipps.


PS:
irgendwo hier im Forum gab es schon mal eine Diskussion darüber. Ich finde es nicht...
...bitte her mit den Links...Danke.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 13:51
Wenn es Dir eher um die generelle Hinterlegung solcher Daten geht ... den goldenen Mittelweg kann ich Dir auch nicht sagen, aber Deine Lösung finde ich auch nicht viel besser, als die Daten gleich verschlüsselt mit dem Programm zu speichern.

Ansonsten zu Deinem speziellen Problem. Wenn der Empfänger immer der gleiche ist, dann nutze doch einen Web-Service (o.ä.), welcher die Daten entgegennimmt und dann direkt die Email auf dem Server hinterlegt.

Andere Möglichkeit, wenn es nur um das Versenden der Emails geht. Sende die Email doch direkt an den Empfänger, dann benötigst Du keinen Proxy-SMTP Server und somit auch keine Nutzerdaten. SMTP ermöglicht immer das unauthentifizierte Senden einer Email an den Empfänger, wenn dieser auch vom SMTP-Server verwaltet wird (sonst gäbe es ja auch keinen Spam )

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 13:52
Hmm... ich würde es noch anders machen:
Wenn du die entsprechenden Mittel hast (Server im Internet) könntest du einfach ein Programm/PHP-Script auf den Server packen und dazu eine Verbindung aufbauen (evtl. verschlüsselt oder gefiltert). So wären zumindest die Daten für die Mail sicher auf dem Server.

Edit: Argh... roten Kasten weggeklickt... ich schließe mich sakura also an...
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 13:54
Hallo haentschman,

es geht auch sicherer ohne nötige Authentifizierungsdaten, wenn du die Mails nicht direkt über die Indys versendest, sondern über PHP. Ein Absender lässt sich dort beliebig angeben, somit merkt man nicht, dass die Mail nicht von deinem Account kommt.
Es ist auch Möglich, mit PHP Mails über POP3- oder SMTP-Accounts zu versenden und die Account-Daten bleiben somit in den PHP-Dateien und sind für keinen Zugänglich.

Diesen Weg würde ich einschlagen, damit die Daten wirklich nicht ausgelesen werden können.

Grüße, Matze

Edit: Na da waren gleich 2 schneller.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#5

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 13:59
Zitat von haentschman:
Guten Morgen an alle...

- prinzipiell geht es darum, eine Mail mit Anhang per Indy zu verschicken. Wie das funktioniert ist klar.
- zum Versenden benötigt man ja die Authentifikationsdaten.
Nicht zwingend.

Nur, wenn Du die Mail per SMTP über einen bestimmten Mailaccount absenden willst, musst Du Dich dort anmelden.

Normalerweise kannst Du aber, wenn die Zieladresse bekannt ist (das wird sie ja sein), die Mail aber auch per SMTP direkt beim Ziel-Mailserver abliefern. In der Regel nimmt ein Ziel-Mailserver eine Mail die für ihn selber bestimmt ist und an ein gültiges Mailaccount abgeliefert wird ohne Anmeldung an.
Nur wenn der Mailserver die eMail an einen anderen Mailserver weiterleiten muss (SMTP-Relay) sollte er eine Anmeldung verlangen. Hintergrund: Ich schicke eine Mail von meinem Account an Dich weg.

Ich schicke diese Mail an meinen Mailserver. Der merkt: Die Mail ist nicht für meinen Mailserver sondern für einen anderen. Er fragt mich nach Anmeldungsdaten. Die werden geliefert, er sucht den Zielmailserver (Deinen) und schickt Dir Mail dorthin. Wenn Dein Mailserver jetzt auch bei Mails die für ihn selber sind Anmeldedaten fragen würde - woher sollte mein Mailserver die denn kennen? Die Mail ist direkt für ihn, und deswegen nimmt er sie ohne zu fragen an.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 14:00
Danke für die schnelle Reaktion...

der gesendete Anhang ist die FehlerLog Datei wenn der User sie senden möchte. Also nix wildes. Deswegen sollte der Aufwand gering sein.
Zitat:
SMTP ermöglicht immer das unauthentifizierte Senden einer Email an den Empfänger
...bei meiner ganzen Leserei war immer von Authentifizierung die Rede. Ich klemme mich noch mal dahinter. 8)
Zitat:
die Daten gleich verschlüsselt mit dem Programm zu speichern.
...ist schon richtig. Ich fand, daß bei Änderungen der Mailadresse, Zugangsdaten diese über ein externes File leichter pflegbar wären, damit ich nicht jedesmal ein Update zur Verfügung stellen müßte.

...ich suche dann mal weiter.

PS: PHP sind für mich noch böhmische Dörfer...hatte noch keine Zeit mich damit zu beschäftigen
  Mit Zitat antworten Zitat
-Ralf-

Registriert seit: 4. Aug 2005
Ort: Baiersbronn
16 Beiträge
 
Delphi XE3 Professional
 
#7

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 17:39
Hy,
es gibt natürlich super gute und sichere Verfahren. Für einfache Dinge kannst du aber das hier verwenden...

Hier ein kleiner Schnipsel, wie du mi Hilfe einer INI-Datei die Daten auf dem Server hinerlegen kann. Der Nutzer / sein Programm holt sich zunächst diese Datei und entnimmt ihr dann den eigentlichen Zugang. Danach kann man die Datei auf dem Anwender-PC auch gleich wieder löschen.
Ich verwende das seit einiger Zeit.


// hiermit kannst du eine INI-Datei herunterladen, die den verschlüsselten Zugang enthält:
var i : integer;
s : string[255];
c : array[0..255] of byte absolute s;
begin
// Zuerst "update.ini" abholen...
if not GetURLFile('http://www.TestInternetSeite/update.ini','c:\TestProgramm\Update.ini') then
begin
StatusBar_Updates.SimpleText := '>> kein Internet vorhanden';
screen.Cursor := crDefault;
exit;
end;
UpdateIni := TIniFile.Create('c:\TestProgramm\Update.ini');
// INI-Datei auslesen:
s := UpdateIni.readstring('FTPZugang','User','');
For i := 1 To ord(s[0]) do c[i] := 5 Xor c[i];
IdFTP1.Username := s;
StatusBar_Updates.SimpleText := 'User eintragen...';
s := UpdateIni.readstring('FTPZugang','Pass','');
For i := 1 To ord(s[0]) do c[i] := 5 Xor c[i];
IdFTP1.Password := s;
StatusBar_Updates.SimpleText := 'Passwort eintragen...';
s := UpdateIni.readstring('FTPZugang','Home','');
For i := 1 To ord(s[0]) do c[i] := 5 Xor c[i];
IdFTP1.Host := s;
StatusBar_Updates.SimpleText := 'Host eintragen...';
// Verbindung zum Server aufbauen
Try
IdFTP1.Disconnect;
IdFTP1.Connect;
except
IdFTP1.Disconnect;
StatusBar_Updates.SimpleText := 'Vorgang abgebrochen!';
showmessage('Der Vorgang musste abgebrochen werden! Verfügen Sie über eine funktionierende Internetverbindung? Oder unterbindet Ihre Firewall dem Programm auf das Internet zuzugreifen? Versuchen Sie es evtl. nochmals...');
screen.Cursor := crDefault;
exit;
end;


// So kannst du die INI-Datei erstellen - ich verwende dazu ein Memo-Feld...

// INI-Datei erstellen und speichern
Memo_AufbauBearbeiten.Clear;
Memo_AufbauBearbeiten.lines.add('[FTPZugang]');
s := 'TestInternetSeite.de';
For i := 1 To ord(s[0]) do c[i] := 5 Xor c[i];
Memo_AufbauBearbeiten.lines.add('Home=' + s);
s := 'p36288807';
For i := 1 To ord(s[0]) do c[i] := 5 Xor c[i];
Memo_AufbauBearbeiten.lines.add('User=' + s);
s := 'deborars';
For i := 1 To ord(s[0]) do c[i] := 5 Xor c[i];
Memo_AufbauBearbeiten.lines.add('Pass=' + s);
Memo_AufbauBearbeiten.lines.SaveToFile('c:\Testpro gramm\Update.ini');
//INI-Datei jetzt hochladen...
Ralf S.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#8

Re: Username Paßwort nicht im Klartext im Programm Prinzipfr

  Alt 1. Jan 2009, 19:33
...Update.

@-Ralf-
Danke für Deine Info. Das ist im Prinzip, das was ich meinte mit die Userdaten nicht im Programm zu speichern sondern bei Bedarf anzufordern. Benutzen und wegschmeißen...

Ich habe nun ein wenig mit SMTP herumprobiert. Es sieht wahrscheinlich so aus, daß mein smtp.1und1.de grundsätzlich eine Authentifizierung verlangt. War eigentlich fast zu erwarten.

Zitat:
Normalerweise kannst Du aber, wenn die Zieladresse bekannt ist (das wird sie ja sein), die Mail aber auch per SMTP direkt beim Ziel-Mailserver abliefern.
...darunter verstehe ich:
- ohne Authentifikation
- z.B. SenderDomain = EmpfängerDomain
wie müßten dann die Einstellungen Host, Ziel E-Mail, from E-Mail aussehen ?

könnte ich das bitte mit dem "direkt abliefern" noch einmal ein wenig ausfühlicher erklärt bekommen ?

Danke
  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:00 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