Conseguenze sulla sicurezza della disabilitazione di CURLOPT_SSL_VERIFYHOST (libcurl / openssl)

Quali sono le conseguenze sulla sicurezza di Abilitazione di CURLOPT_SSL_VERIFYPEER e disabilitazione di CURLOPT_SSL_VERIFYHOST ?

  • CURLOPT_SSL_VERIFYPEER verifica che il certificato remoto sia valido, ovvero che ritieni che sia stato emesso da una CA di cui ti fidi e che sia autentica.

  • CURLOPT_SSL_VERIFYHOST controlla che il certificato sia stato rilasciato all’entity framework con cui si desidera parlare.

Per confrontarlo con uno scenario reale, VERIFYPEER è come verificare che la forma di ID sia quella che riconosci (ad esempio il passaporto di un paese di cui ti fidi, la tessera del personale di un’azienda che conosci, …). VERIFYHOST è come verificare il nome effettivo sulla scheda corrispondente a chi si desidera parlare.

Se non si utilizza VERIFYHOST (il valore corretto è 2, non 1, btw), si disabilita la verifica del nome host e si apre la porta agli attacchi MITM: chiunque abbia una forma di ID fidata può impersonare qualcuno all’interno del set di ID fiducia, ad esempio chiunque abbia un passaporto valido potrebbe fingere di essere qualcun altro con un passaporto valido.