È sicuro crittografare e salvare il segreto dell'API di terze parti degli utenti nel database?

3

Voglio archiviare l'API di terze parti segreta (come AWS) dei miei utenti nel database. La perdita di cui può portare a una potenziale perdita per i miei utenti. Dovrebbe essere mantenuto riservato.

Quindi, come posso proteggere i loro dati sulla piattaforma NodeJS? Sto pensando di crittografare e memorizzare il negozio della chiave segreta in modo che non sia direttamente visibile agli intrusi.

Qualche suggerimento su quanto più sicurezza può essere mantenuta?

var crypto = require('crypto');
var assert = require('assert');

var algorithm = 'aes256'; // or any other algorithm supported by OpenSSL
var key = 'password';
var text = 'I love kittens';

var cipher = crypto.createCipher(algorithm, key);  
var encrypted = cipher.update(text, 'utf8', 'hex') + cipher.final('hex');

var decipher = crypto.createDecipher(algorithm, key);
var decrypted = decipher.update(encrypted, 'hex', 'utf8') + 
decipher.final('utf8');

console.log(encrypted);
console.log(decrypted);

assert.equal(decrypted, text);
    
posta Sowmay Jain 07.06.2017 - 16:38
fonte

1 risposta

2

È sempre meglio se puoi usare un sistema che non richiede la memorizzazione di segreti reversibili. Ma in alcuni casi è richiesto.

Invece di fare affidamento su te stesso per ottenere la costruzione crittografica corretta, è meglio affidarsi a una libreria di terze parti controllata, e questa è precisamente la nicchia NaCl è stato progettato per il riempimento. Ci sono molte opzioni per usarlo, in una forma o nell'altra, in JavaScript:

L'API esatta sarà diversa a seconda della libreria scelta, ma in generale ciò che stai cercando si chiama scatola segreta .

Un approccio alternativo è quello di evitare di gestire lo storage interamente esternalizzando anche quello. Esistono numerosi prodotti per la memorizzazione dei segreti, tra cui dispositivi hardware . Se stai utilizzando un cloud pubblico, probabilmente ha un servizio ( qui è di Amazon). E Hashicorp's Vault può essere eseguito ovunque e ti dà un sacco di controllo.

    
risposta data 07.06.2017 - 17:38
fonte

Leggi altre domande sui tag