I "Modelli di certificato" sono utilizzati solo come "Modello" o convalidano una richiesta di certificato?

0

Sto cercando di capire come i modelli di certificato Microsoft interagiscono con una richiesta di certificato e posso solo supporre che assumano uno dei due / tre moduli:

  1. Semplicemente aiutano il client a creare una richiesta, EKU e altre impostazioni per l'invio di PKCS10 al server.

  2. OPPURE vengono utilizzati per convalidare, controllare e limitare ciò che esattamente un utente può fare quando carica una richiesta PKCS10. Un po 'come un firewall a livello di applicazione

  3. Una combinazione di quanto sopra che utilizza i dati nel certificato o l'euristica per emettere o rifiutare automaticamente un certificato.

Quello che sto cercando di impedire

Voglio impedire a un utente di discostarsi dai modelli approvati che ho offerto, in tutti i modi ... in particolare, desidero impedire una modifica di:

  • Data di scadenza
  • EKU
  • Vincoli di base
  • Sezioni critiche / non critiche
  • Utilizzo chiave
  • Etc.

... se incollano la richiesta di certificato manuale nella pagina di registrazione (che non utilizza un modello)

Ricerca

Sto guardando i documenti per Certenroll e vediamo che esiste un metodo di iscrizione che utilizza un modello e un invia metodo che non lo è.

Presumo che il metodo Submit () da CERTCLILib.ICertRequest3 debba essere eseguito in un account di servizio controllato poiché qualsiasi cosa può essere inviata al server, ma le cose non sono troppo chiare dal punto di vista della documentazione.

Poiché sembra esserci una certa flessibilità nell'uso dei modelli a livello di programmazione, non sono sicuro di come descrivere i vantaggi o l'utilità di un modello di server.

Infine, è possibile che "Application Firewall" per le richieste di certificati esista sotto forma di codice personalizzato o Microsoft Forefront Identity Manager o qualche altro prodotto.

L'assistenza è apprezzata.

    
posta random65537 08.07.2014 - 01:18
fonte

1 risposta

1

In una configurazione di Active Directory, i "modelli di certificato" devono essere utilizzati dai client e dalla stessa CA ("Servizi certificati AD").

Per la CA , i modelli descrivono come devono essere rilasciati i certificati, tra cui:

  • I contenuti del certificato, comprese tutte le estensioni, il periodo di validità e così via.
  • Le condizioni di rilascio, ad es. se la richiesta deve essere firmata da qualche agente autorizzato RA o meno.
  • I diritti di accesso al modello.

Ci sono molte varianti, perché i modelli sono stati arricchiti lungo le versioni di Windows (quindi ci sono i modelli "Windows 2000", "Windows 2003" e "Windows 2008"), e la stessa CA può essere "autonoma" o " impresa "- in quest'ultimo caso, la CA deve automaticamente alimentare gli account AD e ACL per sapere se una determinata richiesta di certificato deve essere onorato, mentre in una CA autonoma la maggior parte delle richieste sarà soggetta a un intervento manuale da parte il responsabile della CA (che farà clic su "emettere" o "negare").

L'albero AD contiene tutti i modelli conosciuti (puoi crearne uno tuo). La stessa CA (il servizio CS AD) "pubblicherà" alcuni di questi modelli: questo è l'elenco dei modelli che il servizio effettivamente utilizzerà.

In ogni caso, il contenuto delle richieste di certificati da parte dei clienti sarà per lo più ignorato (tranne, ovviamente, la chiave pubblica); i modelli decidono cosa deve fare i certificati, non la richiesta. Ci sono delle eccezioni; ad esempio, il modello può specificare che il nome del soggetto deve essere preso dalla richiesta, nel qual caso il SubjectDN e l'estensione del nome alt soggetto sarà importato "così com'è" dalla richiesta (al momento della configurazione , potresti ricevere un avvertimento dalla GUI che tale impostazione in un "PKI aziendale" può essere pericolosa perché chiunque sia autorizzato, a livello di AD, a richiedere tale certificato, può quindi inserire un nome arbitrario lì, quindi tu " d meglio ricontrolla i tuoi diritti di accesso).

Per il cliente , i modelli sono di consulenza: documentano il tipo di certificato che i clienti possono richiedere e cosa dovrebbero inserire nella richiesta. Ad esempio, il modello potrebbe affermare che i client devono utilizzare un CSP specifico (provider di servizi di crittografia) per generare la coppia di chiavi; dal momento che la CA non può effettivamente verificare che il CSP specificato è stato utilizzato, questo è solo a beneficio dei clienti. Alcune altre impostazioni sono utilizzate sia dal client che dal server (ad esempio la dimensione della chiave).

Il modello può essere utilizzato solo dai client che hanno accesso al server AD, ad esempio all'interno del dominio. I clienti esterni al dominio devono costruire le loro richieste in qualsiasi modo ritengano opportuno, sulla base di informazioni trasmesse fuori banda. Un metodo usuale, nel mondo Windows, per un client out-of-domain per generare una richiesta di certificato, consiste nell'utilizzare certreq.exe strumento da riga di comando con un" file di criteri "e l'opzione -new .

CertEnroll è un'API programmatica da utilizzare sul lato client; incapsula diverse funzionalità:

  • CertEnroll può generare una nuova richiesta di certificato (inclusa la generazione di coppie di chiavi). Può farlo alimentando i parametri di richiesta forniti a livello di codice (ad esempio, tipo e dimensione della chiave). Può anche accedere automaticamente al server AD per ottenere le informazioni da un modello pubblicato.
  • CertEnroll può parlare con la CA per inviare la richiesta.
  • CertEnroll salva localmente le richieste (in un archivio certificati dedicato) in modo che, quando il certificato viene ricevuto e importato, il collegamento con la chiave privata (che non ha mai lasciato il computer client) possa essere ripristinato.

Per riassumere:

  • I modelli di certificato sono il metodo con cui è possibile configurare ciò che la CA inserisce nei certificati emessi e in quali condizioni può emettere i certificati.
  • I client devono inviare richieste che "funzionano" con ciò che la CA si aspetta (ad esempio, tipo e dimensione della chiave). I clienti possono utilizzare i modelli per ottenere tali informazioni, se hanno effettivamente accesso ai modelli (ad esempio, i client si trovano nel dominio). L'utilizzo dei modelli da parte dei clienti non è obbligatorio.
  • Tuttavia, quando un client richiede un certificato, la CA deve "sapere" in qualche modo a quale modello si riferisce la richiesta. Il nome del modello può essere incluso all'interno della richiesta (come estensione specifica di Microsoft) o fornito insieme alla richiesta; CertEnroll e certreq.exe sanno come farlo.
risposta data 08.07.2014 - 16:46
fonte