| Autor |
Beitrag |
klezmor
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Do 27.03.08 12:07
Da Google mittlerweile einen Webspace von über 6Gb zur Verfügung stellt, tut man sich schwer den ganzen Webspace auszunutzen. Es gibt diverse Clients, mit denen man Dateien über einen komfortableren Weg hochladen kann, ein Beispiel hierfür ist z.B. GMail Drive shell extension, da dies bei mir auf Anhieb nciht funktioniert hat, dachte ich mir schreib ich mir selbst schnell ein programm, mit dem ich Daten per smtp hochladen kann.
Dabei rausgekommen ist nun diese kleine exe. Dem Programm liegen zwei .dlls bei, welche ich von dieser Quelle habe: indy.fulgan.com/SSL/indy_openssl096.zip , das einzige was das Programm macht, ist, dass es eine ini Datei namens gmail.ini in C:\Dokumente und Einstellungen\"user"\Anwendungsdaten\GMailload erstellt, in dem das account passwort und der username, sicher mit diesem Algorithmus abgespeichert werden.
4 kleine Anmerkungen noch, damit das Programm läuft:
- da die Dateien an den googlemailaccount gesendet werden, wird das Programm unter umständen von einer Firewall blockiert
- Der Pop Zugang muss in dem Google account aktiviert sein
- Die beiden Dlls müssen sich in dem Ordner der exe oder in einem Windowsverzeichnis befinden.
- Sollte eine Fehlermeldung mit dem Titel Credentials Rejected, so liegt dies vermutlich an Google und nicht an dem Programm siehe hier
- Die Daten werden, wenn sie gepackt werden als .zip-Files gepackt, damit aber auch .exe-Dateien hochgeladen werden können(google mag das nciht), haben sie die Endung .rar sind aber zips lassen sich also problemlos mit winzip oder winrar wieder entpacken
Einloggen, um Attachments anzusehen!
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
Zuletzt bearbeitet von klezmor am Do 10.04.08 21:01, insgesamt 20-mal bearbeitet
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Do 27.03.08 12:24
Geniale Idee, gefällt mir wirklich, aber zwei Dinge stören mich daran:
1.) Man speichert keine Daten unter C:\. Dafür gibt es das Anwendungsdatenverzeichnis.
2.) Wird das Passwort verschlüsselt? Wenn nicht, dann ist das eine große Schwachstelle.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Do 27.03.08 12:48
ok beide Sachen kurz behoben, das passwort und der username wird nun mittels einer einfachen xor verschlüsselung in dem verzeichnis: 'C:\Dokumente und Einstellungen\"user"\Anwendungsdaten' abgespeichert.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Fr 28.03.08 22:15
Moin,
ich muss am Anfang gleich mal sagen: Ich habe kein Google Mail Konto.
klezmor hat folgendes geschrieben: | | ok beide Sachen kurz behoben, das passwort und der username wird nun mittels einer einfachen xor verschlüsselung in dem verzeichnis: 'C:\Dokumente und Einstellungen\"user"\Anwendungsdaten' abgespeichert. |
Das ist nicht gut. Du solltest Unterordner (Bsp.: "klezmor/gmail/") dort anlegen, um die Ordnung zu wahren.
MfG
Regan
P.S.: Die Verschüsslung ist sehr interessant (Das Passwort hat 4 Stellen):
| Zitat: |
[Einstellungen]
pw=
username=p\EpHNIXOP\SS}ZP\TQ^RP
|
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Sa 29.03.08 02:46
Also folgende Verbesserung:
-Programm komprimiert, wenn gewollt die Dateien vor dem Hochladen mit Winrar und legt ein Winrarpasswort fest(muss natürlich installiert sein)
-Dateien können per Drag and Drop auf die .exe gezogen werden und werden dann automatisch hochgeladen
Timosch hat folgendes geschrieben: |
1.) Man speichert keine Daten unter C:\. Dafür gibt es das Anwendungsdatenverzeichnis.
|
Regan hat folgendes geschrieben: |
klezmor hat folgendes geschrieben: | | ok beide Sachen kurz behoben, das passwort und der username wird nun mittels einer einfachen xor verschlüsselung in dem verzeichnis: 'C:\Dokumente und Einstellungen\"user"\Anwendungsdaten' abgespeichert. |
Das ist nicht gut. Du solltest Unterordner (Bsp.: "klezmor/gmail/") dort anlegen, um die Ordnung zu wahren.
|
Der eine so der andere so, ich denke mal das Anwendungsdatenverzeichnis kann man dafür nehmen.
Ich selbst bräuchte keinen sonderlich starken Verschlüsselungsalgorithmus, da kein Computerfreak mit Ambitionen auf Disassemblierung physichen oder virtuellen Zugriff auf meine Festplatte hat und somit auch keine Inforamtionen aus der Exe lesen kann.
Aber ich würde mich freuen wenn mir jemand einen sichereren Algorithmus wie diesen hier vorschlagen würde.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function TForm1.xorstr(a:string):string; var i:integer; begin for i := 1 to Length(a) do a[i] := Char(Byte(a[i]) xor 317); result:=a; end; |
MFG Klezmor.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Sa 29.03.08 09:08
klezmor hat folgendes geschrieben: |
klezmor hat folgendes geschrieben: | | ok beide Sachen kurz behoben, das passwort und der username wird nun mittels einer einfachen xor verschlüsselung in dem verzeichnis: 'C:\Dokumente und Einstellungen\"user"\Anwendungsdaten' abgespeichert. |
Das ist nicht gut. Du solltest Unterordner (Bsp.: "klezmor/gmail/") dort anlegen, um die Ordnung zu wahren.
|
Der eine so der andere so, ich denke mal das Anwendungsdatenverzeichnis kann man dafür nehmen.
[/quote]
Er meint, unterhalb der Anwendungsdaten. Du kannst doch nicht einfach das Anwendungsdatenverzeichnis zumüllen 
_________________ Na denn, dann. Bis dann, denn.
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Sa 29.03.08 09:39
klezmor hat folgendes geschrieben: | Aber ich würde mich freuen wenn mir jemand einen sichereren Algorithmus wie diesen hier vorschlagen würde.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function TForm1.xorstr(a:string):string; var i:integer; begin for i := 1 to Length(a) do a[i] := Char(Byte(a[i]) xor 317); result:=a; end; | |
Drei Sachen, die mir hier auffallen: - XORen mit Werten größer 255 macht keinen Sinn, siehe Wertbereich eines Bytes.
- Beim XORen können die Steuerzeichen #0, #10 und #13 herauskommen, die entweder den String abschneiden (#0) oder die INI-Datei zerstören (#13#10). Hier ist es am besten, mit Streams zu arbeiten.
- Ich würde den Schlüssel größer als ein Byte machen und dafür einen String verwenden. Du könntest dich auch mal nach einer AES-Unit umsehen.
Ich denke am sinnvollsten ist es, die INI als ganzes über einen Stream zu verschlüsseln.
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Sa 29.03.08 13:32
klezmor hat folgendes geschrieben: | Also folgende Verbesserung:
-Programm komprimiert, wenn gewollt die Dateien vor dem Hochladen mit Winrar und legt ein Winrarpasswort fest(muss natürlich installiert sein)
-Dateien können per Drag and Drop auf die .exe gezogen werden und werden dann automatisch hochgeladen
Timosch hat folgendes geschrieben: |
1.) Man speichert keine Daten unter C:\. Dafür gibt es das Anwendungsdatenverzeichnis.
|
Regan hat folgendes geschrieben: |
klezmor hat folgendes geschrieben: | | ok beide Sachen kurz behoben, das passwort und der username wird nun mittels einer einfachen xor verschlüsselung in dem verzeichnis: 'C:\Dokumente und Einstellungen\"user"\Anwendungsdaten' abgespeichert. |
Das ist nicht gut. Du solltest Unterordner (Bsp.: "klezmor/gmail/") dort anlegen, um die Ordnung zu wahren.
|
Der eine so der andere so, ich denke mal das Anwendungsdatenverzeichnis kann man dafür nehmen.
Ich selbst bräuchte keinen sonderlich starken Verschlüsselungsalgorithmus, da kein Computerfreak mit Ambitionen auf Disassemblierung physichen oder virtuellen Zugriff auf meine Festplatte hat und somit auch keine Inforamtionen aus der Exe lesen kann.
Aber ich würde mich freuen wenn mir jemand einen sichereren Algorithmus wie diesen hier vorschlagen würde.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function TForm1.xorstr(a:string):string; var i:integer; begin for i := 1 to Length(a) do a[i] := Char(Byte(a[i]) xor 317); result:=a; end; |
MFG Klezmor. |
Regan und ich meinten das gleiche. Natürlich speichert man im Anwendungsdatenordner, aber eben nicht direkt, sondern in einem Unterordner. Aber das ist eher nebensächlich.
Da du den Schlüssel (317) hier postest, ist die Verschlüsselung wirkungslos. Außerdem kann man ihn durch etwas Debugging herausfinden.
Auch wenn kein Kryptoanalytiker Zugriff auf deine Festplatte hat: Dein Programm soll doch sicherlich auch von anderen Leuten genutzt werden. Und ich z.B. würde meine Kennwörter niemals einem XOR-Algorithmus mit bekanntem Schlüssel anvertrauen.
Vorschlag: Bilde einen Hash. Dazu sollte es hier im Forum und in restlichen WWW genug Code geben.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Sa 29.03.08 13:54
Also das verschlüsselte Inifile wird nun in dem ordner namens GMailload gespeichert, ich hoffe ihr seid zufrieden, verschlüsselt wird es mittels dieses algorithmus.
Bin offen für Kritik, was gefällt euch, was könnte man noch verbessern(an der Progressbar links oben bin ich noch dran, die wird einfach nicht aktualisiert trotz Aufrufen wie:
application.processmassage; oder form.refresh; Funktioniert bei euch das Programm eigentlich, bei mir kommt öfters eine Fehlermeldung namens: Credentials rejected, dies hat anscheinend irgendwas mit den sicherheitstechniken von google zu tun, weiß allerdings nciht wie ich das verbessern könnte.
Timosch hat folgendes geschrieben: |
Vorschlag: Bilde einen Hash. Dazu sollte es hier im Forum und in restlichen WWW genug Code geben. |
Wie soll das gehen, ich muss das entschlüsselte Passwort vor der Übertragung ja an google senden und wenn ich einen Hash daraus mache kann ich es ja nciht mehr entschlüsseln.
MFG Klezmor.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
Zuletzt bearbeitet von klezmor am Sa 29.03.08 19:33, insgesamt 1-mal bearbeitet
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Sa 29.03.08 14:50
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Sirke
      
Beiträge: 208
Erhaltene Danke: 2
|
Verfasst: Sa 29.03.08 15:54
Ich würde bei dem Programm das Speichern des Passwortes/der Benutzerdaten nur auf Wunsch ausführen, weil ich persönlich nicht gerne Passwörter abspeicher!
Wie sieht das Protokoll für eine Verbindung mit GMail aus?
Also muss das Passwort im Klartext übertragen werden?
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Sa 29.03.08 16:15
Sirke hat folgendes geschrieben: | Ich würde bei dem Programm das Speichern des Passwortes/der Benutzerdaten nur auf Wunsch ausführen, weil ich persönlich nicht gerne Passwörter abspeicher!
|
habs schnell geändert, jetzt kann man auswählen ob man speichern will oder nicht.(Das Drag and Drop müsste jetzt auch wieder funktionieren)
Sirke hat folgendes geschrieben: |
Wie sieht das Protokoll für eine Verbindung mit GMail aus?
Also muss das Passwort im Klartext übertragen werden? |
Es wird nicht im Klartext übertragen, denn Google erlaubt nur Verbindungen mittels ssl, weshalb ich auch die beiden ssl dlls mitgeliefert habe.
Also ich nutze die Indy Komponenten und da legt man mit smtp.password:='blub'; dass passwort fest ich sehe auch keine möglichkeit wie das auf einfacherem Weg gehen sollte.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
Sirke
      
Beiträge: 208
Erhaltene Danke: 2
|
Verfasst: Sa 29.03.08 16:42
Wegen dem Protokoll meinte ich eig. welches SMTP-Auth benutzt wird, weil ich glaube es gibt zwei Methoden, wo auf Hashs zurück gegriffen wird! Eine Methode verwendet ein MD5-Hash des Passwortes, sodass eben dann die Passwörter bereits als Hash abgespeichert werden könnten!
Daher müsste man sich, wenn man das Programm für eine breitere Masse anbieten möchte, mehr darüber informieren und eventuell die verwendeten Komponenten verändern, sodass eben eine gewisse Sicherheit geboten werden kann!
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Sa 29.03.08 18:23
Sirke hat folgendes geschrieben: | Wegen dem Protokoll meinte ich eig. welches SMTP-Auth benutzt wird, weil ich glaube es gibt zwei Methoden, wo auf Hashs zurück gegriffen wird! Eine Methode verwendet ein MD5-Hash des Passwortes, sodass eben dann die Passwörter bereits als Hash abgespeichert werden könnten!
Daher müsste man sich, wenn man das Programm für eine breitere Masse anbieten möchte, mehr darüber informieren und eventuell die verwendeten Komponenten verändern, sodass eben eine gewisse Sicherheit geboten werden kann! |
Naja das ist relativ mein Programm ist IMHO sicherer als ein login über Firefox. Firefox kann seine Passwörter auch nicht als Hash abspeichern da die Passwörter letztendlich für eine verbindung entschlüsselt werden müssten. Dies ist übrigens nicht mal der Fall, wenn man kein Masterpasswort gesetzt hat. Was ich mir allerdings vorstellen könnte, ist, dass Google das eingegebene Passwort als Hash in nem cookie speichert und bei Anfrage den Hash seiner Datenbank, mit dem des cookies abgleicht, somit eine Entschlüsselung umgeht.
Ich sehe meine Methode aber als ziemlich sicher an und werde mich deshalb nicht darum bemühen, das Protokoll zu analysieren um gegebenenfalls einen Hash abzugleichen. Aber mich würde es trotzdem interessieren, ob es bei euch Probleme gibt, da ich ab und zu keine Verbindung zu dem Server aufbauen kann, wenn ich in einer gewissen Zeit häufig was hochlade.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Mo 07.04.08 17:50
Also ich habe jetzt noch mal ein paar sachen verbessert, erstens das Design ein klein wenig abgeändert, 2. wird der Fortschritt des Hochladens nun in der Statusleiste angezeigt, 3. ich benutze nun die zipforgekomponente, mit einer 256Aes verschlüsselung, so dass man nicht extra winrar installiert haben muss. Per Drag and Drop kann man auch ganze ordner packen und hochladen lassen.
Ich würde mich freuen, wenn jemand über Erfahrungen mit dem Programm berichten könnte.
Gruß Klezmor.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Do 10.04.08 20:54
in der progressbar stelle ich dar wieviel der Daten schon hochgeladen wurde, allerdings ist aworkcountmax immer 0, so dass ich selbst die größe der datei ermittle und den maximalwert der progressbar auf diesen wert setze, dies ist allerdings nicht ganz genau, hat jemand ne ahnung wie man das verbessern könnte?
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Fr 11.04.08 16:30
keiner ne idee oder meinung zu dem programm.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Sa 12.04.08 03:01
Hab die Antworten bis jetzt nur überflogen, aber eine recht sichere 2-Weg-Verschlüsselung stellt Blowfish da.
Schau dir das DEC vom User NegaH aus der DP an.
Eine Xor-Verschlüsselung ist ja ein witz, die knackt dir jedes Scriptkiddie in 5 Minuten
Auch mit Blowfish kann so ein Passwort mehr oder weniger einfach ausgelesen werden, aber immerhin wesentlich schwerer als mit xor.
Ich würds so machen und es mir auch für später angewöhnen. Was verschlüsseln muss man immer wieder mal.
|
|
Sirke
      
Beiträge: 208
Erhaltene Danke: 2
|
Verfasst: Sa 12.04.08 10:14
Karlson hat folgendes geschrieben: | Eine Xor-Verschlüsselung ist ja ein witz, die knackt dir jedes Scriptkiddie in 5 Minuten  |
Für einen sochen Fall, zur Passwörtverschlüsselung, ist XOR eventuell sogar Sicherer als jeder andere Algorithmus! Da man hier ein OTP verwenden kann, was ja 100% sicher ist. Selbstverständlich müssen dafür bestimmte Punkte erfüllt sein, aber da man sich bei Sicherheit und Verschlüsselung eh immer gedanken machen sollte, kann man diese dann mitbedenken!
Leider kann ich das Programm nicht Testen, weil ich keinen GMail Account habe! Mir aber auch nicht Sicher bin, wofür man dieses Programm denn benötigen sollte, weil außer dem einloggen, hat man ja keine Erleichterung?!
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: So 13.04.08 10:51
Karlson hat folgendes geschrieben: | Hab die Antworten bis jetzt nur überflogen, aber eine recht sichere 2-Weg-Verschlüsselung stellt Blowfish da.
Schau dir das DEC vom User NegaH aus der DP an.
Eine Xor-Verschlüsselung ist ja ein witz, die knackt dir jedes Scriptkiddie in 5 Minuten
Auch mit Blowfish kann so ein Passwort mehr oder weniger einfach ausgelesen werden, aber immerhin wesentlich schwerer als mit xor.
|
klezmor hat folgendes geschrieben: | in dem das account passwort und der username, sicher mit diesem Algorithmus abgespeichert werden.
|
Also den xor algorithmus verwende ich schon lange nicht mehr, sondern benutze eine sichere aes verschlüsselung.
Sirke hat folgendes geschrieben: |
Leider kann ich das Programm nicht Testen, weil ich keinen GMail Account habe! Mir aber auch nicht Sicher bin, wofür man dieses Programm denn benötigen sollte, weil außer dem einloggen, hat man ja keine Erleichterung?! |
Das Programm macht genau das, was ich oben beschrieben habe: es lädt daten über smtp auf den google account, bei Bedarf gepackt und mit aes256bit verschlüsselt. Ich nutze das Programm beinahe täglich, immer wenn ich kleinere Daten für wichtig halte(sie dürfen wegen google nicht größer als 20mb sein), ziehe ich die datei oder den ordner einfach auf das Programmicon und die daten werden hochgeladen.
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
|