Vraag & Antwoord

Programmeren

Hoe registreer je het aantal gebruikers van een applicatie ?

10 antwoorden
  • Stel je wilt *precies* weten wie allemaal je applicatie installeert, omdat je je applicatie op licentie-basis wilt 'verkopen'/verspreiden. Welke mogelijkheden zijn er dan en hoe ligt dit juridisch gezien ? Heeft er iemand ervaring met het werken met hardware-dongles en/of puur software-oplossingen (als in : hoe maak ik zoiets in Delphi, zijn er bestaande freeware of payware oplossingen ?) in zijn programmatuur ?
  • Ik denk niet dat je mag bijhouden wie precies allemaal je programma installeert, want dat zal IMHO in strijd moeten zijn met de privacywetgeving. Een hardware-dongle lijkt mij nogal in de kosten lopen. Je zou echter wel de microsoft-manier (unlock-code baseren op de aanwezige hardware) en deze code kunnen telefonisch/per mail kunnen vrijgeven, zo kun je bijhouden hoeveel keer je programma is geinstalleerd. Een andere manier is om een "standaard" serial-code te gebruiken en deze bij het opstarten v/h programma te naar een internet-server te sturen, deze internet-server zorgt er dan voor dat er nooit 2 programma's met dezelfde serial-codes zich kunnen aanmelden. Deze methode wordt meestal bij online multiplayer videogames toegepast. Een andere manier, als je programma niet echt in massaproductie wordt genomen, is om voor elke koper het programma opnieuw te compileren met daarin een ander uniek getal ergens. Zo kun je snel terugzien welke koper het programma bijvoorbeeld "lekt" naar warezsites etc. Bedenk wel dat elke beveiliging tegenwoordig zo gekraakt is als er een of andere warez-release-groep mee aan de gang gaat. Andreas -- Don't try to confuse me with the facts!
  • Kijk eens op Ionworx (www.ionworx.com), misschien dat je daar vindt wat je zoekt.
  • [quote:31481a1ea2="AndreasV"]Een hardware-dongle lijkt mij nogal in de kosten lopen.[/quote:31481a1ea2]Dat valt best mee, het ligt natuurlijk wel aan de applicatie die je wilt verspreiden en wat de kostprijs daarvan ongeveer gaat zijn. Maar in princiepe ben je met een euro of 20 wel klaar, als je bulk gaat doen wordt dat lager natuurlijk...
  • [quote:2d9a9addd2]Dat valt best mee, het ligt natuurlijk wel aan de applicatie die je wilt verspreiden en wat de kostprijs daarvan ongeveer gaat zijn. Maar in princiepe ben je met een euro of 20 wel klaar, als je bulk gaat doen wordt dat lager natuurlijk...[/quote:2d9a9addd2] 20 euro extra kosten per programma is toch een vrij grote stijging IMO.
  • [quote:27f93237d4="AndreasV"]20 euro extra kosten per programma is toch een vrij grote stijging IMO.[/quote:27f93237d4]Ligt eraan wat de kosten per applicatie zijn... 20 euro op 50 euro is veel, maar 20 op 1000 is vrij weinig...
  • [quote:17136862b8="JaFO"]Stel je wilt *precies* weten wie allemaal je applicatie installeert, omdat je je applicatie op licentie-basis wilt 'verkopen'/verspreiden. Welke mogelijkheden zijn er dan en hoe ligt dit juridisch gezien ? Heeft er iemand ervaring met het werken met hardware-dongles en/of puur software-oplossingen[/quote:17136862b8] Meest gebruikte is toch wel de combinatie van 'gebruikersgegevens' en serienummer. Code = Versleutel(klantnaam+nogwatgegevens) Stuur Code naar leverancier Serienummer = MaakSerienummer(IsValidCode(Code)) Stuur Serienummer terug naar klant. Invoer in applicatie: Valideer combinatie van Code en Serienummer. De naam van de klant laat je bijvoorbeeld terugkomen in rapporten, in het splashscreen, hoofdscherm, etc. Het wijzigen van klantnaam is dan bijvoorbeeld strijdig met de licentievoorwaarden. [quote:17136862b8="JaFO"](als in : hoe maak ik zoiets in Delphi, zijn er bestaande freeware of payware oplossingen ?) in zijn programmatuur ?[/quote:17136862b8] Ja, hier zijn standaard oplossingen voor. De ene beter dan de andere. Bijvoorbeeld: http://www.bykeyword.com/pages/detail11/download-11453.html Maar ik heb ook andere gezien...
  • [quote:cc43f88201="Bill Gates"][quote:cc43f88201="AndreasV"]20 euro extra kosten per programma is toch een vrij grote stijging IMO.[/quote:cc43f88201]Ligt eraan wat de kosten per applicatie zijn... 20 euro op 50 euro is veel, maar 20 op 1000 is vrij weinig...[/quote:cc43f88201] En als het programma eerst 'gratis' was (voor de gebruiker, niet voor de klant waarvoor het gemaakt wordt ...) dus dan is iedere kostenbesparing natuurlijk meegenomen. // -- Hercompileren voor iedere klant is geen echte optie. De applicatie past (net zoals veel Windows-programmatuur) niet op een floppy. En om een 1000-tal stuks te moeten hercompileren & branden (iets dat per keer toch een uur duurt exclusief testen van het succesvolle branden) zou wel heel erg veel tijd gaan kosten. Over warez hoeven we ons niet druk te maken ... die lieden zullen zowiezo niks met het programma kunnen doen (het programma in kwestie is slechts een onderdeel van een groter traject waarvan het deel uit maakt). Het probleem is dat we niet puur van de goede wil van de opdrachtgever willen zijn wat betreft het aantal stuks van de betreffende programmatuur dat ie daadwerkelijk in gebruik heeft. Daarnaast geeft zoiets ook de mogelijkheid om programmatuur zelf in de markt te zetten.
  • Mijn ervaring met hardware dongles: ze werken niet en zijn erg impopulair... Mijn werkgever had ooit het idee bedacht om een hardware dongle te gebruiken als onderdeel van de software die we ontwikkelen. Heeft hij een beetje zitten zoeken, wat testen en vervolgens ergens een gratis testpakket besteld en ontvangen. Na wat verder getest te hebben vond hij het een prima oplossing en of ik het effe in onze software wilde bouwen. Had ik niet erg veel zin in want zo veilig leek het mij niet. Dus op Google even gezocht naar dezelfde dongle en hoe deze gekraakt kan worden. Binnen 15 minuten had ik al een tiental pagina's gevonden die exact vertelden hoe de dongle was te omzeilen en er was zelfs een dongle-emulator gratis te downloaden waarmee je de dongle in je PC kon inlezen en vervolgens netjes in de kluis kon opbergen zodat je hem niet meer kwijt kon raken. De software zorgte er wel voor dat de software niet merkte dat de dongle er niet meer was. Paginaatjes terug gestuurd naar mijn werkgever en die bekeek het ook effe. Daarna hoefde ik de dingle niet meer te integreren met de software want erg veilig was het dus niet. Bespaarde me weer een middagje werk die ik beter aan internetten kan besteden... :-P
  • Okay, okay... Wat ik dus wil zeggen is dat geen enkele beveiliging volledig fool-proof is. Zeker als je kiest voor de grotere, bekende namen van product-beveiliging dan is de kans groot dat je gebruikers een manier vinden om de beveiliging te omzeilen. De meest populaire beveiliging op dit moment is met behulp van een internet-activering. Als een gebruiker de applicatie voor de eerste keer start dan wordt eerst contact gezocht met een speciale website. Daar wordt de gebruiker geregistreerd in combinatie met een uniek versie-nummer in de applicatie zelf. De server kan vervolgens bijhouden of de applicatie wel het toegestane aantal gebruikers heeft. Zodra er meer gebruikers registreren dan toegestaan dan wordt de registratie geweigerd en stopt het programma of gaat het programma in demo/shareware mode werken. Na de registratie werkt de applicatie dus gewoon. Binnen Windows zijn er enkele API's waarmee je gegevens kunt encrypten en decrypten in een machine-specifieke manier. Oftewel, wat machine A encrypt, kan alleen worden gedecrypt op machine A en niet op machine B. Dit zijn de functies CryptProtectData en CryptUnprotectData. Als je je registratie-gegevens met deze functies versleuteld dan is het dus niet mogelijk om ze zo maar naar een andere machine te kopieren. Ik zou dan ook adviseren om de nodige studie te doen in het onderwerp kopieer-beveiliging en beveiliging in het algemeen om vervolgens je eigen beveiliging-code te ontwikkelen. Dit maakt het een stuk lastiger voor anderen om je beveiliging te omzeilen omdat er te weinig over bekend is. Betreffende hardware beveiligingen... Alle hardware kan theoretisch vervangen worden door een software emulator. En de populaire hardware beveiligingen zijn ondertussen allang omzeild door een stel handige hackers. Nu even naar je situatie kijken... Als iedere gebruiker zich registreert bij een registratie-pagina en de registratie-gegevens versleuteld in b.v. een INI bestandje worden opgeslagen dan heb je al een vrij goede beveiliging. Als de versleutel-techniek daarbij ook gebruikers- of machine-specifieke gegevens gebruikt dan maak je het kopieren ervan nog een stukje lastiger. Bij de registratie van de applicatie kun je nog iets speciaals doen. De gebruiker zou bijvoorbeeld tijdens de registratie een unieke sleutel ontvangen. Deze sleutel gebruik je vervolgens om overige gegevens in de applicatie mee te versleutelen en die sleutel sla je dus op gebruikers- of machine-specifieke manier op. Zonder sleutel kom je niet aan de gegevens en als je de boel naar een andere computer kopieert dan kan de sleutel niet gelezen worden. Vrij effectief. Wel te omzeilen maar desondanks erg effectief. 1) Gebruiker start applicatie voor 1e keer. 2) Gebruiker registreert zich 3) Registratie-sleutel wordt opgeslagen m.b.v. machine-specifieke encryptie. (CryptProtectData) 4) Configuratie wordt aangemaakt 5) configuratie wordt versleuteld opgeslagen waarbij de registratie-sleutel de key is. 6) Applicatie gaat draaien. 1) Gebruiker start applicatie voor 2e en volgende keer op. 2) Registratie-sleutel wordt ingelezen (CryptUnprotectData) 3) Registratie-sleutel wordt gebruikt om configuratie te decrypten. 4) Applicatie gaat draaien. Dit kan gekraakt worden, natuurlijk. Sterker nog, gebruikers zouden hun eigen sleutels kunnen aanmaken. Maar gezien het kleine aantal (1000) potentiele gebruikers denk ik dat de kans erg klein is dat dit daadwerkelijk gebeurt.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.