Revision as of 03:28, 14 February 2004 editMatt Gies (talk | contribs)Extended confirmed users5,299 editsm disambiguate CAM← Previous edit | Revision as of 19:15, 14 February 2004 edit undoDavid Gerard (talk | contribs)Edit filter managers, Administrators213,071 edits take redundancy out of intro (see talk page); other tweaksNext edit → | ||
Line 1: | Line 1: | ||
A '''dongle''' is a small hardware device that connects to a ] and acts as an authentication key for a particular piece of software. When the dongle is present, the software will run properly; when it is not, the program will run in a restricted mode or refuse to start. Dongles are used by some ] vendors as a form of ] or ] because it is much harder to copy the dongle than to copy the software it authenticates. | |||
('''Dongle''' also refers to an ] jack attached via a wire to a small edge connector, which is used to connect an ] cable to a ] ], into which the edge connector plugs. This type of dongle has no copy protection purpose. These are falling out of favour as ]s tend more to include a built-in RJ-45 socket.) | |||
The dongle is a form of ] or ] which some software sellers prefer because it is much harder to copy the dongle than it is to copy the software it authenticates. However, efforts to introduce dongle-protected software packages in the mainstream software market have met with stiff resistance from users. For this reason, dongles are now used only with very expensive packages and ] software, such as ]/] software, ] applications and some ] packages. | |||
Dongles are typically used with very expensive packages and ] software, such as ]/] software, ] applications and some ] packages. Efforts to introduce dongle-protected software packages in the mainstream software market have met with stiff resistance from users. | |||
⚫ | |||
==History== | |||
⚫ | |||
⚫ | Dongles became common in the ] and into the ]. Originally taking the form of simple passive devices that connected a ] in a predetermined manner, they rapidly evolved into active devices that contained a serial transceiver (]) and even a ] to handle transactions with the host. Later versions adopted the ] interface in preference to the serial interface. | ||
⚫ | There is also a potential weakness in the implementation of the ] between the dongle and the protected software |
||
Modern dongles include built-in strong ], and special fabrication techniques designed to thwart ]. Typical dongles also now contain a reasonable amount of non-volatile memory — key parts of the software may be actually stored on the dongle. | |||
==Problems with dongles== | |||
⚫ | The major problem with dongles is that they tie up a port on the host machine. This has been ameliorated to some extent by the adoption of USB, but is still a serious drawback. To get around this, most practical dongles include a replacement port, so as to become an inline device. A related problem is the machine which is running more than one piece of dongle-protected software. Manufacturers claim that multiple dongles can be successfully stacked or daisy-chained, but operational problems with stacked dongles are common in practice. There is also the obvious problem of losing the dongle, rendering the protected software useless. Also, if more than one application is protected in this manner, the number of dongles becomes physically problematic. | ||
⚫ | There is also a potential weakness in the implementation of the ] between the dongle and the protected software — it requires considerable design cunning to implement this in a fashion that is not easy to ]. For example, a naive implementation might simply define a ] that checks for the dongle, returning true or false accordingly. This reduces all of the protection, however sophisticated, to a single ] value at one point in the program, so cracking the protection requires only the identification and manipulation of that single bit. | ||
==Origin of the word "dongle"== | ==Origin of the word "dongle"== | ||
The word "dongle," as a word for something unnamed (akin to "doodad" or "whatchamacallit") has been used since the 1970s. Its origin is unknown. The ], 4th edition, says it is "probably arbitrary coinage." Assertions that it was derived from the name "Don Gall" are an ] popularized by an advertising copywriter; see ]'s . | The word "dongle," as a word for something unnamed (akin to "doodad" or "whatchamacallit") has been used since the 1970s. Its origin is unknown. The ], 4th edition, says it is "probably arbitrary coinage." Assertions that it was derived from the name "Don Gall" are an ] popularized by an advertising copywriter; see ]'s . | ||
Revision as of 19:15, 14 February 2004
A dongle is a small hardware device that connects to a computer and acts as an authentication key for a particular piece of software. When the dongle is present, the software will run properly; when it is not, the program will run in a restricted mode or refuse to start. Dongles are used by some proprietary vendors as a form of copy protection or digital rights management because it is much harder to copy the dongle than to copy the software it authenticates.
(Dongle also refers to an RJ-45 jack attached via a wire to a small edge connector, which is used to connect an Ethernet cable to a PCMCIA NIC, into which the edge connector plugs. This type of dongle has no copy protection purpose. These are falling out of favour as laptops tend more to include a built-in RJ-45 socket.)
Dongles are typically used with very expensive packages and vertical market software, such as CAD/CAM software, Digital Audio Workstation applications and some translation memory packages. Efforts to introduce dongle-protected software packages in the mainstream software market have met with stiff resistance from users.
History
Dongles became common in the 1980s and into the 1990s. Originally taking the form of simple passive devices that connected a parallel port in a predetermined manner, they rapidly evolved into active devices that contained a serial transceiver (UART) and even a microprocessor to handle transactions with the host. Later versions adopted the USB interface in preference to the serial interface.
Modern dongles include built-in strong encryption, and special fabrication techniques designed to thwart reverse engineering. Typical dongles also now contain a reasonable amount of non-volatile memory — key parts of the software may be actually stored on the dongle.
Problems with dongles
The major problem with dongles is that they tie up a port on the host machine. This has been ameliorated to some extent by the adoption of USB, but is still a serious drawback. To get around this, most practical dongles include a replacement port, so as to become an inline device. A related problem is the machine which is running more than one piece of dongle-protected software. Manufacturers claim that multiple dongles can be successfully stacked or daisy-chained, but operational problems with stacked dongles are common in practice. There is also the obvious problem of losing the dongle, rendering the protected software useless. Also, if more than one application is protected in this manner, the number of dongles becomes physically problematic.
There is also a potential weakness in the implementation of the protocol between the dongle and the protected software — it requires considerable design cunning to implement this in a fashion that is not easy to crack. For example, a naive implementation might simply define a function that checks for the dongle, returning true or false accordingly. This reduces all of the protection, however sophisticated, to a single bit value at one point in the program, so cracking the protection requires only the identification and manipulation of that single bit.
Origin of the word "dongle"
The word "dongle," as a word for something unnamed (akin to "doodad" or "whatchamacallit") has been used since the 1970s. Its origin is unknown. The American Heritage Dictionary, 4th edition, says it is "probably arbitrary coinage." Assertions that it was derived from the name "Don Gall" are an urban myth popularized by an advertising copywriter; see Eric S. Raymond's Jargon File.
Vendors of dongles and dongle-protected software often use more dignified terms such as "hardware key" or "security device" in their written literature. Outside of such literature, "dongle" is the usual term for the device (and is used even by dongle vendors in informal parlance).
"Bongle" is the name of a software variety of Dongle.