AGB  ·  Datenschutz  ·  Impressum  







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

DEC 5.2 String hashen?

Ein Thema von a.def · begonnen am 2. Mai 2017 · letzter Beitrag vom 7. Mai 2017
Thema geschlossen
Seite 4 von 12   « Erste     234 56     Letzte »    
a.def
(Gast)

n/a Beiträge
 
#31

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 20:33
Mh ich habe das so realisiert (hoffe ihr haut mich nicht)
--- siehe Anhang Beitrag 34 ---

Ich habe ein kleines Programm welches nur den Code enthält um den Hash an eine Datei zu hängen. Alle anderen Dateien enthalten nur den Code um den Hash auszulesen.
Nachdem ich alles kompiliert habe, ziehe ich einfach meine Exe-Dateien in dieses kleine Tool, klicke den Button und jede Exe bekommt einen Hash verpasst.

Geändert von a.def ( 2. Mai 2017 um 21:36 Uhr)
 
nahpets
(Gast)

n/a Beiträge
 
#32

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 21:05
Das kann man noch ausbauen:

Baue einen AfterCompile-Experten.

Der hängt nach der erfolgreichen Kompilierung den Hash direkt an die Exe, dann sparst Du die die Nutzung des Tools und kannst auch nicht mal vergessen den Hash an 'ne Exe zu hängen.

Die von Dir geschrieben Funktionen kannst Du auch in 'nem Experten verwenden.
 
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#33

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 21:08
Kurzer Zwischeneinschub: Wenn dein Ziel wirklich die kryptographische Sicherheit ist, dann würde ich dir nicht empfehlen diese selbst zu basteln. Es ist wirklich "mal schön" sowas zu auszuprobieren und daran herum zu probieren, aber im Allgemeinen ist das nicht wirtschaftlich, da es wesentlich einfachere Lösungen gibt. Eine Hashfunktion so zu konstruieren, sodass sie kryptographisch nicht so einfach angreifbar ist, ist schwer! Es muss "hinreichend" schwer sein Kollisionen künstlich erzeugen zu können. Die Funktion muss zusätzlich die "normalen" Vorteile erfüllen: möglichst breit "streuen", Berechenbarkeitsaufwand "vorhersehbar" deterministisch, ...
Fertige Primitive stehen auch stärker im öffentlichen Fokus, sodass Schwächen auch öffentlich im Interesse stehen und man davon mitbekommt. Die Funktionen sind so komplex, dass man sich auch gegen verdeckte Manipulation schützen kann.

Eine Idee als Lösung ist zum Beispiel das Kaskadieren verschiedener Hashfunktionen, das heißt das hintereinanderausführen verschiedener oder gleicher Hashfunktionen, die vielleicht dazwischen noch mit Klartext konkateniert werden, oder oder...

Gruß ,
Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
 
a.def
(Gast)

n/a Beiträge
 
#34

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 21:30
Für alle die es interessiert, hier ist meine fertige Selftest-Unit.
Sie ist Writer und Reader in einem.
Aufgerufen wird in der DPR-Datei mit THashFunctions.doSelfTest(<Dateiname>); Verbesserungsvorschläge gerne erwünscht! Mit dem Onlinestellen dieses Codes möchte ich euch gerne zeigen, dass ich natürlich auch versuche Dinge umzusetzen, auch wenn ich mich super-doof anstelle bei 9 von 10 Gelegenheiten.

Delphi-Quellcode:
// Selbsttest ausführen, vorzugsweise am Anfang der DPR-Datei (?)
THashFunctions.doSelfTest(<Dateiname>);

// Einer Datei einen Hash unterjubeln
THashFunctions.setFileContentHash(<Dateiname>);

