gestione avanzata certification authority variabili
Inviato: lun 23 ago 2021, 13:39
E' talmente complesso l'argomento che non sapevo nemmeno che titolo mettere.
In pratica.
Una Certification Authority ha l'abitudine di rigenerare periodicamente il proprio certificato, mantenendo common name e chiave privata, cambiando data di scadenza e attributi del certificato (nel caso specifico i constraints, cosa voluta dalla rootca).
La CA genera certificati di firma
ora diciamo che nel tempo i certificati della ca siano CA1.pem CA2.pem CA3.pem, e diciamo che nel tempo le ca hanno firmato un po' di chiavi con questi common name:
CA1 -> A B
CA2 -> C D
CA3 -> E F
tutti di durata triennale.
L'authority avverte tutti gli attori quando cambia il certificato della CA.
diciamo che io sono l'owner del certificato D ed ho anche una applicazione con cui validare i documenti firmati da tutti.
prima domanda: quando firmo un documento nella catena di certificazione ci devo mettere la CA2 o la CA3? sia lato tecnico per validazione (openssl me la valida con qualunque delle 3; le applicazioni sono eterogenee ma credo tutte java based ma non ci posso fare affidamento, non ne ho il controllo se non della mia) sia lato legale.
seconda domanda: se nel keystore c'è la rootCA e la sola CA3, può validare documenti firmati da B, quindi generati da CA1, e che per qualche motivo mette nella catena di certificazione CA2?
per qualche motivo la mia applicazione ha difficoltà a selezionare la corretta CA da mettere nella catena di certificazione se metto tutte e 3 le CA nel keystore (p.s. non intendiamo keystore come jks di java ma come entità astratta a causa della natura dell'applicazione, quindi riflessione valide a livello di protocollo di certificazione/rfc)
L'authority mi ha fatto un richiamo perchè firmavo mettendo ancora CA2 nella catena, visto che con quella era stato generato il certificato. Ad oggi ho lasciato nello store solo CA3, ma ad oggi non ho modo di verificare se gli altri attori (numero ristretto) mettono la CA3 o una delle precedenti nella catena di certificazione. Immagino la CA3 in quanto se hanno fatto richiamo a me lo avranno fatto anche agli altri se mettevano CA1 o CA2. Ma quello che è certo è che quando viene generata una CA4 per un periodo alcuni firmeranno con CA3 in catena alcuni con CA4.
La mia impressione è che la rootCA voglia mettere CA1 e CA2 in revocation list, anche se A,B,C,D sono in corso di validità.
Io noto un po' di bug in questa gestione:
1) se nella catena ci metto D+CA3 sicuramente c'è l'incongruenza che l'inizio di validità del certificato di D è precedente all'inizio di validità della CA; non escludo altre incongruenze
2) se nella catena ci metto D+CA2 potrebbe venire l'incongruenza che CA2 potrebbe essere revocata.
A questo punto quale è la strada corretta?
Scusate se è un po' contorto, ma lo è l'argomento
grazie
In pratica.
Una Certification Authority ha l'abitudine di rigenerare periodicamente il proprio certificato, mantenendo common name e chiave privata, cambiando data di scadenza e attributi del certificato (nel caso specifico i constraints, cosa voluta dalla rootca).
La CA genera certificati di firma
ora diciamo che nel tempo i certificati della ca siano CA1.pem CA2.pem CA3.pem, e diciamo che nel tempo le ca hanno firmato un po' di chiavi con questi common name:
CA1 -> A B
CA2 -> C D
CA3 -> E F
tutti di durata triennale.
L'authority avverte tutti gli attori quando cambia il certificato della CA.
diciamo che io sono l'owner del certificato D ed ho anche una applicazione con cui validare i documenti firmati da tutti.
prima domanda: quando firmo un documento nella catena di certificazione ci devo mettere la CA2 o la CA3? sia lato tecnico per validazione (openssl me la valida con qualunque delle 3; le applicazioni sono eterogenee ma credo tutte java based ma non ci posso fare affidamento, non ne ho il controllo se non della mia) sia lato legale.
seconda domanda: se nel keystore c'è la rootCA e la sola CA3, può validare documenti firmati da B, quindi generati da CA1, e che per qualche motivo mette nella catena di certificazione CA2?
per qualche motivo la mia applicazione ha difficoltà a selezionare la corretta CA da mettere nella catena di certificazione se metto tutte e 3 le CA nel keystore (p.s. non intendiamo keystore come jks di java ma come entità astratta a causa della natura dell'applicazione, quindi riflessione valide a livello di protocollo di certificazione/rfc)
L'authority mi ha fatto un richiamo perchè firmavo mettendo ancora CA2 nella catena, visto che con quella era stato generato il certificato. Ad oggi ho lasciato nello store solo CA3, ma ad oggi non ho modo di verificare se gli altri attori (numero ristretto) mettono la CA3 o una delle precedenti nella catena di certificazione. Immagino la CA3 in quanto se hanno fatto richiamo a me lo avranno fatto anche agli altri se mettevano CA1 o CA2. Ma quello che è certo è che quando viene generata una CA4 per un periodo alcuni firmeranno con CA3 in catena alcuni con CA4.
La mia impressione è che la rootCA voglia mettere CA1 e CA2 in revocation list, anche se A,B,C,D sono in corso di validità.
Io noto un po' di bug in questa gestione:
1) se nella catena ci metto D+CA3 sicuramente c'è l'incongruenza che l'inizio di validità del certificato di D è precedente all'inizio di validità della CA; non escludo altre incongruenze
2) se nella catena ci metto D+CA2 potrebbe venire l'incongruenza che CA2 potrebbe essere revocata.
A questo punto quale è la strada corretta?
Scusate se è un po' contorto, ma lo è l'argomento
grazie