Licensing your own software

  1. ‹ Older
  2. 4 days ago
    Edited 4 days ago

    @SteveKelepouris

    Here you go tiniest solution which is any USB mass storage and smart card device as any combo device :)

    I'm not sure since can't refresh my brain but it's also possible to create on USB storage part so called CD ROM (read only) partition where you can store your install app and other things which are read only and which are not changed so often. This means that then you will have regarding to storage place 2 partitions plus part where Smart Card which also can handle data and etc.

    https://ibb.co/gPfRUb

    PC/SC and CT API library are present for Windows, Mac and Linux

    So, you could deploy (and sell) all in one usb stick to your clients a long with your hardware. Then they can use it on any pc/mac workstation.

  3. Jean-Yves P

    Dec 11 Pre-Release Testers, Xojo Pro Europe (France, Besancon)
    Edited 4 days ago

    I'm pretty sure you can size an arduino the size of an usb stick, and then make your own arduino-style dongles.
    burn the fuse and it will be unreadable
    use some rotating-key algorithm between the computer and the dongle, and you can give it with the software licence.
    https://uge-one.com/tiny-arduino-based-on-attiny85.html

    -image-

  4. Steve K

    Dec 11 Melbourne, Australia

    Thanks Bogdan.

    I don't want the data to be stored on the usb dongle, but just for validation. Or do I?... I'm not sure if that's what you meant but that could work.

    My software only allows saving files to one location. To expand on that, with my software you don't ever have to worry about where the files are saved, when you open files you are also in that same location. They are only ever small files and you can export or save backups.

    Nah, maybe not, otherwise everything is only ever saved on the usb stick - could work though. Sorry, just thinking out aloud.

    @ Jean-Yves. So what you are saying is I could make my own dongles rather than purchasing some other expensive solution?

  5. Jean-Yves P

    Dec 11 Pre-Release Testers, Xojo Pro Europe (France, Besancon)
    Edited 4 days ago

    @SteveKelepouris @ Jean-Yves. So what you are saying is I could make my own dongles rather than purchasing some other expensive solution?

    absolutely !
    if you know how to program an arduino, and make it communicate with a computer, just buy some of these tiny85 based arduino, and it can become your own dongle, with minimum programming, and low price.

    there are some on ebay for 5€ , worth a try IMHO
    https://www.ebay.com/itm/Digispark-Attiny85-tiny85-USB-A-mini-arduino-development-board-kickstarter/172170003474

  6. @SteveKelepouris

    I just described what you can do with this combo device.

    So, basically you get 2 in 1 device which is smart card reader (with smart card inside of it since it has sam slot inside) and usb flash storage.

    On smart card you can store certificate and/or other client licence information's - that depends which and what kind of smart card you will use - is it just memory card or its MCU smart card with some micro cpu in it.

    Smart card is protected with PIN code so if they miss 3 times, smart card went out and they need to request replacement of it.
    So that is side A.

    Side B is classic data storage part which you can manage like you want.
    I just give you a tip that maybe is possible to create read-only partition where you can store data which are for example software drivers, installer of your application for windows/mac/linux and other part of usb storage space (2nd partition) you can leave empty or you can use it for any kind of usb storage device :) .... put your imagination.

    Using Arduino is good but time dev consuming and can lead you to other issues and problems in production use.

  7. Jean-Yves P

    Dec 11 Pre-Release Testers, Xojo Pro Europe (France, Besancon)

    @SteveKelepouris Jean-Yves, that wifi device looks great! - I have thought about using wifi for the connection a while back, some of the devices I looked at seemed a little bit expensive but the esp8266 looks like it could provide an inexpensive solution regarding proximity.

    the dev module is really affordable.
    https://www.ebay.com/itm/WeMos-D1-Nodemcu-CH340-ESP-12E-12F-ESP-12S-WiFi-Development-Board-Shield-Adapter/272662723052
    you can also try with a more powerful esp32 (has wifi and bluetooth, but arduino like IDE programming is still "young")
    https://www.ebay.com/itm/ESP32-ESP-32S-NodeMCU-Development-Board-2-4GHz-WiFi-Bluetooth-Dual-Mode/272963262409

  8. Jean-Yves P

    Dec 11 Pre-Release Testers, Xojo Pro Europe (France, Besancon)

    for the key generation method:
    generate a random serie of bytes, send them to the stick, make some one-way filter using a known-by-you-only method, and return another serie of bytes. compare inside your app. if not valid, quit.
    make a request at different places of your app, it should work enough for a simple but efficient protection.

  9. Steve K

    Dec 11 Melbourne, Australia

    Ok, thanks.

    So are you guys: Jean-Yves and Bogdan agreeing, or at least see some merit in using a dongle rather than online internet validation?

  10. @SteveKelepouris

    Nope we don't. We just trying to give you good advice's and tips so you can make something on your own :)

    I have one point of view and Jean has a 2nd so you have two options.

    Regarding to validation over internet I wrote that also few days ago on this topic as well - please scroll up and look up for it too :)

    I hope we help you to find right solution for your needs after all.

  11. Steve K

    Dec 11 Melbourne, Australia

    Thanks Bogdan, I really appreciate that.

    I may well in the end come to the conclusion (like many others) that the dongle idea is gone and past it's usefulness, superseded by better methods.

    But I sure appreciate the time spent and the options given. Things for me to think about.

    Cheers.

  12. Edited 4 days ago
    1. Using combo device is a lot of easier to develop, integrate and tomorrow maintenance.
    2. Using PCB (Arduino) is good but time dev consuming and can lead you to other issues and problems in production use.
    3. Dongle version like you say it's old style.

    You can go with 1. in combination with extra option using internet activation if you want.
    Why? If bank's and other companies are using then why wouldn't be good for you as well :)
    Tomorrow you can make variation by simple changing a smart card type (memory, mcu and etc.) but usb stick with smart card stay or even if you can't get them you can connect classic smart card reader and use again your made code to do licensing of your clients.

    Have a lot of fun and keep walking forward!

    O yea, & cheers mate :)

  13. Jean-Yves P

    Dec 11 Pre-Release Testers, Xojo Pro Europe (France, Besancon)

    seeing that:

    • you want to have some solid protection for your app
    • you know how to program an arduino
    • you have not too many customers
    • you want to sell a licence to any computer, not just one per customer
    • you want the customer to be able to change of computer easily

    then the dongle solution I gave you is not old fashion for me.

  14. 3 days ago

    Steve K

    Dec 12 Melbourne, Australia
    Edited 3 days ago

    Thanks for that Jean-Yves - your ideas and solutions have made me feel more positive.

    So, lets get back to the licensing. Lets' say that I have the dongle scenario all worked out (but forget about the wifi option at this stage), then what?

    I release the software with a "timed" limit. I think the standard would be around 30 days? During that time (on start up) the user is warned how many days until the trial ceases - pretty standard stuff. I'm not 100% sure how to code that though, so I'll need some help.

    The countdown warning will always inform the user that they will need to contact me to order the dongle if they wish to continue to use the software in it's complete state. By that, I mean that the trial version will be fully functional, but after the trial period ends the user will only be able to import, export and analyze data files. They will not be able to use the recording function without the dongle.

    Maybe that is being too generous, but I think that if the recording function is disabled, then that may be enough of an incentive for the user to consider buying the software (dongle).

    The hardware device pictured above is a working prototype. If someone actually said "hey, cool - can I buy one of those" then it would take some time to put another one together. Therefore I have to be careful about how I approach "releasing" anything.

    So, how do I make a trial version with 30 days limit? I know I could do it via creating an individual version of the program for each potential user, but I'm sure that isn't best practice.

  15. Jean-Yves P

    Dec 12 Pre-Release Testers, Xojo Pro Europe (France, Besancon)

    it would be easier to allow some functions only when the dongle is present, and no time limit at all
    but I don't know your software, may be it would be allow too many things and the customer will not buy ?

  16. Christoph D

    Dec 12 Pre-Release Testers, Xojo Pro

    FYI Dondles are nowadays very easy to crack. They now just copy the dondles data (including the code it runs) in a dongle emulator (which even emulates the dongle cpu)

    On a side note: The very first dongle emulator was for the ‘uncrackable’ Steinberg Cubase.
    The current most used dongle is PACE which is already cracked with the same emulation technique.

    Not sure a dongle is worth it. Even for very expensive software.

  17. Sascha S

    Dec 12 Pre-Release Testers, Xojo Pro Germany/W'haven

    @Christoph Dnbsp;Vocht FYI Dondles are nowadays very easy to crack. They now just copy the dondles data (including the code it runs) in a dongle emulator (which even emulates the dongle cpu)

    On a side note: The very first dongle emulator was for the ‘uncrackable’ Steinberg Cubase.
    The current most used dongle is PACE which is already cracked with the same emulation technique.

    Not sure a dongle is worth it. Even for very expensive software.

    Back in those days when we worked with Autocad on MS-DOS, "Cracker" had already working "Dongle Copys" before 1 valid customer had a "real Dongle".

  18. Mathias M

    is not verified Dec 12 Pre-Release Testers Bruges, Belgium

    To me, it looks like a lot of people are very suspicious to there customers.
    A very simple software key will stop 99% of the kiddies. And after that there are 2 possibilities:

    1. Your software is insanely popular, gets cracked and will find it's way to The Pirate Bay or alike. In this case your software also sells good (as your software is popular). About 50% of your users will actually pay for your product. (according to: https://www.quora.com/What-percentage-of-people-are-using-genuine-Windows-Operating-System-Why-does-Microsoft-doesnt-take-legal-action-though-it-identifies-illegal-copies-running-on-various-systems )
    2. Your software is only used by a handful of people, crackers will see no 'fame' in cracking your software. 100% of your users will pay for your software.

    What would you rather like, Millions of users (50-50 paying/pirating) or 100 of users (and 100% paying).

    Every hour you put in grand piracy schemes is loss for you.

  19. Sascha S

    Dec 12 Pre-Release Testers, Xojo Pro Germany/W'haven

    @Mathias M Every hour you put in grand piracy schemes is loss for you.

    And every more or less complicated anti-piracy system, bugs your customers :)

  20. Jean-Yves P

    Dec 12 Pre-Release Testers, Xojo Pro Europe (France, Besancon)

    @Christoph Dnbsp;Vocht FYI Dondles are nowadays very easy to crack. They now just copy the dondles data (including the code it runs) in a dongle emulator (which even emulates the dongle cpu)

    On a side note: The very first dongle emulator was for the ‘uncrackable’ Steinberg Cubase.
    The current most used dongle is PACE which is already cracked with the same emulation technique.
    Not sure a dongle is worth it. Even for very expensive software.

    his target audience is very limited, and the customers almost all know each other.
    no craker will lose time hacking his software.
    he can put the security level he wants, by randomizing enough the dongle access, ( for example ask dongle only the first sunday between 14 and 16 with random bytes #214) the cracker will need lots of time to record all his dongle and make a clone.
    and again, small audience, so a dongle fits perfectly for this.
    for large audience app (like cubase) dongles sucks .

  21. yesterday

    Joost R

    yesterday Pre-Release Testers, Xojo Pro The Netherlands
    Edited yesterday

    @Greg OLone I did this with the HASP dongles 20 yrs ago and we decided they were too much of a support hassle for the project parameters.

    @Greg OLone Believe me or not: 20 years ago I was working at the Alladin - HASP supportdesk.

or Sign Up to reply!