[net.micro] Software protection in software

notes@iuvax.UUCP (04/14/84)

#N:iuvax:400012:000:1431
iuvax!apratt    Apr 13 21:53:00 1984


One poster on the subject of software protection suggested that a
serial number could be associated with each computer or company, and
that programs could be written to check that serial number and autodial
the police if it didn't match (that last is a joke...).

This would be a good scheme except for two things:  the fact that the
hardware with the code in it could be copied and installed in another
machine, and the fact that somebody could modify the program in such a
way that the check were not made.  Don't say that the program can
checksum itself to prevent tampering: that check, too, can be
circumvented.

Any software protection scheme can be prevented if the user (read:
potentially determined pirate) can see and modify the instructions, and
in Von Neumann machines, the whole POINT is that the code can be read
and modified.

One protection scheme which, I am told, the US Government employs is to
PHYSICALLY seperate the code (text) and data busses WITHIN THE
PROCESSOR.  In this way, no user has access to the programs which are
running, and so cannot read or change any of the programs that are in
"program text" memory.

As long as a user can get his hands on the program code, he can
circumvent and software protection scheme simply by inserting a "jump"
over the protective code, like a burglar cutting the door away from the
lock and swinging it open.

						-- Allan Pratt
					...ihnp4!inuxc!iuvax!apratt

phil@amd70.UUCP (Phil Ngai) (04/15/84)

You seem to be assuming the code only checks once for serial numbers.
And that you can find that section of code.

I think it would be very easy to do the check in several places (200 or so).
And instead of bombing out, set a flag which causes slightly incorrect
answers to be produced.

In addition, the serial number could be stored in weird ways in many
places. If you let a friend copy your disk and he was caught, you (the
original purchaser) could be identified and would share the guilt.



-- 
Phil Ngai (408) 988-7777 {ucbvax,decwrl,ihnp4,allegra,intelca}!amd70!phil

notes@iuvax.UUCP (04/18/84)

#R:amd70:-453900:iuvax:400014:000:827
iuvax!apratt    Apr 17 13:50:00 1984

Sorry, but as long as there are people with disassemblers who can get
read/write access to the code, there is NO safe protection scheme which depends
on the software to implement it.  One padlock on a door can be picked. So can
twenty. It may take longer, but a determined locksmith (pun intended) can
do it. With the right debugger, it could even be automated. Just check for
differences in behavior between a legitimate program and one running on the
"wrong" machine (at the program-trace level, not the user-interface level).
Such checks (padlocks) can ALWAYS be circumvented, as can any safeguards
which check to make sure the padlocks are in place.  Like I said, under
a Von Neumann architecture, you just can't do it.

----
						-- Allan Pratt
					...ihnp4!inuxc!iuvax!apratt
				(please do not respond to iuvax!notes)