parallel port copy protection dongles. Efforts to introduce dongle copy-protection in the mainstream software market have met stiff resistance from users. Such copy-protection is more typically used with very expensive packages and
vertical market software such as
CAD/
CAM software,
cellphone flasher/JTAG debugger software,
MICROS Systems hospitality and special retail software,
digital audio workstation applications, and some
translation memory packages. In cases such as prepress and printing software, the dongle is encoded with a specific, per-user license key, which enables particular features in the target application. This is a form of tightly controlled licensing, which allows the vendor to engage in vendor lock-in and charge more than it would otherwise for the product. An example is the way
Kodak licenses
Prinergy to customers: When a
computer-to-plate output device is sold to a customer, Prinergy's own license cost is provided separately to the customer, and the base price contains little more than the required licenses to output work to the device. USB dongles are also a big part of
Steinberg's audio production and editing systems, such as
Cubase, WaveLab, Hypersonic,
HALion, and others. The dongle used by Steinberg's products is also known as a Steinberg Key. The Steinberg Key can be purchased separately from its counterpart applications and generally comes bundled with the "Syncrosoft License Control Center" application, which is cross-platform compatible with both Mac OS X and Windows. Some software developers use traditional USB flash drives as software license dongles that contain hardware serial numbers in conjunction with the stored device ID strings, which are generally not easily changed by an end-user. A developer can also use the dongle to store user settings or even a complete "portable" version of the application. Not all flash drives are suitable for this use, as not all manufacturers install unique serial numbers into their devices. Although such medium security may deter a casual hacker, the lack of a processor core in the dongle to authenticate data, perform encryption/decryption, and execute inaccessible binary code makes such a passive dongle inappropriate for all but the lowest-priced software. A simpler and even less secure option is to use unpartitioned or unallocated storage in the dongle to store license data. Common USB flash drives are relatively inexpensive compared to dedicated security dongle devices, but reading and storing data in a flash drive are easy to intercept, alter, and bypass.
Issues There are potential weaknesses in the implementation of the protocol between the dongle and the copy-controlled software. For example, a simple implementation might define a
function to check for the dongle's presence, returning "true" or "false" accordingly, but the dongle requirement can be easily circumvented by modifying the software to always answer "true". Modern dongles include built-in strong encryption and use fabrication techniques designed to thwart
reverse engineering. Typical dongles also now contain
non-volatile memory — essential parts of the software may actually be stored and executed on the dongle. Thus dongles have become
secure cryptoprocessors that execute program instructions that may be input to the cryptoprocessor only in encrypted form. The original secure cryptoprocessor was designed for copy protection of personal computer software (see US Patent 4,168,396, Sept 18, 1979)to provide more security than dongles could then provide. See also
bus encryption. Hardware cloning, where the dongle is emulated by a device driver, is also a threat to traditional dongles. To thwart this, some dongle vendors adopted
smart card product, which is widely used in extremely rigid security requirement environments such as military and banking, in their dongle products. A more innovative modern dongle is designed with a
code porting process which transfers encrypted parts of the software vendor's program code or license enforcement into a secure hardware environment (such as in a smart card OS, mentioned above). An
ISV can port thousands of lines of important
computer program code into the dongle. In addition, dongles have been criticized because as they are
hardware, they are easily lost and prone to damage, potentially increasing operational costs such as device cost and delivery cost.
Jerry Pournelle in 1988 identified another problem with dongles: A possible security flaw. "I don't know what the thing is doing ... For all I know, the gizmo may infect my machine with a
virus". ==Game consoles==