[mod.computers.vax] VAX SOFTWARE PROTECTION SCHEMES

kossmann%wnre.aecl.cdn%ubc.CSNET@RELAY.CS.NET.UUCP (02/17/87)

Some of our people are getting into the business of selling software, and
would like to implement software protection mechanisms:
	-	some serial number checked by the software
	-	yearly maintenance agreements & fees
	-	blowup dates
Anybody out there have any reasonably secure general mechanisms that could
be considered for VAX software?

LEICHTER-JERRY@YALE.ARPA.UUCP (02/18/87)

    Some of our people are getting into the business of selling software, and
    would like to implement software protection mechanisms:
    	-	some serial number checked by the software

No such serial number is available on a VAX.  (There is a "system ID" regis-
ter, but it does NOT necessarily contain a unique number on all VAXes.  As
it happens, the first 8192 or so 780's had unique values, leading people to
believe that ALL CPU's would have unique values; but then they started
wrapping.  For other CPU types, the SID may ALWAYS have the same value - the
750 is an early example.)

If the VAX happens to include an Ethernet interface, you can use its hardware
address.  This is guaranteed to be unique, but certainly cannot be guaranteed
to be present.  It could also change because the Ethernet interface is changed
(field service will USUALLY preserve the address PROM, but you can't be sure;
besides, the interface might get sold).

Large disks have software-readable serial numbers, though (a) they can be
changed by a format program; (b) disks move around, too.

In general, there is NO certain technique.  If all you want is a quick check,
you can use stuff like the DECnet node name and number.  Yes, this can be
faked - as can anything - but it will stop casual theft.

    	-	yearly maintenance agreements & fees

Sure, no problem.  Most VAX software is sold on this basis.

    	-	blowup dates

An EXTREMELY bad idea.  Be prepared for a massive lawsuit if your program
destroys valuable information, or even just stops working, when it had no
reason to.  About the only thing for which blowup dates are really acceptable
are for "try it out for 30 days, then decide" kind of deals, since no one is
likely to become at all dependent on the stuff in a short period of time when
they KNOW they haven't bought it anyway.  However, a "crippled" version of the
software - e.g., a database manager that won't handle more than 100 records -
is usually a better approach.

If you really want a time limit, have the program print out some sort of com-
plaint every time it is run after the time limit expires.  But still have it
work!

    Anybody out there have any reasonably secure general mechanisms that could
    be considered for VAX software?

There are no really secure techniques.  The various techniques used on micros
have generally been broken, and you have a LOT more room to play with on a
micro because you can get down into the guts of the rather limited hardware
in a way that's just not possible on a VAX.

VAXes are fairly expensive machines; the audience you are dealing with is a
lot more traceable and available for legal sanction than the micro community.
Legal protections are probably your best approach:  Get a good lawyer to
write your license agreement, and make it clear that you intend to enforce it.

							-- Jerry
-------