Así que hay un paquete Node.js openpgp que está disponible para firmar documentos con GPG, pero requiere público / llave secreta. Todos sabemos que poner la clave en el archivo es peligroso y no se recomienda en producción. Por lo general, usaremos la variable envrionment ( process.env
), pero ¿qué hay de usar el nodo js incorporado fs
? ¿Es seguro?
Entonces, digamos que obtuvimos una clave pública / privada en public.key
y private.key
, entonces ¿es seguro (para producción) recuperar la clave con el siguiente script?
var express = require('express');
var app = express();
var fs = require('fs');
function PublicKey() {
var publickey;
fs.readFile('./public.key', (err, data) => {
(err) => {
throw err;
}
publickey = ddata;
})
return publickey;
}
function PrivateKey() {
var privatekey;
fs.readFile('./private.key', (err, data) => {
(err) => {
throw err;
}
privatekey = ddata;
})
return privatekey;
}
app.get('/' ,(req, res) => {
...
var gpgkey = {
public: PublicKey(),
private: PrivateKey()
}
//only save to local variable when needed, which will be cleared when the function finished
...
})
Por lo tanto, en mi código, he usado la función para devolver la clave y almacenar en la variable local. Mi opinión es que el almacenamiento de claves en una variable local en lugar de una variable global se debe a que la variable local se borrará cuando finalice la función.
Entonces, ¿mi código es seguro? ¿Está guardando claves en la variable local paso adicional? ¿Cuál es más recomendable, usando process.env
o fs
?