(Portabel) rechnereindeutige Hardwareinfos erhalten?



  • Hi,

    danke für die Antworten!

    Also ich denke, ein Dongle ist das Umständlichste, was man einem Benutzer anbieten könnte. Für richtig teure Software macht das vermutlich Sinn, ich bin aber im <100 EUR-Segment.

    TyRoXx:

    Was willst du damit überhaupt erreichen?

    Also konkret möchte ich folgende Dinge erreichen:
    - Wenn die 30-Tage-Trial abgelaufen ist, soll man das nicht einfach über Datumsänderung, Registry-Änderung oder Zwischenschieben eines Proxys überlisten können
    - Wenn Benutzer A irgendeinem Benutzer B seine Daten übergibt, soll Benutzer B die Software nicht einfach nutzen können

    Das einfachste Szenario ist, dass ein Benutzer seine Daten einfach irgendwem gibt, bei dem es dann automatisch funktioniert. Das passiert ständig, da an ein positives Menschenbild zu glauben ist in meinen Augen naiv. Natürlich gibt es nicht den perfekten Schutz, aber dieses Szenario zu verbieten hält schon 99% aller Kopiefälle ab. Wenn es darüber hinaus welche gibt, meinetwegen, kein Problem.

    Viele Probleme, die Du sonst so siehst, sehe ich nicht. Server zukünftig weg? Alternativlösung über Update einspielen. Bindung an Hardware? Nicht toll, aber alle anderen Lizenzen erlauben eben obiges Szenario ohne jeden Umstand. Und ich könnte auch Lizenzen auf Zeit anbieten, die wären dann so ähnlich. Ich habe mir aber überlegt, dass ich Nutzern kostenlos anbiete eine weiteres System freizuschalten, wenn dafür eben ein altes System rausfliegt. Das ist dann bei Hardwareänderung ein Aufwand von einer Mail (aber den Service bieten andere ja nicht Mal an, die ebenso ein System nutzen), aber sonst kein Problem.

    Ansonsten hast Du viele hilfreiche Tipps gegeben, Bezahlvorgang will ich so abwickeln wie Du sagst, Newsletter war nie geplant (Benutzer überweist Geld mit E-Mail im Bezahl-Betreff und erhält dann die Seriennummer per E-Mail; wird natürlich semi-automatisch gemacht, falls es Tippfehler gibt oder so; hier gerne auch Verbesserungstipps, wie ich es noch besser automatisieren kann oder so! Vielleicht kann das PayPal noch automatischer, so weit bin ich noch nicht).

    Mich als Mensch verkaufen, wird auch gemacht, ist so geplant. 🙂 Dem Kunden vertrauen, ja gut... ich finde so eine kleine Sicherung nicht schlimm. Ich finde das als Benutzer jedenfalls selbstverständlich, wenn da so ein gewisser Schutz drin ist. Und wenn ich in zwei Jahren meine Hardware wechseln sollte und es die Software wert wäre, würde ich eben auch eine neue Lizenz kaufen (bei viel Software läuft die Lizenz über Zeit ab, das würde hier eben über die Zeit der Hardwareänderung geschehen, die ja eigentlich sogar widerspiegelt, wie viel Geld der Benutzer generell hat... aber das ist jetzt etwas weit gesponnen)

    Also bis auf das Szenario, dass jemand die Hardware wechselt, bekommt der Benutzer gar nicht mit, dass da irgendwelche Abfragen gemacht werden. Er erhält die Seriennummer, tippt sie ein -> fertig.



  • Eisflamme schrieb:

    - Wenn die 30-Tage-Trial abgelaufen ist, soll man das nicht einfach über Datumsänderung, Registry-Änderung oder Zwischenschieben eines Proxys überlisten können

    Wie soll das funktionieren? Woher bekommst du raus, ob die 30 Tage abgelaufen sind? Außerdem, kann der Benutzer die Trial nicht einfach erneut herunderladen und neu installieren?



  • Auch auf die Gefahr hin, dass ich jetzt gesteinigt wäre, der Plan war den Maschinencode (selbstgeneriert, nur in eine Richtung verschlüsselt, datenschutzrechtlich somit egal) online zu speichern und das Datum des Installierens auch. Somit wird bei Start eine kurze Abfrage an den Server gemacht, der hier einen Abgleich macht.

    Gut, hier ginge auch noch ein abgestimmter Proxy. Man kann das aber noch mit ein paar Schlüsselverfahren (die der Benutzer natürlich auch nicht merkt) verfeinern, da habe ich schon ein paar Ahnungen, die in schlichten aber effektiven Ideen resultieren sollten.



  • Eisflamme schrieb:

    Auch auf die Gefahr hin, dass ich jetzt gesteinigt wäre, der Plan war den Maschinencode (selbstgeneriert, nur in eine Richtung verschlüsselt, datenschutzrechtlich somit egal) online zu speichern und das Datum des Installierens auch. Somit wird bei Start eine kurze Abfrage an den Server gemacht, der hier einen Abgleich macht.

    Gut, hier ginge auch noch ein abgestimmter Proxy. Man kann das aber noch mit ein paar Schlüsselverfahren (die der Benutzer natürlich auch nicht merkt) verfeinern, da habe ich schon ein paar Ahnungen, die in schlichten aber effektiven Ideen resultieren sollten.

    Und wenn man eine Virtuelle Maschine verwendet?



  • Dann hat man gewonnen. Das tun aber die meisten Nutzer meiner Zielgruppe sicherlich nicht. Ich habe ja auch nie vom perfekten Schutz gesprochen, sondern nur davon, dass ich den Haupt-Anwendungsfall der Raubkopiererei verhindere (s.o.). Und den kriege ich hiermit gelöst und damit bin ich zufrieden. Wer so schlau ist eine VM zu nutzen und trotzdem kein Geld hat und auch keins zahlen will, der macht es eben über die VM und erträgt das WinRAR-artige Popup vor Öffnen der Software (oder wie auch immer das dann aussieht). 😉

    Was würdet ihr denn machen? Ich höre viel Kritik, aber wenig konkrete Vorschläge. Soll ich die Seriennummer für Online-Aktivierung nutzen und dann wie bei Office 3 Mal ausführbar machen? Findet ihr das besser? Aber wie gesagt: wenn dann einer zwei Mal in drei Monaten einen Virus hat und sein Windows neu installieren muss (ich denke, dieser Anwendungsfall ist wahrscheinlicher, als dass der Standardbenutzer ständig seine CPU wechselt), dann sind seine Seriennummern auch kaputt...



  • pyhax schrieb:

    Woher bekommst du raus, ob die 30 Tage abgelaufen sind?

    Authentifizierender ntp-Server.

    pyhax schrieb:

    Außerdem, kann der Benutzer die Trial nicht einfach erneut herunderladen und neu installieren?

    Unter anderem dafür will Eisflamme seine unique id?



  • Es gibt schon viele Diskussionen über den Softwareschutz... Gut, dass du zumindest einsiehst, dass perfekter Schutz nicht möglich ist 😉 Ich bin auch der Ansicht, dass eine halbwegs brauchbare Lösung völlig ausreichend ist. Ich nehme auch nicht an, dass deine Software auf Anhieb so bekannt wird, dass sich Profis damit beschäftigen werden, deinen Schutz zu knacken. Selbst wenn der Schutz nicht perfekt ist, muss man ihn doch erstmal knacken und dafür muss man sich so oder so sehr gut auskennen und viel Zeit investieren (außer, der Schutz ist trivial).
    Schau dir aber mal an, wie andere das machen, es gibt schon paar Artikel über sowas. Gibt auch fertige Bibliotheken, die sowas anbieten, vielleicht findest auch eine brauchbare Open Source Bibliothek.



  • Hehe, ja, das Thema ist total strittig. Mir ist das bewusst, ich wollte hier auch keine große Diskussion lostreten. Ich habe mich schon etwas mit Raubkopien beschäftigt, die haben ja wegen Netzwerkeffekten teilweise sogar große Vorteile. Aber in meinem Bereich halt nicht.

    Ich hab mich halt an der gleichen Branche orientiert, da ist mein Ansatz viel genutzt, somit sind die Benutzer eigentlich auch dran gewöhnt, wie ich denke. Trotzdem kann es ja immer sein, dass es noch besser geht, doch eine "Basisschutz" möchte ich eben haben, genau.

    Nach solchen Bibliotheken habe ich schon geschaut, aber irgendwie nichts Richtiges gefunden, hast Du einen Tipp? Wobei ich sagen muss, dass ich mit Librarys für Schlüsselverfahren und ein paar Skripten auf meinem Server meiner Ansicht nach recht schnell fertig sein und auch gut mit auskommen sollte. 🙂


  • Mod

    Ganz was anderes: Was, wenn ich als pöser Hacker einfach in deiner Exe einen kleinen Sprungbefehl an der Stelle einsetze, wo der Code für die Prüfung losgeht?



  • Dann bist Du sehr kluk und hast auch gewonnen.

    Edit: Irgendwie habe ich den Eindruck, dass immer noch nicht ganz verstanden wird, welches Szenario ich verhindern möchte. 🙄

    Also back to topic, ich nutze für Windows jetzt diese Crypt-Funktion, die funktioniert anscheinend ganz gut! Falls jemand weitere Vorschläge hat, freue ich mich! Falls jemand weitere Ideen hat meine Software zu hacken, kann er die gerne posten, wenn er sich dann besser fühlt. 😉



  • SeppJ schrieb:

    Ganz was anderes: Was, wenn ich als pöser Hacker einfach in deiner Exe einen kleinen Sprungbefehl an der Stelle einsetze, wo der Code für die Prüfung losgeht?

    Ich halte das eben für wenig realistisch. Es gibt wenige Leute, die sowas machen können und wollen. Ich kann z.B. einigermaßen x86 Assembler und hab einige Projekte damit gemacht, trotzdem wärs mir viel zu umständlich und ich hätte überhaupt keine Lust, meine Zeit dafür zu verschwenden. Und damit sich jemand findet, der sich damit befasst und einen Crack schreibt, muss die Software eben bekannt genug sein. Aber dann kann man eh nichts dagegen machen, weil jede Software wird gecracked, trotzdem macht es keinen Sinn, gar keinen Schutz einzubauen.

    Ich kenne keine entsprechenden Bibliotheken, habe mich nicht so intensiv mit dem Thema befasst. Ich weiß aber, dass sowas schnell ausarten kann, weil zwei Firmen, in denen ich bisher gearbeitet habe, eigene Lizenzlösungen gebaselt haben. Das war sehr fehleranfällig und wartungsintensiv und dann sind immer mehr Wünsche und Anforderungen hinzugekommen und dann wird die Lizenzierung schnell zu einem viel zu umfangreichen Teil des Projekts.



  • Hm, klingt gefährlich. Ging es bei den Lizenzen um verschiedene Versionen oder weil die auch für viele Produkte herhalten sollten? Ich bin halt immer gerne jemand, der die Grundversion selbst kurz baut und wenn es umfangreicher wird, dann auf eine entsprechend komplexere Software umrüstet, v.a. wenn ich etwas noch nicht gemacht habe. Jetzt ist dieses Lizenzierungszeug technisch zwar nicht schwierig zu machen, aber trotzdem will ich das Mal selbst gemacht haben. 🙂 Sollte das Geschäfts tatsächlich anlaufen, kann ich ja immernoch umsteigen (ja, könnte naiv sein...). Und irgendwie glaube ich, dass meine Maschinencode-Idee zwar nicht neu ist, aber dennoch nicht einfach Mal so in jeder zweiten Bibliothek zu finden ist. Zumindest hätte ich in der Suchzeit vermutlich schon selbst etwas halbwegs Brauchbares gebastelt.


  • Mod

    Eisflamme schrieb:

    Edit: Irgendwie habe ich den Eindruck, dass immer noch nicht ganz verstanden wird, welches Szenario ich verhindern möchte. 🙄

    Doch. Du möchtest verhindern, dass ein Normalbenutzer Spaß an deiner Software hat, ohne jemanden der selbstständig die Uhr oder MAC-Adresse seines Rechners ändern kann davon abzuhalten, die Software zu kopieren. 😉

    Mechanics schrieb:

    SeppJ schrieb:

    Ganz was anderes: Was, wenn ich als pöser Hacker einfach in deiner Exe einen kleinen Sprungbefehl an der Stelle einsetze, wo der Code für die Prüfung losgeht?

    Ich halte das eben für wenig realistisch. Es gibt wenige Leute, die sowas machen können und wollen.

    😮 Woot? Das ist das kleine 1x1 jedes Crackers, das allererste was man lernt. Das haben sich die Kiddies früher selber in ein paar Tagen/Wochen beigebracht. Heutzutage gibt es natürlich das Internet mit Anleitungen, da geht das auch in ein paar Stunden, wenn man vorher schon programmieren kann. Das kannst du auch lernen, wenn du dir dieses Wochenende Zeit nimmst. Die naive Technik wirkt heutzutage natürlich nur noch bei alten DOS-Spielen oder Software von Leuten die in Foren nach rechnereindeutigen Hardwareinfos fragen, aber es ist Grundlage fast jeder höheren Cracktechnik.



  • SeppJ:

    Doch. Du möchtest verhindern, dass ein Normalbenutzer Spaß an deiner Software hat, ohne jemanden der selbstständig die Uhr oder MAC-Adresse seines Rechners ändern kann davon abzuhalten, die Software zu kopieren.

    Die Spaß der Software hängt also für Dich... wovon ab? Mit der normalen Benutzung davon hat das jedenfalls nichts zu tun. Und ich für meinen Teil könnte meine Software nicht so ohne Weiteres cracken. Aber wenn die Skriptkiddies von heute da mehr draufhaben, gehöre ich anscheinend ja zur Schlussgruppe der IT-affinen Benutzer. 🙄

    Zum Cracken:
    Ja, klar, aber das ist halt der Punkt. Wenn sich jemand reinkniet, kriegt er alles hin. Das tun trotzdem 99% der Leute nicht. 😉



  • und 1% der Leute stellt es online für 99% der Leute kostenlos zu verfügung...



  • SeppJ schrieb:

    Eisflamme schrieb:

    Edit: Irgendwie habe ich den Eindruck, dass immer noch nicht ganz verstanden wird, welches Szenario ich verhindern möchte. 🙄

    Doch. Du möchtest verhindern, dass ein Normalbenutzer Spaß an deiner Software hat, ohne jemanden der selbstständig die Uhr oder MAC-Adresse seines Rechners ändern kann davon abzuhalten, die Software zu kopieren. 😉

    👍
    Was geht es den Programmierer an, wann und wie oft ich meine Hardware wechsel. So was crackt man genüsslich in der Mittagspause und hat am Ende weniger Ärger als mit einer Originalversion. Und genau diesen Punkt sollte man verhindern, sonst fühlt man sich als Kunde doch nur verarscht.



  • Wie gesagt, immer nur kritisieren, aber nix Konstruktives beitragen... konkrete Vorschläge, wie ich die Seriennummer dem zahlenden Kunden zur Verfügung stellen soll?

    Und sag jetzt bitte nicht: einfach irgendeine Seriennummer generieren, die auf jedem PC klappt. Sonst frage ich mich ernsthaft,

    und 1% der Leute stellt es online für 99% der Leute kostenlos zu verfügung..

    was dieser Kommentar soll. Denn eine Seriennummer anonym für alle anzubieten, ist ja nun noch um ein Vielfaches leichter als eine gecrackte Software.

    Also, Vorschläge?


  • Mod

    Cyres schrieb:

    und 1% der Leute stellt es online für 99% der Leute kostenlos zu verfügung...

    👍 Und das ist der Knackpunkt, an denen alle Kopierschütze scheitern. Selbst die hardwareverdongelte PS3 wurde geknackt, weil es auf der Welt tatsächlich jemanden gab, der die Herausforderung suchte und tatsächlich die Chips Schicht für Schicht abgeätzt und analysiert hat. Bei deiner kleinen Software ist solch eine Motivation sicherlich nicht da, aber bei den Kpierschützen die die im Moment vorzuschweben scheinen, reicht es ja, wenn ein genervter Kunde das Scriptkiddie von nebenan fragt, ob er nicht diesen nervigen Kopierschutz wegmachen kann. Und danach verbreitet sich dann die so "verbesserte" Version.

    Eisflamme schrieb:

    Sonst frage ich mich ernsthaft,

    und 1% der Leute stellt es online für 99% der Leute kostenlos zu verfügung..

    was dieser Kommentar soll.

    Das war ein ganz ausgezeichneter Kommentar und ich finde es schade, dass du dies nicht einmal erkennst.

    Eisflamme schrieb:

    Wie gesagt, immer nur kritisieren, aber nix Konstruktives beitragen... konkrete Vorschläge, wie ich die Seriennummer dem zahlenden Kunden zur Verfügung stellen soll?

    [...]

    Also, Vorschläge?

    Meinst du, wir sind schlauer als alle Spielehersteller zusammen, die seit Jahrzehnten kein Mittel gefunden haben? Das "beste" was derzeit auf dem Markt ist, ist die Internetaktivierung. Es gibt keine sichere Lösung, nur hinreichend umständliche. Und selbst eine triviale Scheinsicherheit ist immer in erster Linie vor allem eines: Nervig fur denjenigen, der sie nicht umgeht.



  • Gut, ich gebe mich geschlagen. Der Hardwareschutz könnte die Leute wirklich enorm stören (wobei ich den praktisch nicht eintreten sehe, wenn ich 2-3 Hardwaresetups pro Benutzer einstelle).

    Wieso nicht anerkennen? Der ist so trivial, dass es dabei nichts zu verstehen gibt. Wenn Du aber Mal den Kontext um den Satz herumliest, dann siehst Du, worauf ich hinauswollte: Eine Seriennummer, die man einfach weitergeben kann, ist ohne jeden Zweifel einfacher weiterzugeben als eine gecrackte Software..



  • Eisflamme schrieb:

    Das einfachste Szenario ist, dass ein Benutzer seine Daten einfach irgendwem gibt, bei dem es dann automatisch funktioniert. Das passiert ständig, da an ein positives Menschenbild zu glauben ist in meinen Augen naiv.

    Es geht gar nicht um irgendein Menschenbild.
    Wenn die Benutzer die Software wirklich Bekannten empfehlen und weitergeben, ist das doch perfekt. Bessere Werbung gibt es gar nicht. Es gibt doch nur zwei Möglichkeiten:
    - Kann nicht weitergegeben werden, also tut es auch keiner.
    - Kann weitergegeben werden und ein paar der neuen Benutzer kaufen dann auch.
    Natürlich gibt es Menschen, die nichts bezahlen wollen. Dieser Geiz verschwindet aber nicht auf einmal, wenn die Software DRM-verseucht ist. Da kommt dann eher noch Ablehnung wegen der Überwachung dazu.

    Eisflamme schrieb:

    Natürlich gibt es nicht den perfekten Schutz, aber dieses Szenario zu verbieten hält schon 99% aller Kopiefälle ab. Wenn es darüber hinaus welche gibt, meinetwegen, kein Problem.

    Wie viele der illegalen Kopien wären denn vermutlich gekauft worden, wenn es nicht anders gegangen wäre? Wenige, nehme ich an.
    Wie viele Käufer gehen durch den "Schutz" verloren, weil sie sich überwacht, genervt, misstraut fühlen oder dein Server mal ausfällt?
    Die Sache ist nicht so einfach. Mehr Kopierschutz bedeutet nicht automatisch mehr Umsatz. Es wird gerne vergessen, wer der Dienstleister und wer der Kunde ist.

    Eisflamme schrieb:

    Viele Probleme, die Du sonst so siehst, sehe ich nicht. Server zukünftig weg? Alternativlösung über Update einspielen.

    Das wird dann wohl vom nicht vorhandenen Server eingespielt?

    Eisflamme schrieb:

    Bindung an Hardware? Nicht toll, aber alle anderen Lizenzen erlauben eben obiges Szenario ohne jeden Umstand. Und ich könnte auch Lizenzen auf Zeit anbieten, die wären dann so ähnlich. Ich habe mir aber überlegt, dass ich Nutzern kostenlos anbiete eine weiteres System freizuschalten, wenn dafür eben ein altes System rausfliegt. Das ist dann bei Hardwareänderung ein Aufwand von einer Mail (aber den Service bieten andere ja nicht Mal an, die ebenso ein System nutzen), aber sonst kein Problem.

    Bist du eigentlich mal auf die Idee gekommen, dass sehr viele Benutzer mehrere Computer haben? Sollen die dann pro Stück eine Lizenz erwerben oder wie?
    Gängige Praxis ist die Online-Aktivierung ohne irgendwelche sichtbaren Einschränkungen. Wenn das jemand missbraucht und seine Lizenz in der ganzen Firma 100 mal aktiviert, merkt man das ja als Lizenzgeber und kann reagieren. Mit Windows zum Beispiel kann man das machen und solange man es nicht übertreibt, tut keiner etwas dagegen.

    So solltest du das machen, das ist der gute Kompromiss. Der Benutzer wird nach der Installation nur kurz mal genervt mit dem Eingeben einer Nummer aus der Email. Trotzdem hast du die volle Kontrolle durch die Übersicht, auf wie vielen Computern das Programm von wem aktuell verwendet wird.

    Das einzige Mittel gegen Cracker ist, ihnen keinen Anreiz zu liefern.


Anmelden zum Antworten