Recentemente mi è stata posta una domanda a un colloquio di lavoro su HTTPS e ho ammesso che la mia conoscenza era confusa nell'area, ma ho comunque dato una risposta, la domanda era: come qualcuno sa che quando si connettono a un server la persona o il servizio dice chi dicono di essere? come puoi fidarti di loro? Ho risposto che ti verrà fornito un certificato dalla CA e questo contiene informazioni sul fatto che la connessione è legittima, questo non è apparentemente soddisfacente in quanto hanno spinto per ulteriori domande su come sai che sono chi dicono di essere da questo certificato? Nella mia testa pensavo di ricevere un certificato da un CA sufficiente.
La risposta che stavano cercando era la firma digitale. Di cui ho completamente dimenticato. Tuttavia, sentendomi come un completo dopo ho deciso di mettere un po 'di buchi nelle mie conoscenze e ho fatto un po' di apprendimento.
Quindi per ricapitolare (per favore sentitevi liberi di dirmi se mi manca qualcosa) la firma digitale viene creata tagliando alcuni dati sul certificato e quindi crittografandolo usando la chiave privata CA, che la persona interessata ad autenticare la validità di detto certificato genererà un hash sugli stessi dati sul certificato utilizzato nella generazione della firma, quindi utilizzerà la chiave pubblica dei certificati per decrittografare la firma digitale ottenendo l'hash e quindi confrontarli.
Ora, per Im un po 'perplesso su come si fa a dire che un client sa quale parte del certificato hash per poi confrontarlo con l'hash recuperato dall'utilizzo della chiave pubblica dei certificati sulla firma digitale. X.509 ha uno standard o ha appena cancellato tutto nel certificato? o comunicano in qualche modo come generano l'hash?