// Hash einer Datei manuell auslesen (warum auch immer)
THashFunctions.getFileAddedHash(<Dateiname>);
Zitat:
Wenn dein Ziel wirklich die kryptographische Sicherheit ist, dann würde ich dir nicht empfehlen diese selbst zu basteln. Es ist wirklich "mal schön" sowas zu auszuprobieren und daran herum zu probieren, aber im Allgemeinen ist das nicht wirtschaftlich, da es wesentlich einfachere Lösungen gibt.
Ist eher eine Spielerei, welche ich trotzdem anwenden werde. Ich biete Freeware an und verdiene kein Geld damit. Ob ich an einer Lösung 1 Stunde oder 1 Tag sitze, ist mir im Prinzip egal.
Angehängte Dateien
Dateityp: pas uHash_FileSelftest.pas (3,8 KB, 8x aufgerufen)
 
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#35

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 22:27
Hallo a.def

nur kurz: Am Ende des Files fällt dein md5Hash auf wie ein bunter Hund.

In einem weiteren Schritt wirst du nun den Hash Code direkt irgendwo in deine Programm Exe schreiben .

Eine Frage nebenbei: Wie vertreibst du deine Freeware? Wenn via Download von einer Webseite, dann musst du diese doch sicher irgendwann auch digital signieren - oder hast du derart hohe Downloadzahlen, dass Edge und Co den Download auch so zulassen?


Gruss
M
Michael Gasser
 
a.def
(Gast)

n/a Beiträge
 
#36

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 22:34
Zitat:
nur kurz: Am Ende des Files fällt dein md5Hash auf wie ein bunter Hund.
Ja, leider. Ich hätte sonst keine Idee wo man ihn verstecken könnte.

Zitat:
In einem weiteren Schritt wirst du nun den Hash Code direkt irgendwo in deine Programm Exe schreiben.
Ok das verstehe ich nicht. Was genau meinst du?
Wenn glaube zu verstehen was du meinst, dann schreibe ich dir das jetzt mal per PN

Zitat:
Wenn via Download von einer Webseite, dann musst du diese doch sicher irgendwann auch digital signieren - oder hast du derart hohe Downloadzahlen, dass Edge und Co den Download auch so zulassen?
Hatte bisher keinelei Probleme. VirusTotal hat bei meiner Exe auch nicht gemeckert (Detection ratio: 0 / 61).

Digital signieren wäre echt schön, ist mir aber zu teuer. Muss ich dafür nicht sogar meinen Sourcecode preisgeben?
Was würde ein digitales Zertifikat denn im günstigsten Falle kosten? Und wäre das dann auch alles seriös?

Was die Downloadzahlen angeht. Wenn ich ein Update veröffentliche dann schnellt mein Traffic mal gerne auf 10GB und mehr pro Monat.

Geändert von a.def ( 2. Mai 2017 um 22:38 Uhr)
 
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#37

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 23:00
Dann hast du sicher riesige Downloadzahlen und deine User sehen nie "..diese Datei wird selten...".."...könnte schaden...trotzdem?"


Zur Zertifikatsfrage:
Du musst den Code selbstverständlich nicht preisgeben. Du signierst deine exe-Files auf deiner Kiste.

Die Preise für Zertifikate sind ziemlich verschieden. Ich habe meines von einem Reseller von comodo. Das Zertifikat selbst wird in meinem Fall (wie wenn ich es von comodo gekauft hätte) direkt von comodo ausgestellt.

Ich musste nach meinem Antrag eine Stromrechnung oder eine Telefonrechnung und eine Kreditkartenrechnung via eMail oder Fax einreichen. Auf diesen Rechnungen musste natürlich meine Adresse [die gleiche wie beim Zertifikatsantrag] stehen. Dann ging's ab zum Notar. Dieser beglaubigte meinen Ausweis (in CH Identitätskarte). Das beglaubigte Dokument musste ich danach irgendwo in die USA senden. Bei der Beglaubigung empfehle ich dir den Notar zu bitten, dass er es genau so macht wie vom Aussteller verlangt wird, sonst drehst du eventuell eine "Ehrenrunde Notar II" [Beglaubigungen werden nicht überall auf dieser Welt gleich ausgestellt. Eigentlich sollte die Beglaubigung natürlich so ausgeführt werden wie es bei dir oder mir üblich ist, aber... ].

Wenn du als Firma eingetragen bist, dann sind gewisse dieser Schritte nicht nötig.

