Ik ben bezig met de ontwikkeling van een stuk software voor bedrijven. Nu zou ik het jammer vinden als dit meteen door iedereen wordt gekopieerd, en de kosten die ik eraan heb gehad voor ontwikkeling niet eens kan terugverdienen.
Daarom heb ik een licentie systeem bedacht. Het stuk software is een stukje software dat op servers wordt gedraaid als daemon (voor de windowsfanaten: een service dus). Nu heb ik een redelijk simpel en effectief systeem bedacht:
Service connect iedere 24h naar webserver van mij. Daar krijgt die een licentiecode, afhankelijk van datum/tijd en met bepaalde informatie die door het programma moet worden gebruikt. Het eerste (datum en dingen) is gehashed, het andere is gewoon encrypted.
De server bepaald dit alles aan de hand van het IP adres waarvan de software vandaan connect.
Software krijgt dit terug, maakt zelf ook zo'n hash die dan overeenkomt en encrypt de informatie. Tot zover gaat alles goed.
Maar nu: Dit belet niemand om de software meerdere keren te starten op 1 machine óf om achter een router de software meerdere keren te installeren!
Dit is dus mijn probleem waarvoor ik een oplossing zoek. Ik had zitten denken om om de een of andere manier te bepalen wat de sourceport is waarvandaan een programma connect naar m'n webserver en dan alleen vanaf 1 sourceport alles toe te staan, en de klant zelf zo'n sourceport te kunnen laten instellen op m'n website (sourceport dan dus gelijk aan de port waar het programma zelf op luisterd voor connecties).
Bij Apache/PHP5 kan ik denk ik gebruik maken van de "REMOTE_PORT" variabele. Kan een router niet zelf plots verzinnen wat de sourceport wordt? Dus bijvoorbeeld een NAT "client" zend vanaf port 5000 naar de "NAT router" toe, maar de "NAT router" zend zelf weer vanaf port 78940 de aanvraag door. In dat geval zou mijn hele licentiesysteem niet werken.
Nog even een laatste ding: Codes invullen in de software zelf is geen optie, omdat de software van bepaalde services gebruikt maakt waarvoor het ook uitschakelbaar dient te zijn op afstand bij het niet betalen van de licentiekosten iedere maand. Een connect naar huis is dan ook noodzakelijk.
Om het achterhalen van de hash maak ik mij niet zo'n zorgen, dit is erg lastig vanwege de datum/tijd die veranderen, en enig risico heb je nou eenmaal altijd, je programma kan immers ook gecrackt worden
Ik hoop dat jullie nog leuke ervaringen en ideeen hebben met zo'n implementatie als dit
Daarom heb ik een licentie systeem bedacht. Het stuk software is een stukje software dat op servers wordt gedraaid als daemon (voor de windowsfanaten: een service dus). Nu heb ik een redelijk simpel en effectief systeem bedacht:
Service connect iedere 24h naar webserver van mij. Daar krijgt die een licentiecode, afhankelijk van datum/tijd en met bepaalde informatie die door het programma moet worden gebruikt. Het eerste (datum en dingen) is gehashed, het andere is gewoon encrypted.
De server bepaald dit alles aan de hand van het IP adres waarvan de software vandaan connect.
Software krijgt dit terug, maakt zelf ook zo'n hash die dan overeenkomt en encrypt de informatie. Tot zover gaat alles goed.
Maar nu: Dit belet niemand om de software meerdere keren te starten op 1 machine óf om achter een router de software meerdere keren te installeren!
Dit is dus mijn probleem waarvoor ik een oplossing zoek. Ik had zitten denken om om de een of andere manier te bepalen wat de sourceport is waarvandaan een programma connect naar m'n webserver en dan alleen vanaf 1 sourceport alles toe te staan, en de klant zelf zo'n sourceport te kunnen laten instellen op m'n website (sourceport dan dus gelijk aan de port waar het programma zelf op luisterd voor connecties).
Bij Apache/PHP5 kan ik denk ik gebruik maken van de "REMOTE_PORT" variabele. Kan een router niet zelf plots verzinnen wat de sourceport wordt? Dus bijvoorbeeld een NAT "client" zend vanaf port 5000 naar de "NAT router" toe, maar de "NAT router" zend zelf weer vanaf port 78940 de aanvraag door. In dat geval zou mijn hele licentiesysteem niet werken.
Nog even een laatste ding: Codes invullen in de software zelf is geen optie, omdat de software van bepaalde services gebruikt maakt waarvoor het ook uitschakelbaar dient te zijn op afstand bij het niet betalen van de licentiekosten iedere maand. Een connect naar huis is dan ook noodzakelijk.
Om het achterhalen van de hash maak ik mij niet zo'n zorgen, dit is erg lastig vanwege de datum/tijd die veranderen, en enig risico heb je nou eenmaal altijd, je programma kan immers ook gecrackt worden
Ik hoop dat jullie nog leuke ervaringen en ideeen hebben met zo'n implementatie als dit
[ Voor 5% gewijzigd door pierre-oord op 06-11-2005 12:37 ]
Ondernemer in tech (oud LOQED.com, nu UpToMore.com)