Zugangsdaten "verstecken"

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Zugangsdaten "verstecken"

Beitrag von Jan »

Hallo,

ich muß im Code vertrauliche Daten einbauen. Wenn ich die aber als Variable da reinschreibe, dann kann man mit dem Editor die Datei auslesen und sieht den String. Wie bekomme ich die am Besten so eingebaut, daß das nicht mehr (so einfach) möglich ist. Und das auch noch ohne zusätzliche Tools wie die Xbase-Tools?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Koverhage »

Jan,

ich dachte Du machst das so ?
http://www.xbaseforum.de/viewtopic.php? ... 300#p71705

den verschlüsselten Text in Quellcode. Variabel kann der ja nicht sein, sonst würde er nicht im Quellcode sethen.
Gruß
Klaus
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Jan »

Hallo Klaus,

das ist etwas ganz anderes. Da checke ich ab, ob der Nutzer seine Lizenzdatei geändert hat gegen einen festen Hash-Wert.

Hier muß ich aber eine Authentifizierung über das Netz schicken, um mein Programm gegenüber enier fremden Datenbank zu authentisieren. Schicken muß ich also den String in Klartext (allerdings über eine https-Verbindung). Den Zugangscode bekomme ich gestellt und muß den genau so rüber schicken. Also muß ich den auch irgendwie in mein Programm reinbauen. So, das man das in der fertigen dll nicht enifach auslesen kann, ich das aber im Klartext wegschicken kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von brandelh »

In den XbToolsIII gibt es StrToHex() und HexToStr(), das kann man aber auch selbst bauen !
Die Idee dahinter:

"Abc" => ASC("A") => 65 ... mögliche Werte von 0 bis 255
Nun kann man etweder "065" speichern (3 Byte pro Byte) was mit einer einfachen Schleife zu erstellen ist, oder aber man speichert den HEX Wert (2 Byte je Byte) ich meine das wäre "41"
Für deine Zugangsdaten ist es sicher kein Problem die längere Variante zu wählen.
Wichtig ist, dass die Speicherung im Programm entweder direkt als "versteckter String" oder in LOCAL oder STATIC erfolgt.
Sonst kann man anhand des Variablennamens auf den Inhalt schließen.
Du brauchst also nur eine Verschlüsselungsfunktion, die dir bei dir zu Hause den Wert erzeugt und den schreibst du in den Quellcode.
Im eigentlichen Programm dann das Gegenteil zum Entschlüsseln.

// Verschleiern, CRYPT ware zu viel versprochen ;-)

Code: Alles auswählen

cStringOrg := "ABC"
nLenString := cStringOrg
cStringHide := ""
for i := 1 to nLenString
    nByte := val(cString[i])
    cStringHide += alltrim(str(nByte))
next
? cStringHide  // sollte  lauten, wenn du das im Quellcode als String schreibst, sollte das keiner mehr in der EXE finden solange er nicht genau weiß was er sucht.
// Entschlüsseln

Code: Alles auswählen

cStringOrg := ""
cStringHide := "065066067"
nLenString := cStringHide
for i := 1 to nLenString STEP 3
    nByte := val(substr(cString,i,3))
    cStringHide += chr(nByte)
next
? cStringHide  // sollte "065066067" lauten, wenn du das im Quellcode als String schreibst, sollte das keiner mehr in der EXE finden solange er nicht genau weiß was er sucht.
Ich habe das jetzt frei geschrieben, es könnten also Tippfehler drinn sein ;-)

Falls du die HEX Lösung möchtest, ich meine ich hätte solche Funktionen auch veröffentlicht, notfalls kann ich die aber auch suchen.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Jan »

Hallo Hubert,

eine interessante Idee. Das werd ich mir mal näher ansehen. Ich muß ja den String nur 1x verschlüsseln und das wars dann, der ändert sich nie wieder, weil der genau meine Lizenz angibt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
DelUser01

Re: Zugangsdaten "verstecken"

Beitrag von DelUser01 »

Hallo Jan

habe das schon vor langer Zeit auch so gemacht wie Hubert vorschlägt:
Eigene Verschlüsselungs-Funktionen mit ASCII und/oder HEX. Wenn man das nicht mathematisch macht sondern per String vergrößert sich die String-Länge um das 2- bis 3-fache.
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Bertram Hansen »

Hallo Jan,

was hälst Du hier von:

Code: Alles auswählen

//                 "!"  +   "D" +   "E" +   "M" +   "O" +   "!"
LOCAL cText := CHR(033)+CHR(068)+CHR(069)+CHR(077)+CHR(079)+CHR(033)
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Martin Altmann »

Nun,
wenn man noch ein anderes Zahlensystem auswählt (z.B. nicht dezimal, sondern als Basis die 36), dann würde das als String so aussehen:
"0X1M1N25270X"

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von nightcrawler »

Im Delphi-Forum hat mal einer geschrieben, das einfachste wäre, die Daten einfach im Klartext in die Readme reinzuschreiben. Da schaut eh keiner rein ;)
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von brandelh »

=D> :D
Gruß
Hubert
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 483
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 11 Mal

Re: Zugangsdaten "verstecken"

Beitrag von azzo »

Hallo,
ich verwende diese einfache Funktion.
mfg
Otto

Code: Alles auswählen

function pw()
	local cPassword1 	:= "m"
	local cPassword3 	:= "P"
	local cPassword2 	:= "y"
	local cFiller 		:= "xyzPW"
	local cPassword5 	:= "0"
	local cPassword6 	:= "0"
	local cPassword7 	:= "7"
        local cPassword4 	:= "W"
   *----------------------------------------------------------

return ( cPassword1 + cPassword2 +  cPassword3 + cPassword4 + cPassword5 +  cPassword6 +  cPassword7 )
//----------------------------------------------------------------------------//
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Martin Altmann »

Tja,
warum macht man das nicht so, wie es i.A. gang und gäbe ist heutzutage?
Man speichert nicht mehr das Passwort, sondern den entsprechenden Hash (also das Ergebnis, das man beim Verschlüsseln erhält). Bei Eingabe des Passwortes wird dieses verschlüsselt und man vergleicht die Hashes - gleiche Hashes, gleiches Passwort.
Aus den Hashes ist das Passwort nicht ermittelbar (wenn eine geeignete Verschlüsselung benutzt wird) - und ohne das Passwort und der genutzten Verschlüsselungsroutine ist der Hash nicht erzeugbar 8)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von brandelh »

Martin Altmann hat geschrieben:warum macht man das nicht so, wie es i.A. gang und gäbe ist heutzutage?
weiter oben hat JAN geschrieben, dass er die Zugangsdaten zu einer externen Resource im Programm versteckt speichern will, da kann er keinen HASH gebrauchen.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Martin Altmann »

Ahh - OK. Schon länger her, dass ich das gelesen hatte ;-)
Habe mich jetzt nur auf die ganzen Antworten der Anderen konzentriert gehabt...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Zugangsdaten "verstecken"

Beitrag von Tom »

Ich verwende für so etwas fünf, sechs unterschiedliche Funktionen, deren Namen nichts über ihre Verwendung aussagen, und die je nach Parameter unterschiedliche Bestandteile des Codes zurückliefern. Das ist kaum zu knacken.
Herzlich,
Tom
Antworten