Darauf rief comodo bei mir an und fragte, ob ich ein Zertifikat beantragt hätte - und rief beim Notar an und fragte, ob er meine ID beglaubigt hätte.

Kurz nach diesem Anruf erhielt ich mein Zertifikat.

Falls du eins kaufst, dann entscheide dich für eines für mehrere Jahre, weil du je nach Aussteller beim nächsten Mal wieder durch die gleiche Mühle durch musst. [In der CH sind die Notarkosten kantonal geregelt - im Kanton Bern sind sie hoch - ich bezahlte mehr für die Beglaubigung als ich für 1 Jahr Zertifikat bezahlt hätte...]

Dort wo ich meins kaufe, kosten vier Jahre US$268. Du hast eventuell in Deutschland günstigere Reseller.
Michael Gasser
 
a.def
(Gast)

n/a Beiträge
 
#38

AW: DEC 5.2 String hashen?

  Alt 2. Mai 2017, 23:05
Ok das ist mir dann doch etwas zu teuer und für eine Freeware absolut nicht nötig.
Zur Edge-Meldung. Ich habe gerade meine Datei, die schon seit Dezember auf dem Server liegt, selber runtergeladen und diese Meldung nicht erhalten. Es war eine Exe-Datei.

Was den Hash angeht. Wo könnte man ihn denn sonst verstecken? Denn sobald ich den Inhalt meiner Exe mit notepad++ ändere, und auch wenn es nur 1 Byte ist, ist die Exe wohl "kaputt".
 
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#39

AW: DEC 5.2 String hashen?

  Alt 3. Mai 2017, 00:26
Ok das ist mir dann doch etwas zu teuer und für eine Freeware absolut nicht nötig.
Zur Edge-Meldung. Ich habe gerade meine Datei, die schon seit Dezember auf dem Server liegt, selber runtergeladen und diese Meldung nicht erhalten. Es war eine Exe-Datei.

Was den Hash angeht. Wo könnte man ihn denn sonst verstecken? Denn sobald ich den Inhalt meiner Exe mit notepad++ ändere, und auch wenn es nur 1 Byte ist, ist die Exe wohl "kaputt".
So ist das vgl.


Was u.U eine Möglichkeit wäre, Platz für den Hash und sein "Spiegelbild" vorbelegen, damit die Prüfsummenprüfung nicht zuschlägt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
 
nahpets
(Gast)

n/a Beiträge
 
#40

AW: DEC 5.2 String hashen?

  Alt 3. Mai 2017, 01:07
Eigentlich "gaaaaanz" einfach

Definiere eine Stringkonstante im Quelltext.

csMD5 = '@@@@HashwertHashwertHashwertHashwert@@@@'

Dann berechnest Du den Hashwert unter Auslassung des Bereiches in der Exe, der von der Konstanten belegt wird. (Das zwischen den beiden @@@@.)

Den Wert der Konstanten ersetzt Du anschließend durch den Hashwert.

Beim Prüfen berechnest Du den Hashwert unter Auslassung des Bereiches zwischen den @@@@ und vergleichst ihn mit dem Wert zwischen den @@@@.

Soweit, so theoretisch.

Ich bleib lieber bei der Checksumme am Ende der Exe. Wer die Checksumme am Ende synchron zur Exe so manipulieren kann, dass Deine Prüfung nicht fehlschlägt, ändert sie auch irgendwo mitten in der Exe.

Wenn die Checksumme am Ende steht, so steht da ja noch nicht drin, über welchen Bereich der Exe sie gemacht wurde. Muss ja nicht die ganze Exe sein, könnten ja auch nur die ersten X Byte sein. Oder MD5-Checksumme einer MD5-Checksumme oder die Checksumme wird vorm Speichern noch mit irgend 'nem Wert gexodert ...

Oder anders:

Man kann's auch übertreiben.
Konsequent zuende gedacht kommt man hier dann zum klassischen Wettrüsten.

Code:
While Universum besteht do begin
  Krieg ich's noch sicherer?
  Die Sicherung kann ich knacken!
end.
 
Thema geschlossen
Seite 4 von 12   « Erste     234 56     Letzte »    


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 08:59 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