GB2154769A - Computer software protection - Google Patents

Computer software protection Download PDF

Info

Publication number
GB2154769A
GB2154769A GB08505023A GB8505023A GB2154769A GB 2154769 A GB2154769 A GB 2154769A GB 08505023 A GB08505023 A GB 08505023A GB 8505023 A GB8505023 A GB 8505023A GB 2154769 A GB2154769 A GB 2154769A
Authority
GB
United Kingdom
Prior art keywords
computer
program
identifying element
code
computer program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB08505023A
Other versions
GB2154769B (en
GB8505023D0 (en
Inventor
Michael John Shaw
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GANDLAKE SOFTWARE Ltd
Original Assignee
GANDLAKE SOFTWARE Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GANDLAKE SOFTWARE Ltd filed Critical GANDLAKE SOFTWARE Ltd
Priority to GB08505023A priority Critical patent/GB2154769B/en
Publication of GB8505023D0 publication Critical patent/GB8505023D0/en
Publication of GB2154769A publication Critical patent/GB2154769A/en
Application granted granted Critical
Publication of GB2154769B publication Critical patent/GB2154769B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Abstract

A computer program is supplied together with an identifying element encoded so as to identify the particular program. The identifying element is read by a code reader coupled to the computer and the program causes the computer to read this code and compare it with a corresponding code included in the program, before the program can be run. These arrangements prevent the use in computers of programs which have been made by unauthorised copying.

Description

SPECIFICATION Computer software protection This invention relates to arrangements for preventing the use in computers of programs which have been made by unauthorised copying.
Unauthorised copying of software has hitherto been difficult or impossible to stop and represents a considerable loss of revenue to the industry, whether the original programs are provided on tape cassettes, floppy discs or otherwise.
We have now devised arrangements which are not intended to prevent copying, but which instead prevent use of a program by anyone not possessing an identifying element which is unique to the particular program being protected.
In accordance with this invention, there is provided, in or for a computer system which comprises a computer together with a program input device and a code reader coupled to separate inputs of the computer, the combination of a computer program receivable by the input device and an identifying element receivable by the reader, the computer program including a code unique only to that particular program, the identifying element having a read-only memory which holds a corresponding code, the computer program being arranged to cause the computer to read the code from the identifying element (via the code reader), to compare the code as read from the identifying element with the code included in the program, and to prevent use of that program in the computer unless the two codes agree, and the computer program being further arranged to cause the computer only to carry out the comparison step prior to the program running in the computer.
Most usually the computer program will be provided on a record medium such as a tape cassette or a floppy disc or a ROM chip. The read-only-memory of the identifying element may conveniently comprise a short length or stripe of magnetic material: this may be provided on a plastics card, or on the casing of the record medium (e.g. on the cassette body or its library case, the floppy disc, the micro drive cartridge, or the ROM cartridge) or on some packaging within which the program is contained when purchased.
The arrangements may be such that the comparison step or security check is carried out after the entire program has been loaded into the computer, the program being prevented from running unless the code read from the identifying element agrees with the program-identifying code read from program.
Alternatively, the arrangements may be such that the computer loads an initial routine of the program, which then causes the computer to carry out the comparison step and to prevent the remainder of the program being loaded unless the compared codes agree.
Embodiments of this invention will now be described, by way of examples only, with reference to the accompanying drawings, in which: Figures 1 and 2 are respectively side and plan views of a first embodiment of reader for the identifying element; Figures 3 and 4 are respectively plan and side views of a second embodiment of reader for the identifying element; Figure 5 is a plan view of a circuit board used with the hand-held reader of Figs. 3 and 4; Figures 6 and 7 are respectively side and plan views of a third embodiment of reader; Figure 8 is a plan view of a tape cassette on which the identifying element is provided; Figure 9 is a plan view of a plastics card forming an alternative identifying element; Figure 10 is a circuit diagram of the alternative readers; Figure 11 is a flow diagram of the security routine included in the computer program; and Figure 12 is a diagram showing one possible arrangement of magnetic pulses on a stripe of magnetic material used for the identifying element.
In the arrangements which are shown in the drawings by way of examples only, the computer will have a cassette player or disc drive coupled to it as usual for loading the program into the computer from cassette or disc, and a data reader coupled to a separate input of the computer for reading the program-identifying code from the identifying element: in the examples shown, the reader is coupled to the Expansion Port of the computer and the identifying code is recorded on a stripe of magnetic material, forming a read-only-memory.
The magnetic stripe 1 may be embedded in the self-adhesive label on the tape cassette, as shown in Fig. 8, or formed on a plastics card of the same type as a banker's card, as shown in Fig. 9.
In the embodiment of reader shown in Figs.
1 and 2, a printed circuit board 3 plugs via an edge connector 6 into the Expansion Port of the computer. On the PCB 3 is mounted a standard tape recorder replay head 2 together with an electronic circuit serving to amplify and shape the signal picked up by the tape head, as a card 10 with its magnetic stripe 1 is drawn past the head. The signal is then fed via the edge connector Item 6 onto a Data Line into the computer. The PCB 3 is further provided, at the opposite end to the edge connector, with a replica of the computer port so as to allow for connection of other add-on units. To ensure good contact between the magnetic stripe and the tape head 2, a pressure pad 8 is provided. A plastics case 4 provides protection for the PCB, and location for the plastics card 10 as it is pulled past the tape head.
Due to differences in the positioning of expansion ports in computers e.g. at the rear, on the left or the right sides, different designs of reader may be needed. For example, the reader of Figs. 6 and 7 is arranged for the card 10 to be pulled parallel to the Expansion Port instead of at 90 degrees as in Fig. 2. To facilitate the connection of other add-ons to this device via the card edge connector 7, the tape head and electronic components are mounted on a separate PCB 3. Otherwise all other components are as described for Figs. 1 and 2.
To allow for further flexibility as regards the placing of the magnetic stripe e.g. on a part of the product or part of the packaging too awkward to be drawn past the tape head, the reader shown in Figs. 3 to 5 may be used.
Here, the tape head, together with the same electronic components as in the other two examples, are built into a tubular case 4. This now becomes a hand-held unit, capable of drawing the tape head across the magnetic stripe and picking up its code. This signal is then fed via a cable 5, to a second PCB 7, which is plugged into the computer's expansion port. Again further add-on units can be connected to the computer via the repeat of the expansion port at the opposite end of the PCB 7.
On some computers the expansion port is a 'socket' rather than a 'plug' as assumed in the above descriptions. This only means a reversal of the connectors on PCB 3 in Fig. 2 and PCB 7 in Fig. 5 and 7.
Fig. 10 is a circuit diagram of the magnetic stripe readers. There are five connections from this reader circuit into the computer. They are the terminal marked + 12 volts, + 5 volts and 0 volts; and the two terminals 17 and 18. In operation, the tape head 2 picks up variations in magnetic flux density from the tape. This low level signal is amplified by the two transistors 12, 13. The signal is then processed by two diodes 14, 15 to remove the negative half of the wave form and limit the maximum positive component to plus five volts. The signal, which is now TT1 compatible, is passed to a tri-state IC buffer item 16.
This buffer is controlled by the signal on terminal 17 from the computer. When the buffer is enabled by the computer, any signals produced by the tape head are passed via terminal 18 direct onto a data line and into the computer.
The magnetic stripe reader is to be left permanently plugged into the computer (or alternatively it may form a permanent part of the computer). Then after loading and autorunning a program as usual, the security routine of the program causes the computer to wait for the reader to read the magnetic stripe (i.e. for the stripe to be pulled past the tape head): only after the security code has thus been read, and approved, will the computer run the program. Fig. 11 is a flow chart of an example of security routine and Fig. 12 is a diagram of the magnetic pulses on the magnetic stripe, the flow chart of Fig. 11 being for this arrangement of magnetic pulses.
Once the program has been allowed to run, the code reader is not addressed again. However, in another embodiment of reader, where a plastics card carrying the magnetic stripe is read as the card is inserted into the reader, a hole is formed through the card on the middle line of the stripe so that a light path is completed through this hole when the card is in its fully-inserted position. If the card is removed and the light path thus temporarily interrupted, this causes a signal to be passed to the computer to stop the program running further. During insertion of the card, the initial interruption of the light path serves to pass a signal to the computer to indicate that the card is being inserted, so that the computer can prepare for the code reading.
As mentioned previously, instead of the program being allowed to load but prevented from running unless the compared codes agree, an initial routine of the program may carry out the security check before the remain- der of the program is loaded, and prevent the remainder of the program being loaded unless the compared codes agree.
Whilst mention has been made of the supply of a record medium (e.g. a tape or disc or a ROM chip) on which the computer program is recorded, the program may instead be supplied to the user by a telephone link or data line. In any event, the user needs also to be supplied with the identifying element, encoded with its identification uniquie to the particular program concerned.

Claims (9)

1. In or for a computer system which comprises a computer together with a program input device and a code reader coupled to separate inputs of the computer, the combination of a computer program receivable by the input device and an identifying element receivable by the reader, the computer program including a code unique only to that particular program, the identifying element having a read-only memory which holds corresponding code, the computer program being arranged to cause the computer to read the code from the identifying element (via the code reader), to compare the code as read from the identifying element with the code included in the program, and to prevent use of that program in the computer unless the two codes agree, and the computer program being further arranged to cause the computer only to carry out the comparison step prior to the program running in the computer.
2. A combination of identifying element and computer program as claimed in claim 1, in which the computer program is arranged to cause the computer to carry out the comparison step after the entire program has been loaded into the computer, and to prevent the program from running unless the compared codes agree.
3. A combination of identifying element and computer program as claimed in claim 1, in which the computer program includes an initial routine arranged to cause the computer to carry out the comparison step prior to the remainder of the program being loaded into the computer, and to prevent that remainder of the program being loaded unless the compared codes agree.
4. A combination of identifying element and computer program as claimed in any preceding claim, in which the computer program is recorded on a record medium e.g. a tape, disc or ROM chip.
5. A combination of identifying element and computer program as claimed in any preceding claim, in which the identifying element comprises a stripe of magnetic material encoded with the identifying code.
6. A combination of identifying element and computer program as claimed in claim 5, in which the identifying element comprises a plastics card provided with the encoded magnetic stripe.
7. A combination of identifying element and computer program as claimed in claim 5, in which the encoded magnetic stripe is provided on a casing of a record medium on which the program is recorded.
8. A combination of identifying element and computer program substantially as herein described with reference to the accompanying drawings.
9. A computer system which comprises a computer, a program input device and a code reader coupled to separate inputs of the computer, a computer program received or receivable by the input device and an identifying element received or receivable by the reader, the computer program including a code unique to that particular program, the identifying element having a read-only-memory which holds a corresponding code, the computer program being arranged to cause the computer to read the code from the identifying element (via the code reader), to compare the code as read from the identifying element with the code included in the program, and to prevent use of that program in the computer unless the two codes agree, the computer program being further arranged to cause the computer only to carry out the comparison step prior to the program running in the computer, and the code reader being arranged to read upon insertion of the identifying element into the reader and to respond to any subsequent physical removal of the identifying element to pass a signal to the computer to stop the program running.
GB08505023A 1984-02-28 1985-02-27 Computer software protection Expired GB2154769B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB08505023A GB2154769B (en) 1984-02-28 1985-02-27 Computer software protection

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8405097 1984-02-28
GB08505023A GB2154769B (en) 1984-02-28 1985-02-27 Computer software protection

Publications (3)

Publication Number Publication Date
GB8505023D0 GB8505023D0 (en) 1985-03-27
GB2154769A true GB2154769A (en) 1985-09-11
GB2154769B GB2154769B (en) 1987-11-18

Family

ID=26287376

Family Applications (1)

Application Number Title Priority Date Filing Date
GB08505023A Expired GB2154769B (en) 1984-02-28 1985-02-27 Computer software protection

Country Status (1)

Country Link
GB (1) GB2154769B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2204970A (en) * 1987-05-19 1988-11-23 Gen Electric Co Plc Data storage system
US5287407A (en) * 1990-05-31 1994-02-15 International Business Machines Corporation Computer software protection
DE4239865A1 (en) * 1992-11-27 1994-06-01 Heinz Johann Unauthorised program use prevention method - inserting installation chip card data carrier into test appts. before starting, interrogating card to check program addresses, and interrupting program with incorrect answer
GB2339488A (en) * 1998-04-24 2000-01-26 Dell Usa Lp Downloading custom software to a unique computer

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1537759A (en) * 1975-08-25 1979-01-04 Ibm Data processing apparatus
EP0084441A2 (en) * 1982-01-19 1983-07-27 Tabs Limited Method and apparatus for the protection of proprietary computer software
EP0089876A1 (en) * 1982-03-18 1983-09-28 Bull S.A. Method and device for the protection of software delivered by a supplyer to a user
GB2131850A (en) * 1982-12-15 1984-06-27 Monier Ltd Hardenable structures for mine passages
EP0115395A2 (en) * 1983-01-26 1984-08-08 International Computers Limited Computer processor system with software protection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1537759A (en) * 1975-08-25 1979-01-04 Ibm Data processing apparatus
EP0084441A2 (en) * 1982-01-19 1983-07-27 Tabs Limited Method and apparatus for the protection of proprietary computer software
EP0089876A1 (en) * 1982-03-18 1983-09-28 Bull S.A. Method and device for the protection of software delivered by a supplyer to a user
GB2131850A (en) * 1982-12-15 1984-06-27 Monier Ltd Hardenable structures for mine passages
EP0115395A2 (en) * 1983-01-26 1984-08-08 International Computers Limited Computer processor system with software protection

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2204970A (en) * 1987-05-19 1988-11-23 Gen Electric Co Plc Data storage system
US5287407A (en) * 1990-05-31 1994-02-15 International Business Machines Corporation Computer software protection
DE4239865A1 (en) * 1992-11-27 1994-06-01 Heinz Johann Unauthorised program use prevention method - inserting installation chip card data carrier into test appts. before starting, interrogating card to check program addresses, and interrupting program with incorrect answer
GB2339488A (en) * 1998-04-24 2000-01-26 Dell Usa Lp Downloading custom software to a unique computer
US6298443B1 (en) 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
GB2339488B (en) * 1998-04-24 2003-02-12 Dell Usa Lp Method and system for supplying a custom software image to a computer system

Also Published As

Publication number Publication date
GB2154769B (en) 1987-11-18
GB8505023D0 (en) 1985-03-27

Similar Documents

Publication Publication Date Title
EP0595305B1 (en) IC card reader
EP0134110A3 (en) Reading and writing apparatus for id cards
AU702183B2 (en) Reading frame for a microcircuit card reader apparatus
JP2004165088A (en) Adapter for connector with memory function
US6786417B1 (en) Memory card with write protection switch
JPH08212017A (en) Information storage device and processor using same
GB2154769A (en) Computer software protection
EP0213046A2 (en) Electronic card connecting circuit
US20040240260A1 (en) Information storage apparatus and information processing apparatus using the same
JP4564321B2 (en) Card type electronic equipment
WO1985004032A1 (en) Computer software protection
EP0855672B1 (en) Ic card reader/writer and its control method
AU5150496A (en) Connector for a microcircuit card reader apparatus and card reader comprising same
US6938104B2 (en) Removable hard drive assembly, computer with a removable hard disk drive, method of initializing and operating a removable hard drive
JPS60207987A (en) Card reader/writer
JPS58159194A (en) Electronic memory card
JP2001256466A (en) Memory card mounting system
JPS5991590A (en) Integrated circuit card
JPH01276286A (en) Memory card and its connector
JPH0734210B2 (en) Electronic device to which memory cartridge can be connected
JPS6280792A (en) System for discriminating sort of card
KR200255566Y1 (en) IC card reader connecter
KR100198754B1 (en) Electronic card insertion detecting method and apparatus
JPH09212615A (en) Memory card and information terminal equipment
JPH06266910A (en) Card processor

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee