Domande sulle impronte digitali dei certificati autofirmati e sull'interazione client-server tramite SSL

1

Ho alcune domande su come viene eseguita la funzione di impronta digitale.  Prima di tutto, ho una certa conoscenza della crittografia. Tuttavia, sembra non essere abbastanza buono da comprendere centinaia di pagine con informazioni vaghe o incomplete.

Domande:

  1. Sto cercando di sapere come confrontare l'impronta digitale visualizzata quando Firefox avverte di un certificato autofirmato, mostrando l'impronta digitale in MD5 e SHA1.

    Lo sto facendo perché, nonostante quanto possano sembrare belli e corti, le impronte digitali non sono davvero utili in tutto se si ha il certificato autofirmato (tutta la stringa) e non l'impronta digitale. Quindi, come puoi sapere che tale impronta digitale mostrata da Firefox è quella che corrisponde alla vera impronta digitale del tuo certificato autofirmato?

    Per quanto ho capito, il file .crt ha il certificato (mostrato in base64).

    Se, ad esempio, I Export the Equifax Secure CA da Certificate Manager di Firefox, ed eseguo questo comando:

    $ openssl dgst -sha1 BuiltinObjectToken-EquifaxSecureCA.crt 
    SHA1(BuiltinObjectToken-EquifaxSecureCA.crt)=**e05110ddb9bcb9e47818ea6e955cc6ba78ec6627**
    
    $ openssl dgst -md5 BuiltinObjectToken-EquifaxSecureCA.crt     
    MD5(BuiltinObjectToken-EquifaxSecureCA.crt)=**54b6604a82d90ebdb9a8a3c544bb77f1**
    

    ... vengono visualizzate le due impronte digitali (SHA1 e MD5).

    Tuttavia, quando dallo stesso cliente di Firefox seleziono tale certificato e clicco su "Visualizza", ciò che il Gestore certificati di Firefox mostra le altre due impronte digitali:

    sha1: D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A
    
    md5: 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4
    

    Perchésonocosìdiversi?

  2. Forsequestadomandacispingeràadaprireunaltropost.Intalcaso,aprivounnuovopostconcosì.

    Sehocapitobene,ilcertificatoèlachiavepubblicafirmatadaqualcuno(inquestocasodamestesso,einaltricasidesideratidaun'autoritàdicertificazione)eaggiungendoaltridatifunzionaliepertinenti(comenomedidominio,email-indirizzo,ecc.).

    Ilcertificatovieneinviatodalserveralclient(eccettoicertificatiautofirmatipreinstallatisulsitodelcliente,principalmentedaunasortadiautoritàdicertificazionedailivellipiùaltidellagerarchia).

    Quindi,lamiadomanda.L'improntadigitalevienemostrataquandouncertificatovienescaricatodallatoclientdalserver:questaimprontadigitaleèildigestdellachiavepubblicaoildigestdelcertificatostesso?

  3. LaconfigurazionedialcuniserverperconsentireSecureConnexions(quellichelavoranosuSSL:https,ftps,smtps,ecc...),includealcunedirettiveallaconfigurazioneSSLpermostrarealserverqualifiledeveutilizzare.

    Adesempio,ilserverHTTPSApache2potrebbeincluderequestetredirettive:

    SSLCertificateFile-digitalcertificate(eg.your_domain_name.crt).SSLCertificateKeyFile-privatekey(eg.your_domain_name.key).SSLCertificateChainFile-intermediate(eg.DigiCertCA.crt),[ORSSLCACertificateFile]

    Perconoscerel'improntadigitalecheFirefoxmostreràquandol'utenteaccedeaquestoserver,suqualifiledevoapplicareicomandimostratialladomanda1eottenereleimprontedigitalida?alfilespecificatoinSSLCertificateFileoinunaltrofilechehasololachiavepubblicaenonèinclusoqui?

  4. Frequentandoladomandadicuisopra.Sonol'amministratorediquelserverHTTPSconuncertificatoautofirmatoevoglioinstallaresulmiobrowserWebilcertificato,evitandocosìalmiobrowserdiscaricarlo(e,asuavolta,evitandoqualsiasiattaccoMain-In-The-Middle-qualcunochemidàunaltrocertificatoautofirmato),qualefiledevo"importare" nel mio browser web? È l'ultimo file generato dal server o è direttamente il file specificato nella direttiva SSLCertificateFile?

    NOTA: ti sto chiedendo questa ultima domanda, perché nella direttiva SSLCertificateFile , ad esempio, puoi specificare un file .pem , invece di un file .crt . E il file .pem, come ho verificato nel mio server Web, potrebbe contenere anche la chiave privata (qualcosa da non inviare al browser Web). Ciò che, in effetti, ci mostra che applicando l'impronta digitale al file .pem , il risultato sarebbe diverso da quello mostrato dal browser Web quando avvisa di un certificato autofirmato.

Grazie a tutti voi !! e mi dispiace per la lunga domanda, ma ho trovato molte pagine che parlano delle stesse informazioni, infinite volte e nessuno ha nulla a riguardo.

Ritengo che questa sia una cosa strana, dal momento che migliaia di amministratori utilizzano strumenti crittografici e c'è un punto importante di cui non discutono: le impronte digitali. Al momento, credo che quando vedono l'avviso di un certificato autofirmato, accettano semplicemente l'eccezione senza controllare nulla. E penso di sì, perché non ci sono informazioni che parlano di questo specifico argomento su Internet (credo - importante, se non di più)

    
posta rellampec 19.07.2014 - 06:35
fonte

1 risposta

4
  1. L'impronta digitale di un certificato il riassunto del certificato binario, cioè codificato DER / ASN.1. Utilizzi probabilmente il modulo codificato PEM e poichè openssl dgst utilizza solo i dati che hai inserito sarà diverso. Per ottenere l'impronta digitale corretta:

    openssl x509 -in cert.crt -outform der | openssl dgst -sha1
    
  2. L'impronta digitale del certificato viene mostrata nel browser per la verifica. L'impronta digitale della chiave pubblica viene utilizzata in altri luoghi, ad esempio Chrome lo utilizza per il blocco dei certificati.

  3. L'impronta digitale mostrata nel browser è quella per SSLCertificateFile, ma ancora: devi convertire questo file in DER prima di calcolare l'impronta digitale.

  4. Il browser deve conoscere solo il certificato per la verifica, non la chiave privata. .pem viene in genere utilizzato per i dati codificati PEM, che non dice nulla su cosa all'interno di questi dati (potrebbero essere più certificati e chiavi pubbliche), mentre .der viene utilizzato per i dati codificati DER. .crt invece è usato per i certificati ma non dice nulla sul formato, ma principalmente viene usato PEM. Tutti i nomi dei file sono solo convenzioni, alla fine il server non si preoccupa dell'estensione e puoi usare qualsiasi file tu voglia.

risposta data 19.07.2014 - 08:02
fonte

Leggi altre domande sui tag