GB2154769A - Computer software protection - Google Patents
Computer software protection Download PDFInfo
- 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
Links
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 229920003023 plastic Polymers 0.000 claims description 7
- 239000004033 plastic Substances 0.000 claims description 7
- 239000000696 magnetic material Substances 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- FPWNLURCHDRMHC-UHFFFAOYSA-N 4-chlorobiphenyl Chemical compound C1=CC(Cl)=CC=C1C1=CC=CC=C1 FPWNLURCHDRMHC-UHFFFAOYSA-N 0.000 description 4
- WEJZHZJJXPXXMU-UHFFFAOYSA-N 2,4-dichloro-1-phenylbenzene Chemical compound ClC1=CC(Cl)=CC=C1C1=CC=CC=C1 WEJZHZJJXPXXMU-UHFFFAOYSA-N 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000000853 adhesive Substances 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
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.
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)
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)
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 |
-
1985
- 1985-02-27 GB GB08505023A patent/GB2154769B/en not_active Expired
Patent Citations (5)
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)
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 |
---|---|
GB8505023D0 (en) | 1985-03-27 |
GB2154769B (en) | 1987-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0595305A1 (en) | IC card reader | |
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 | |
KR940024720A (en) | Tape cassette with IC memory and IC connection system for tape cassette | |
GB2154769A (en) | Computer software protection | |
US7104459B2 (en) | Information storage apparatus and information processing apparatus using the same | |
JP4564321B2 (en) | Card type electronic equipment | |
EP0855672B1 (en) | Ic card reader/writer and its control method | |
WO1985004032A1 (en) | Computer software protection | |
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 | |
KR940704047A (en) | CASSETTE WITH A RECORDING MEDIUM FOR A RECORDING DEVICE | |
JPS60207987A (en) | Card reader/writer | |
JPS58159194A (en) | Electronic memory card | |
JPS5991590A (en) | Integrated circuit card | |
JPH01276286A (en) | Memory card and its connector | |
KR200322549Y1 (en) | Coupling apparatus for a connector | |
JPS6280792A (en) | System for discriminating sort of card | |
KR200255566Y1 (en) | IC card reader connecter | |
KR100198754B1 (en) | Electronic card insertion detecting method and apparatus | |
JPH0521169Y2 (en) | ||
JPH09212615A (en) | Memory card and information terminal equipment | |
JPH06266910A (en) | Card processor | |
JPS62254287A (en) | Identifying system for electronic parts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |