Anche se puoi trovare tutto ciò che puoi immaginare nelle estensioni ad hoc in un certificato, raramente è una buona idea. In particolare perché il certificato è firmato (dall'autorità di certificazione che lo ha emesso), quindi qualunque cosa tu abbia inserito nel certificato deve prima passare attraverso la CA.
I certificati riguardano l'autenticazione e questo non funziona bene con l'autorizzazione . I certificati sono entità longeve che non possono essere alterate per un capriccio; l'unico modo per "modificare" un certificato è revocarlo e emetterne uno nuovo; non solo questo deve essere fatto dalla CA, ma è un processo intrinsecamente asincrono: occorrono almeno diverse ore, più spesso diversi giorni, per propagare le informazioni di revoca con qualsiasi tipo di affidabilità (e alcuni client non verificano affatto la revoca. ..). Per qualsiasi cosa relativa alle autorizzazioni , vuoi un sistema che reagisca rapidamente, perché quando vuoi rimuovere un'autorizzazione di accesso, devi rimuoverlo ora , non prossimo settimana .
Se, nel tuo protocollo, il server ha qualcosa da dire al client, allora sembra più appropriato inviare i dati nel tunnel SSL, dopo l'handshake, come parte del protocollo interno (nello stesso modo in cui HTTPS è HTTP all'interno di un tunnel SSL).