Dati personalizzati nel certificato SSL

7

Sto cercando un modo per aggiungere dati personalizzati aggiuntivi in un certificato server SSL emesso da una CA standard. È possibile?

Voglio ottenere un certificato server SSL emesso da una CA standard, in modo che venga accettato dai browser standard. Tuttavia, ho una piccola quantità di dati extra che verranno utilizzati dalla mia applicazione privata che vorrei anche aver incluso nel certificato. Sto cercando un modo per includerlo nel certificato, in un modo che i browser standard ignoreranno e (in modo critico) che la CA non si sposterà.

C'è un campo o un luogo in cui posso archiviare dati arbitrari, senza che venga rimosso dalle CA pubbliche?

Forse otherName parte di subjectAltName : sarà conservato da qualsiasi CA standard? Dovrei guardare un'estensione x509 personalizzata?

Il requisito fondamentale è che questo non venga rimosso o modificato dalla CA. Ho bisogno che esista almeno una CA affidabile dai principali browser e che non toglierà questi dati personalizzati. So che alcuni campi della richiesta di firma del certificato (CSR) sono filtrati o eliminati dalle CA, ma non sono stato in grado di trovare la documentazione su quali (se ce ne sono) consentire dati arbitrari e saranno conservati dal CSR nel certificato finale.

Questa domanda è correlata, ma non è la stessa: non ha il requisito che il certificato sia firmato da una CA che è considerata affidabile dai browser moderni. Inoltre, ho trovato molte informazioni su come aggiungere estensioni personalizzate a un CSR x509, ma non è quello che sto cercando; questo non mi dice quale estensione inserire i dati in (quale estensione non verrà rimossa dalle principali CA). Conosco come creare un CSR contenente dati personalizzati , ma non conosco quali campi del CSR verrà copiata non modificata nel certificato del server finale. Inoltre, non sto cercando una soluzione che implichi l'esecuzione della mia CA: voglio che il certificato del server sia accettato dai browser standard. Questa domanda ha anche un aspetto simile, ma non lo faccio t vedere una risposta chiara lì.

    
posta D.W. 19.06.2015 - 04:21
fonte

2 risposte

6

Bene, vorrei contattare le CA per chiedere se lo avrebbero fatto. Potrebbero farlo, e forse sono disposti a farlo se paghi abbastanza. Qualsiasi campo non critico che i broswers non capiscono verrà ignorato e potrebbe essere aggiunto dalla CA. La domanda è se lo farebbero e solo loro potranno rispondere.

Alcuni CPS menzionano anche la possibilità di aggiungere estensioni non critiche (e queste possono essere private) e NON aggiungere, ovviamente, estensioni private critiche ( link - 7.1.2). È solo questione di volerlo fare.

Issuer CAs shall use certificate extensions in accordance with applicable industry standards, including RFC 3280/5280. Issuer CAs shall not issue certificates with a critical private extension.

Ma probabilmente il modo giusto per fare ciò che vuoi è usare i certificati di attributo. Potresti avere un emittente di certificati di attributo che controlli ed emetti AC al tuo cert SSL dandogli gli attributi extra di cui hai bisogno e che solo tu capisci. TLS ha il supporto per fornire tali AC al proprio client o è possibile inviare questi ultimi utilizzando il tunnel SSL già creato e quelli potrebbero essere interpretati dal client secondo necessità.

    
risposta data 07.01.2016 - 13:25
fonte
2

Hai chiesto:

Maybe the otherName part of subjectAltName?

No, non lì. Il campo Subject Alt Name (SAN) viene letto dai browser e può essere utilizzato per eseguire attacchi Man in the Middle (MITM), pertanto le CA non dovrebbero consentire dati personalizzati (e non verificabili pubblicamente) nei campi SAN.

Indicherei RFC 5280 che definisce lo standard del certificato X.509, in particolare Sezione 4.2 Estensioni dei certificati . Non vedo alcuna estensione standard che consenta il testo generale, ma il seguente esperto è interessante (sottolineatura mia):

The X.509 v3 certificate format also allows communities to define private extensions to carry information unique to those communities. Each extension in a certificate is designated as either critical or non-critical. A certificate-using system MUST reject the certificate if it encounters a critical extension it does not recognize or a critical extension that contains information that it cannot process. A non-critical extension MAY be ignored if it is not recognized, but MUST be processed if it is recognized. The following sections present recommended extensions used within Internet certificates and standard locations for information. Communities may elect to use additional extensions

Hai detto:

I know how to create a CSR containing custom data, but I don't know which fields of the CSR will get copied unmodified into the final server cert.

Nessuno su questo sito può rispondere per te. Secondo RFC 4210 , una CA può modificare a piacimento le estensioni non critiche (e restituire il certificato con grantedWithMods PKIStatus). Così come detto nei commenti, questo è qualcosa che dovrai negoziare con una CA specifica.

    
risposta data 08.01.2016 - 20:43
fonte

Leggi altre domande sui tag