Identità client diversa da URL / nome DNS nel certificato

4

Attualmente sto lavorando a un progetto in cui viene eseguita quasi tutta la comunicazione utilizzando HTTPS e ActiveMQ. I server e i client sono fisicamente in luoghi diversi, organizzazioni diverse e in diversi domini. I componenti del sistema comunicheranno utilizzando SSL a 2 vie (o meglio TLS w / Mutual Authentitcation? Non sono ancora molto bravo nel denominare le cose), che ci dà l'autenticazione, ma vorremmo usare un certo valore dal certificato per eseguire l'autorizzazione ( in particolare accesso alle code sul broker dei messaggi). A causa di questi e altri requisiti, vorremmo fornire un identificatore univoco simile a URI a ciascun componente del sistema. Abbiamo deciso che sarà simile a questo: "< ORGANIZZAZIONE >. Backend.processore" o "< ORGANIZZAZIONE > .dispositivo. < UUID >" ..

Ora, la mia domanda è: dovrei inserire questo identificatore nel campo DN / CN e inserire i nomi DNS (quindi gli indirizzi fisici) in SAN (o subjAltName) del certificato, o meglio dovrei inserirlo in SAN e DNS in entrambi Campo SAN e DN / CN?

In base a questa risposta , mettere il suddetto identificatore nel campo DN / CN è sicuro, poiché la nostra infrastruttura sarà omogenea e le connessioni da fonti esterne saranno fatte solo dai browser, su cui possiamo facilmente inserire dei requisiti, questo dovrebbe funzionare in modo impeccabile. Ma forse dovremmo generare due certificati per ciascun componente e usarne uno per presentare ai client di connessione (quindi DNSname sia in SAN che DN / CN) e l'altro per autorizzarci ai componenti a cui ci connettiamo?

    
posta Jędrzej Dudkiewicz 24.08.2016 - 09:16
fonte

1 risposta

1

we'd like to use some value from certificate to perform authorization

Il certificato viene utilizzato per l'autenticazione e una volta autenticato un utente è possibile eseguire l'autorizzazione.

Sembra un taglio di capelli, ma aiuta a migliorare il design.

Inoltre, secondo rfc3820 puoi utilizzare extKeyUsage per memorizzare alcuni dati di autorizzazione di base sul certificato stesso.

Ai fini dell'identificazione, l'uso di CN / SAN va bene, ma potresti voler utilizzare i sottodomini di un dominio che possiedi per loro.

But maybe we should generate two certificates for each component and use one for presenting to connecting clients (so DNSname in both SAN and DN/CN) and the other one to authorize ourselves to components that we connect to?

È possibile utilizzare lo stesso certificato per entrambi gli scopi. Se il server è compromesso, dovresti comunque revocare entrambe le chiavi.

    
risposta data 30.08.2016 - 13:49
fonte

Leggi altre domande sui tag