![]() |
Einmaliger Wert eines PCs, der sich nie ändert?
hi!
ich möchte verhindern, dass die registrywerte meines programmes (aus sicherheitsgründen) einfach kopiert und auf ein anderes system übertragen werden. diese werte sollen nur vom programm selber dort eingetragen werden. soviel zur hintergrundgeschichte. nun brauche ich einen wert, der auf jedem computer vorhanden ist, aber auf jedem anders ist und sich auf einem system niemals ändern wird (außer man installiert windows neu, dann kann er ruhig anders werden). es sollte entweder ein registrywert sein oder eine datei, damit ich sicher drankomme und dazu einen md5 hashwert erzeugen kann. habt ihr vorschläge? |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Daran hat sich selbst Microsoft schon die Zähne ausgebissen. ;) Was hundertprozentiges wirst du da wohl nicht finden.
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Du könntest z.B. die Serial einer Partion auslesen. Die äbdert sich erst mit der Formatierung. Oder verwende Bios-Informationen.
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Das dumme ist, dass man jeder dieser Komponenten austauschen kann. Deswegen hat Microsoft ja auf eine Kombination mehrerer Hardwarekomponenten zurückgegriffen und das ganze etwas variabel gestalltet. Aber wie wir alle wissen wurde auch das relativ schnell umgangen. Es wäre mal ganz interessant zu erfahren, wofür CodeX das braucht.
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
also ich persönlich würde einige Hardware-eigenschaften zusammenschmeissen und durchn Hash jagen.
am besten so sachen wie: Festplatten SerialNummer, CPU-ID, OS-Version (die genaue zusammensetzung darf nur dir bekannt sein!!!) diese hashfunktion sollte aber 3 eigenschaften haben: erstens sollte sie nur dir bekannt sein -> programmier dir was eigenes oder änder es wenigstens ab zweitens sollte sie gut versteckt sein -> da müsstest du mal unsere HardCore-Progger fragen :) wie versteckt man sowas am besten? drittens (am unwichtigsten) könnte man, statt einen "echten" Hash zu nehmen nur verschlüsseln, um es im falle einer neuregistrierung durch austausch von komponenten wieder entschlüsseln zu können und sagen zu können: nein, das ist kein neuer der nen kostenlosen key haben will, ja das ist ein alter nutzer der nur ne neue festplatte hat. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
rantanplan |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Moin,
Bios - ID. Wird aber nicht von allen Biosen unterstützt. Da wo es geht geht es aber.... Grüße // Martin |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
morgen,
ich versteh ehrlich gesagt nicht, warum ihr das ganze so kompliziert seht. wenn in der programm registry zusätzlich ein hashwert steht, kann doch keiner was damit anfangen. er ist weder rückwärts umwandelbar, noch sieht man ihm an, woraus er gemacht wurde. und selbst wenn jemand weiß, dass ich dass ich die partitions-id nehme, kann er recht wenig damit anfangen, wenn ich noch eine bestimmte zeichenfolge einfach vor dem hashen dranhänge (cracker natürlich vorweg). die bios id wäre interessant, aber da sie anscheinend nicht 100%ig unterstützt wird, fällt das schon weg. mehrere werte zusammenschmeißen, ist meiner meinung nach nur nachteilhaft. wechselt der benutzer die cpu aus, ist der hashwert bereits anders. die serial der primärpartition find ich jetzt am interessantesten. sie ändert sich nicht von alleine. wenn sie jemand von hand ändert, weiß er genau was er tut und muss damit rechnen, dass einiges nicht mehr laufen wird. und wenn er die primärpartition formatiert, muss er das programm eh nochmal installieren. ich informiere mich jetzt mal wegen der partitions-serial. wenn jemandem noch ein registry-wert einfällt der von windows festgelegt wird und auch einmalig ist, bitte sagen :) |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
die serial der primärpartion würde ich nicht nehmen da man einfach ein image der platte machen kann und dieses image dann auf einen zweitrechner spelen kann. In diesem fall würde ich dann schon die Serial der Festplatte vorziehen. (wobei die Festplatte ebenso wie die cpu gewechselt werden kann)
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Nimm doch den Secret-Stash im LSA-Key. Der wird dann direkt vom System geschützt. So speichert man auch Paßwörter.
Aber 100% Sicherheit bei einem Softwareschutz wirst du nie bekommen - nichtmal mit einem Hardwaredongle oder Kryptographie. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
ich ginge da wahrscheinlich etwas zu leichtsinnig ran... Was wäre denn mit dem Datum der Erstellung des Ordners c:\windows?
Das kann man sicherlich auch ändern, ist aber für viele eine schwierige Sache, oder? Das in Verbindung mit Hardware-IDs könnte man so gestalten, dass der User trotzdem die Hardware ändern kann, ohne dass es Probleme gibt. Oder gibt es einen ganz ganz einfachen Weg dieses Datum zu ändern? |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
![]() Die Idee ist garnicht gut, glaub mir. Zitat:
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
den nutzer, dass er nicht aus versehen vertrauliche daten weitergibt? dann reichen wirklich einfachere dinge, die man zwar böswillig aushebeln kann, die man aber nicht "aus versehen" übergeht. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Wie waers mit der MAC-Adresse?
Die gibt es in jedem PC mit Netzwerkkarte und kommt auch nur EINMAL vor. Schoenes Wochenende |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Es gibt auch PC ohne Netzwerkkarte. Und was ist, wenn der den USB WLan Adapter erwischt und der häufuger gewechselt wird?
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
An das mit dem PC ohne Netzwerkkarte habe ich zwar Gedacht aber: Ich kenn niemanden der noch einen PC ohne Netzwerkkarte hat !!
Das mit dem USB-Netzwerkcontroller hab ich uebersehen. Dann geht das ganze natuerlich net. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Ich bin die ganze Zeit wärend des Lesens am Überlegen wozu er das gebrauchen könnte.
Ein Anwendungsfall wäre z.B. eine Benutzerkennung bei Serveranwendungen. So übermittelt das Programm z.B. Daten an einen Server und der Server weiß anhand dieser ID, dass es genau dieser Benutzer ist. Solch eine ID suchte ich bereits als ich PHP programmierte. Aber zu der ID: Warum schreibst du nicht selbst irgendeine ID versteckt in die Registrierung. Solange du selbst sie nicht änderst bleibt sie auch gleich (es sei denn der Benutzer ändert sie). Es wäre glaube ich doch mal an der Zeit zu wissen wofür du das brauchst O.o Ok, bleibt nur die Frage aus was die ID bilden. Ein paar Ideen die mir grade so einfallen: ID aus dem Installationsdatum deines oder irgendeines Programms. Der Adressbereich einer Hardware die sich nie oder sagen wir selten ändert nutzen und daraus einen md5-Hash zu bauen. Z.B. von der Tastatur. Allerdings könnte diese bei mehreren Benutzern gleich sein. Die Serial einer CD oder Diskette würde es auf primitiven Weg vielleicht auch machen. Windows-CD-Key Produkt-ID des Internet Explorers HKLM\Software\Microsoft\Internet Explorer\Registration Oder das hier: HKLM\Software\Microsoft\Windows\CurrentVersion\Pro ductID Ein Wert steht bei mir, bei dem ich nicht weiß was es ist: HKLM\Software\Microsoft\Windows\CurrentVersion\bqs c HKLM\Software\Microsoft\Windows\CurrentVersion\Win dowsUpdate\PingID Datum der erstmaligen Benutzung des Programmes oder einer Funktion (hatten wir schon... :wall: ) usw.. Allerdings sollte man vorher herausbekommen ob der eine oder andere Wert auf einem Zweitrechner identisch sein könnte. Weiterführende Ideen wären vielleicht einen Hash aus Vorname, Name, Geburtsdatum zu bilden. Jenachdem wofür man die ID benötigt kann man so vieles nehmen. Viel Glück und Gruß, Robert |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Hi,
vorhandene Werte aus der Registry würde ich so einfach nicht nehmen! Den man kann auch Installationen im Image-Verfahren klonen und dann wären die Werte gleich. Hardwarebezogene Werte, die nicht änderbar sind gibt es in der Registrierung sowieso nicht. Ein einfaches Sysprep löscht sie alle und mit dem Rest kannst Du nichts anfangen, da er auf allen Computern gleich ist. Besser ist, Du suchst dir einzelne Hardwarekomponenten aus, legst fest wie viele sich davon ändern dürfen und erstellst dann dein Hash. Den speicherst Du dann dort wo keiner durchsteigt (CR) und fertig. Gruss |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Die MAC-Adresse kann man teilweise auch ändern. Dies hilft also auch wenig.
Ratte |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
Man kann allerdings den Treiber so konfigurieren, daß er die MAC in den Paketen ersetzt. Schließlich hat der Treiber ja noch den "letzten Blick" auf alle Pakete. Kleiner aber feiner Unterschied. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
geht nicht. Du benötigst eine einbruchsichere Hardware, zb. den Fritz Chip, dann ist es 100%tig sicher eine Hardware eineindeutig zu identifizieren. Bleibt noch deinen Software -> geht auch nicht. Dafür benötigst du eine einbruschsichere Hardware die als CPU selber geschützt signierte Programmteile ausführen kann. Einer dieser Programmteile muss dann deine Software sein. Sowas hat MS mit Palladium versucht umzusetzen. Erst dann wirst du eine 100% sichere ID zur Hardware haben + eine 100% sichere Software die diese ID ohne Manipulationen durch Cracker sinnvoll weiterverarbeiten kann. In einem solchen Szenario erlangt nun diese Hardware + geschützte Software und damit die Hersteller dieser Produkte absolute Kontrolle über die Daten der Benutzer und dem Benutzer selber. Ich würde mir mehrmals überlegen irgendwas, und sei es nur eine Zeile Quelltext, an einer solchen Machine zu machen.
Also: auch wenn auf heutigen Machinen das was du suchst nicht praktikabel ist und somit für dich oberflächlich betrachtet eher übel ist, sollten wir froh sein das es so und nicht anders ist. Überlege dir ein anderes Konzept, denn mit hoher Wahrscheinlichkeit kannst du durch Änderungen an deinem Vertriebskonzept/Softwarekonzept einerseits dein Problem umgehen und zusätzlich auch deinen Kunden mehr Service bieten. Gruß Hagen |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
Eine andere Sache wird aber immer unterschlagen: selbst wenn sowas wie der Fritzchip kommt, glaubt ihr wirklich das Konsortium (inkl. MS) ließe sich das nicht vergolden? Meint ihr diese Geschichte wird wirklich so erschwinglich, daß es sich für ein Sharewareprogramm oder ein Programm in kleinerer Auflage lohnen könnte? Ich glaube noch nicht dran. Die Treiberzertifizierung seitens MS ist genauso ein Schachzug gewesen. Es ist einfach hirnrissig, daß sich diese Firma leisten kann dafür bezahlt zu werden, daß sie in die Quellcodes ihrer mittelbaren und unmittelbaren Konkurrenten gucken darf, nur damit diese eine WHQL-Zertifizierung erhalten. Man sieht, auch hier handelt es sich nur um Klüngel mit fragwürdigen Gesamtimplikationen. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Selbst dann kann der Releaser, der die Software ehrlich kauft, noch einen Dump dieser Software machen, der ohne diesen Schnick-Schnack läuft. Oder habe ich das jetzt was falsch verstanden ?
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
Das wichtigste ist: 1.) die hardware muß einbruchsicher sein, für 99% aller Menschen ist eine stinknormale CPU heute schon einbruchsicher 2.) die Software auf dieser Hardware ist das Sicherheits kritische Element, richtig. 3.) das Gesamtkonstrukt verarbeitet ausschließlich geschützte Daten, also geschützte Daten rein, mit geschützter Software weiterverarbeitet, geschützte Daten raus und zb. auf geschützter MP3 Hardware abgespielt. Fazit: FritzChip + Palladium ermöglichen in fact 100% sichere Datenverarbeitung. Ob das kommerziell tragbar ist ? Sicher doch, der Unterhaltungsindustrie gehen Milliarden jährlich durch die Lappen. Der Informationsindustrie wie Softwarekonzern, Medien wie Fernsehen oder Printmedien haben ein enornmes Interesse an einer absoluten Kundenbindung. So zurück zum eigentlichen Thema da obige Ausführungen noch Zukunftsmusik sind. Der einfachste Weg ist es sich nicht auf irgendwelche Hardware ID's zu verlassen. Die heutigen Datenmengen auf den PC's sind so rießig das es ein leichtes ist darin die eigenen Signaturen zu verstecken. Man erzeugt also solche auf Zufall basierenden Signaturen und versteckt sie möglichst verteilt in den rießigen Datenmengen. Die Eindeutigkeit solcher auf Zufall basierenden Signaturen hängt im Grunde nur von deren Größe ab. Exakt so geht Windows bei GUIDs vor falls keine eindeutigen HW-Signaturen zur Verfügung stehen. Das die eigene Software nicht sicher vor Crackern ist dürfte wohl klar sein. Alleine schon dieser Fakt macht im Grunde jede größere Investition an Zeit in solche Verfahren sinnlos. Aber, diese Frage kommt alle 3 Wochen in der DP wieder hoch. Das beste Konzept ist es sich von vornhinein ein anderes Konzept zu suchen. Zb. eben die potentiellen Kunden einfach dazu zu bringen ehrlich ein Produkt zu benutzen, weil es von nur Vorteil für sie ist. Braucht man nur eine relativ eindeutige ID zur Hardware, und man kann sicherstellen das ein Kunde kein Interesse hätte diese vorzutäuschen, dann reicht ein Aufruf von CreateGUID() und das Resultat in einer INI zu speichern. Ein Kunde hat immer dann kein Interesse solche ID's vorzutäuschen wenn er vom Produzenten der Software mithilfe dieser ID + seinen persönlichen Daten einen erweiterten, schon bezahlten (weil inklusive) Sevice erwarten kann. Diese Änderung im Konzept macht also aufwendige Sicherheitsmerkmale absolut überflüssig und stellt das Produzenten-Kunden Verhältnis wieder auf eine faire Basis. Gruß Hagen |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Hallo CodeX,
ich gehe mal davon aus, daß Du nicht willst, daß Deine Software ohne weiteres von einem Normal-Nutzer (NoNu) Deiner Programme kopiert und an deren Bekannte, Freunde usw. weitergegeben wird ohne Dir einen Obolus zukommen zu lassen. Nimm einfach die Serien-Nummer der Festplatte:
Delphi-Quellcode:
verschlüssele diese mit einer Deiner Phantasie überlassenen Codierung und lege das Ergebnis in eine INI-Datei oder sonstwie ab. Beim ersten Start wird die Seriennummer hinterlegt, Du läßt Dir die Datei schicken, ersetzt die Seriennummer durch einen gültigen Code und schickst sie dem Nutzer wieder zu.
function GetSerialNumber(Drive: PChar): DWord;
var FileSysName, VolName: array[0..255] of Char; SerialNum, MaxCLength, FileSysFlag: DWORD; begin GetVolumeInformation(Drive, VolName, 255, @SerialNum, MaxCLength, FileSysFlag, FileSysName, 255); Result := SerialNum; end; Es wurde hier schon zur genüge besprochen, daß es keinen absoluten Schutz gibt, und wenn ein echter Hacker der Meinung ist, er müsse unbedingt Deinen Schutz umgehen, dann kannst Du sowieso nichts dagegen machen. Der NoNu erhält nach dem Kopieren auf einen anderen Rechner eine Fehlermeldung: "Datenbank beschädigt, wenden Sie sich an den Programmierer Fehler-Code XX-204" und entscheidet sich dann entweder dazu, sich bei Dir zu melden oder irgendeine andere Software zu probieren. Nach der Neuinstallation von Windows, einem Plattenwechsel usw. muß der Nutzer dann zwar jedesmal Kontakt zu Dir aufnehmen, aber solange Du nicht hunderte Nutzer hast sollte das kein Problem sein. mfg eddy |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
Ich stimme dir dann zu, wenn beispielsweise relevante Programmteile auf eine externe geschützte Hardware ausgelagert werden. Ansonsten dürfte so ziemlich alles machbar sein, selbst wenn die Hardware eine Blackbox ist. Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
Das regelmäßige Auftauchen der Frage ist hauptsächlich darin zu begründen, daß jedesmal eine heftige Grundsatzdiskussion über solche Maßnahmen ausbricht (ist die Erde nun rund oder eckig?) und es mit Sprüchen wie dem obigen so plattmacht, daß die oft unerfahrenen Fragesteller sich gar nicht mehr trauen, überhaupt noch etwas zu posten. Vielleicht kann man sich ja mit dem Gedanken abfinden, daß es nichts Sicheres zum Schutz von Software gibt aber trotzdem ein paar sinnvolle Funktionen vorstellen, die man benutzen könnte. Zumindest so, daß jemand, der das Cracken versucht, schon einige Arbeit leisten muß bzw. jederzeit damit rechnen muß, daß sich die geckrackte Software irgendwann nicht mehr benutzen läßt. Insbesondere für den letzten Fall würde ich mir ein paar Vorschläge wünschen. Ich hatte z.B. gedacht, bei der Installation oder beim Erststart eine dll oder so zu patchen (könnte das klappen?) Grüße, Messie |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
Zitat:
Zitat:
Auch wenn ein Compiler nicht in Hagens Sinn ein Verschlüsselungsprogramm ist, so ist es eine effektive Methode um die meisten Leute abzuhalten. Danach hängt alles was du machst davon ab, wie du es machst. Ein Patentrezept gibt es auf dieser Ebene wirklich nicht. Das "Plattmachen" ist also gerechtfertigt. Besser als den Benutzer in scheinbarer Sicherheit zu wiegen. |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Hi Messie,
Titel und Inhalt in deinem thread driften ja etwas auseinander, aber vielleicht interessiert dich auch die ProductID: ![]() Grüße vom marabu |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Hallo,
die SID ist auch noch eine Möglichkeit. Kann man zwar auch ändern, aber dann hat der User halt den schwarzen Peter gezogen. Rainer |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Hi,
ich hatte vor geraumer Zeit auchmal ein Thread wegen so einer Geschichte aufgemacht. Nach langen Überlegungen habe ich es wie auch schon hier vorgeschlagen gemacht: HD-ID, MB, ProductID und Name der Person. Funktionieren tut es auch ganz gut bis auf die Sache die ich nicht wirklich bedacht hatte, was ist wenn.... etwas getauscht wird?? Gesetzt dem Fall das der Rechner neu installiert wird muss er so oder so einen Key von mir per E-Mail anfordern, allerdings habe ich (mehr oder weniger) einen Überblick über die Aktivierungen. Da meine Software nicht für Privatleute gedacht ist dürfte das nicht so tragisch sein da in einer Firma ja nicht die Rechner gewechselt werden wie bei "unsereiner"... Egal was man macht irgendwas wird immer neu installiert getauscht u.s.w. Also muss man entweder die Sicherheit runterschrauben (Name, Adresse....) oder sich damit zufrieden geben das man ständig Key-Anforderungen bekommt. Mfg, Steve |
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Zitat:
|
Re: Einmaliger Wert eines PCs, der sich nie ändert?
Hi Olli,
Zitat:
@CodeX, @Messie: sorry für die Umwidmung. Verlegene Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr. |
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