Revision as of 20:13, 8 November 2004 editPsychonaut (talk | contribs)Extended confirmed users, Pending changes reviewers31,686 editsm NPOV← Previous edit | Revision as of 18:41, 6 December 2004 edit undoMatt Crypto (talk | contribs)23,089 editsm →Implementation problems: dab protocolNext edit → | ||
Line 23: | Line 23: | ||
] | ] | ||
There is the potential for weaknesses in the implementation of the ] between the dongle and the copy-controlled software. It requires considerable cunning to implement this in a fashion that is not easy to ]. For example, naïve implementations might simply define a ] to check for the dongle, returning "true" or "false" accordingly, reducing the prevention scheme to a single ] value at one point in the program. | There is the potential for weaknesses in the implementation of the ] between the dongle and the copy-controlled software. It requires considerable cunning to implement this in a fashion that is not easy to ]. For example, naïve implementations might simply define a ] to check for the dongle, returning "true" or "false" accordingly, reducing the prevention scheme to a single ] value at one point in the program. | ||
Modern dongles include built-in strong ] and use fabrication techniques designed to thwart ]. Typical dongles also now contain ] — key parts of the software may actually be stored on the dongle. | Modern dongles include built-in strong ] and use fabrication techniques designed to thwart ]. Typical dongles also now contain ] — key parts of the software may actually be stored on the dongle. |
Revision as of 18:41, 6 December 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 prevention or digital rights management because it is much harder to copy the dongle than to copy the software it authenticates.
- Dongle can also be used to refer to:
- A jack wired to a small edge connector on a Type I or II PCMCIA card, typically an RJ45 or RJ11 jack for an Ethernet or telephone cable. This type of dongle has no copy prevention purpose. PCMCIA card dongles are notoriously fragile and unreliable. They are falling out of favour as more laptops include built-in Ethernet and modem sockets.
- A simple, contained USB device, such as a portable flash memory card or a Bluetooth antenna.
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 copy prevention in the mainstream software market have met with stiff resistance from users.
Vendors of dongles and dongle-controlled software often use terms such as hardware key or security device in their written literature. In day-to-day use, however, "dongle" is the almost universal term for the device and is used informally even by said vendors.
History
PaperClip, in 1984, was the first program to use a dongle. Its dongle was a simple passive device that connected the pins of a parallel port in a predetermined manner.
Dongles 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 or parallel interface.
Problems with dongles
Implementation problems
There is the potential for weaknesses in the implementation of the protocol between the dongle and the copy-controlled software. It requires considerable cunning to implement this in a fashion that is not easy to crack. For example, naïve implementations might simply define a function to check for the dongle, returning "true" or "false" accordingly, reducing the prevention scheme to a single bit value at one point in the program.
Modern dongles include built-in strong encryption and use fabrication techniques designed to thwart reverse engineering. Typical dongles also now contain non-volatile memory — key parts of the software may actually be stored on the dongle.
User problems
Dongles 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.
In fields where dongle-controlled software is common, users often need more than one such application installed on a given computer. Manufacturers claim that multiple dongles can be successfully stacked or daisy-chained, but operational problems with stacked dongles are common. The number of dongles can also become physically problematic.
There is the obvious problem of losing the dongle, rendering the copy-controlled software useless until a replacement can be obtained. This is particularly likely if one needs to swap dongles for different applications.
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." Claims that it was derived from the name "Don Gall" are an urban myth popularized by a 1992 advertisement for Rainbow Technologies, a dongle vendor.