Avrebbe senso o fornire un vantaggio di sorta per rompere una chiave segreta HMAC-SHA256 in due componenti e nascondere un componente in un file di configurazione lato server applicabile e l'altro componente in (codice sorgente chiuso, lato server) codice compilato?
Vorrei scegliere che entrambe le metà siano abbastanza lunghe da contenere singolarmente entropia sufficiente a garantire che anche se l'altra metà della chiave è compromessa, l'altra metà della chiave rimane troppo lunga / complessa per essere forzata bruta. Ad esempio, ogni metà è di 32 byte crittografici-sudo-casuali che sono concatenati per formare la chiave segreta completa.
Capisco generalmente che non è consigliabile nascondere le chiavi segrete nel codice sorgente in quanto il codice sorgente è difficile da mantenere segreto, ma non riesco a vedere nulla, ma i vantaggi utilizzando questo. Se la chiave del codice sorgente viene rubata, la chiave di configurazione rimane nascosta e troppo lunga per essere forzata bruta. In alternativa, se un utente malintenzionato riesce a sottrarre la chiave di configurazione ma non conserva una copia della chiave del codice sorgente compilato, non riesce a falsificare le firme dei token JWT.
Quindi la mia domanda è: sto guardando oltre una sorta di difetto evidente in questo progetto o fornisce veramente almeno un po 'di sicurezza migliore? Inoltre, se non ci sono evidenti difetti, è ragionevole credere che ciò contribuisca davvero alla protezione della chiave segreta?