3

Situation: i have a licencing program that i wrote in Delphi 7, this allows users to create licences for products that have been sold. There is a security risk with this because any employee could sell the products from home and take the licencing program home and create licences - they would be stealing and we would never know!

I thought it might be a good idea to restrict the licencing pgm to run only when its inside the corporate lan.

Is it advisable to do things like looking for the existance of a named server, or to test if its being run on a particular subnet? And if so any examples would be welcome :)

Sertac Akyuz
  • 54,131
  • 4
  • 102
  • 169
Rucia
  • 249
  • 1
  • 9
  • Previously asked (no accepted answers though): [How can my program detect whether it's running on a particular domain?](http://stackoverflow.com/questions/4715512). – Sertac Akyuz Mar 06 '11 at 13:06

2 Answers2

2

There is one easy solution: Make it a web service or at least implement the license creation only on a an application that runs on one or more servers. This would allow everybody who can access the server(s) via network to create licenses. Outside of your network - protected by a firewall - no access is possible and therefore no-one can create licenses on his/her own.

Robert
  • 39,162
  • 17
  • 99
  • 152
  • thanks. maybe i'll investigate the web service idea because if someone has access to the server they could copy the licencing program onto a usb and take it wherever they like – Rucia Mar 03 '11 at 18:17
  • 3
    the server room should be locked ... ;) – mjn Mar 06 '11 at 06:32
  • If you want to make your license generator app 100% "uncopyable" you need special hardware like a crypto token, smartcard or a trusted platform module. – Robert Mar 06 '11 at 17:45
1

One thing to include in the mix is the domain of the computer. Most businesses have a domain that will be harder to reproduce. For an app you are developing for internal use, you could check for presence of a number of servers too.

mj2008
  • 6,647
  • 2
  • 38
  • 56
  • But just to check for some servers isn't very secure. Using VMWare or other virtualization software you can reproduce any network environment you want. – Robert Mar 06 '11 at 10:52
  • @Robert I didn't claim secure, just part of the mix. A casual person is not going to bother setting up a matching domain and servers. Add more to secure as appropriate. – mj2008 Mar 06 '11 at 11:04