Protocollo Human Interface Device

Il protocollo Human Interface Device (protocollo HID) è un protocollo USB per un'ampia categoria di dispositivi di input dell'utente.

I dispositivi nella categoria includono ma non sono limitati a tastiere, mouse, tavolette con penna, webcam, auricolari, controller di gioco e di simulazione.

Il protocollo HID ha una velocità di polling predefinita di 125 Hz rispetto ai 2 Hz di PS / 100. Questa velocità offre all'USB un vantaggio in termini di reattività con una latenza inferiore. Sia USB che PS / 2 forniscono velocità più elevate, ma laddove PS / 2 supera i 200 Hz, USB arriva fino a 1000 Hz, con una latenza minuscola di 1 ms. Questa bassa latenza fornisce un eccellente tempo di risposta per tastiere, mouse, cuffie VR, controller di gioco e di simulazione.

Con le tastiere, il protocollo HID viene utilizzato sia per abilitare la funzionalità pre-sistema operativo con una modalità di avvio rollover a 6 tasti per BIOS (sistema di input / output di base) sia per sistemi operativi che non supportano USB. Questa modalità ha l'avvertenza di interrompere il sistema ogni volta che viene eseguito il polling del dispositivo e viene eseguito il polling indipendentemente dal fatto che vi sia o meno un cambiamento nell'input. Una modalità del sistema operativo separata che abilita ulteriori funzionalità non presenta questo problema. Molti dispositivi possono funzionare con i driver di base inclusi nei sistemi operativi fino a quando non vengono installati i driver personalizzati, semplificando l'installazione dell'hardware.

La capacità del protocollo HID di annunciare le sue capacità offre facilità di connessione dei dispositivi e il fatto che il sistema operativo trovi i driver rende USB un'esperienza molto plug and play. Allo stesso tempo, la specifica non offre alcun mezzo per verificare che i dispositivi siano ciò che affermano di essere. Questa mancanza di verifica può essere una vulnerabilità che porta al mascheramento dei dispositivi. BadUSB è un esempio di malware che sfrutta questa vulnerabilità.