# Dongle

Um dongle, ou hardlock, é um pequeno hardware de computador (um dispositivo físico) que se conecta a uma porta em outro dispositivo, para fornecer funcionalidade adicional ou permitir acesso ao dispositivo que ele adiciona funcionalidade. Inicialmente era apenas um dispositivo de segurança externo que restringia o uso de um determinado programa. Versões mais antigas utilizavam a porta serial ou a porta paralela do computador e, atualmente, utiliza-se uma conexão USB ou HDMI, geralmente encontrado no formato de um pendrive.
Na computação, o termo era inicialmente sinônimo de dongles de proteção de software - uma forma de gerenciamento de direitos digitais por hardware em que um software só funcionará se um dongle específico, que normalmente contém uma chave de licença ou algum outro mecanismo de proteção criptográfica, estiver conectado ao computador enquanto estiver em execução.
Desde então, o termo foi aplicado a outras formas de dispositivos com um fator de forma semelhante, como adaptadores que convertem portas para lidar com diferentes tipos de conectores (como DVI para VGA para monitores, conexão USB para serial e, na computação moderna, USB-C para outros tipos de portas, e Mobile High-Definition Link), adaptadores sem fio USB para padrões como Bluetooth e Wi-Fi (o termo "stick" ou "chave" é mais comumente usado para descrever unidades flash USB, bem como formas modernas de dongles com formatos mais finos, mais semelhantes às unidades flash) e players de mídia digital com pequeno fator de forma que se conectam às portas HDMI.

## Aplicações

Um dongle é utilizado para prevenir o uso de cópias não autorizadas de um determinado software proprietário (pirataria), já que o programa só funcionará ao detectar corretamente a presença do dispositivo no computador. Comumente fornecido com aplicativos restritivos de alto custo e destinados a mercados com alto grau de especificidade, também é utilizado em servidores, seja garantindo o contrato temporário de utilização do software quanto arbitrariamente restringindo o uso do sistema a um número limitado de usuários. Lembrando que no caso acima dongle serve apenas para descrever o dispositivo "físico" uma vez que o recurso utilizado por programas proprietários como mencionado chama-se "Hard Lock"
Embora seja uma técnica eficiente de restrição para usuários leigos, possui falhas amplamente exploradas por crackers para executar cópias não autorizadas. Uma das técnicas mais utilizadas para se driblar as restrições do dongle é o bypass da verificação do dispositivo, em que as instruções que executam o programa condicionalmente (à existência do dongle) são substituídas por um salto na rotina de inicialização. É, portanto, um dispositivo caro direcionado apenas a aplicações específicas, não sendo utilizado popularmente por desenvolvedores independentes ou que trabalhem no desenvolvimento de software sob demanda para o próprio empregador.

## Outros tipos

Dongle é um termo que se expandiu de proteção a software, para qualquer pequeno dispositivo que pode ser inserido em alguma porta de comunicação do computador (geralmente USB), independente de sua função. Normalmente são usados para agregar alguma função que não vem acompanhado ao computador. Isso inclui adição de memória, conexões Bluetooth® ou WiFi®, recursos de TV, adaptadores para outras interfaces ou outros dispositivos que não podem ser plugados diretamente, modems para banda larga móvel, etc.