David Friedman has a draft of a book online, Future Imperfect, which has the interesting feature of allowing reader comments (moderated). I posted a brief note, and received a dissenting reply from another reader.
What we are talking about is technological protection of intellectual property. I gave the example of a hardware license, but this topic seems to need further explanation.
In brief, a hardware license is a piece of external hardware that is required to be seen by the software in order for the software (the sort of intellectual property in question here) to operate. License present, software works. License absent, software doesn’t work. Since the license can’t get copied right along with the software, this ought to be a foolproof method of IP protection, right?
Well, not quite.
Let’s think about a hardware license that’s conceptually very simple: it’s a little plastic enclosure that plugs into the printer port of your PC. Inside this box is a wire that goes from an input pin to an output pin on the printer port. The software that this license is for is coded such that when it starts (or at random intervals, or whenever) it checks for the presence of the license by toggling the state of the output pin and trying to see what’s happening via the input pin. If the license (wire) is there, the input should match the output. If it isn’t, nothing should be “seen” from the input pin.
Now such a license would work very well for most non-technical people: if the little box is there, the program works. If it’s missing, the program doesn’t work. The problem is that anyone who cracks the thing open can see what’s inside (not much of anything), fabricate a replacement license (with a paper clip, say), and tell everyone in the world that all you have to do is stick a paper clip between pins X and Y on your printer port and the software works for free.
Stepping up the complexity of the license we could stick a serial EEPROM (that’s been loaded with a licence code) into our little box and read it from the printer port with our software. This is harder to duplicate, since a) it requires a modest amount of skill to fabricate and b) EEPROMs come blank, so it also requires some skill to program the thing. Of course a license like this could be made in bulk in a third world country for a few bucks each, and again everyone in the world could download a license-programming program that one bright boy wrote.
But it’s still more expensive than a paper clip.
More complex yet is some sort of intelligent license that has to interact with the licensed software. In this case copying the license may be non-trivial, since cheap microcontrollers are avaliable that are essentially single-chip computers. Also moving the license from the slow and easy-to-understand printer port to something like a USB port further raises the bar to would-be IP violators.
What about attacks on the host software? Is that the end of hardware licensing? Not yet. Consider that a very intelligent license could itself contain a part or all of the program that it licenses. Coprocessor cards are fairly common for specialized systems, so if the threat was great enough, a coprocessor card could become a software license. Think about a very generic computer program: it takes some data “D”, performs some operations “O”, and returns the result “R”. Does it matter where O takes place? You need to see the result, and perhaps provide the data, but the manipulation of the data (which is the whole point of the software in the first place) doesn’t have to take place on your computer.
So now who cares about the host software? All of the important parts of the program happen on the license, which is basically a black box: data goes in, result comes out. And now the license is hellishly complex by necessity, it needs to be a whole computer in and of itself. The costs of duplicating the licence have skyrocketed: not only do you have multiple components that are more complex than the microcontroller referenced above, but you have extremely complex, unknown software operating them.
And we can go on from here, there’s no reason in principle that the license can’t be much more complex than your computer. The real limitation to this approach is cost: if the licence adds $10,000 to the cost of the software, the software has to be worth a good deal to start with. But that also means that duplicating the license will cost $10,000 per copy for the hardware alone, never mind the time and effort involved.
Certainly hardware licensing isn’t a perfect solution, but it doesn’t need to be perfect. For hardware licensing to work, it just needs to make intellectual property violation cost more than it’s worth.