A dongle (pronounced DONG-uhl) is a hardware key for securing access to a licensed software application and establishing a chain of trust. The software application uses encrypted communication to access the hardware key and verify the legitimacy of a license before the program will run. Due to the high per-unit cost, dongles are typically used to authenticate proprietary business-to-business (B2B) and business to government (B2G) applications.
Originally, dongles plugged into a parallel or serial port, but today, dongles can also be used in universal serial bus (USB) and flash memory card ports. If more than one application requires a dongle, multiple dongles can be plugged into available ports or into hubs. Over the years, dongle technology has adapted to changing market needs. Today, instead of being plugged into an open port on a computer, dongle technology can also reside on a microchip soldered into a device in order to help secure the Internet of Things (IoT).
Software application producers partner with a dongle vendor to program each dongle with special ROM (read-only memory) that stores the app's security and licensing terms. Some high end units have as much as 51 kilobytes (KBs) of ROM to enable complex licensing and security schemes. The dongle vendor loads unique codes into some form of ROM so units are not interchangeable.