Безопасно ли передавать мой ключ ssl и файлы сертификатов в socket.io?
Я строю веб-чат с помощью socket.io
Для связи через порт 3000 через https мне нужно передать мой ключ ssl и файлы сертификата.
Socket.io является открытым исходным кодом, и я не знаю, насколько можно доверять ему доступ к таким защищенным файлам, как мои файлы сертификатов и ключей.
Вот код из socket.io, который выполняется на стороне сервера с помощью nodeJS:
var fs = require('fs');
var https = require('https');
var express = require('express');
var app = express();
var options = {
key: fs.readFileSync('../chat/file.pem'),
cert: fs.readFileSync('../chat/file.crt')
};
var server = https.createServer(options, app);
var io = require('socket.io')(server);
1 ответ
Это код, который вы запускаете в своей собственной системе. Если вы не доверяете этому, то не давайте ему доступа к секретам. Если вы доверяете этому, тогда продолжайте.
Если не платить за полный аудит безопасности кода, с этим мало что можно поделать. Следует учесть, что да, хотя ваш ключ TLS действительно является секретным, скорее всего, это не единственная личная информация, которую вы будете доверять этому коду. Вы доверяете правильному управлению всеми своими данными, а не только своим ключом?
Короче говоря, только вы можете определить, достаточно ли доверяете коду socket.io, чтобы предоставить ему доступ к секретной информации.
Если вы решите, что не доверяете socket.io своим секретам, то, возможно, вы могли бы использовать nginx в качестве обратного прокси-сервера перед socket.io, и nginx может обрабатывать завершение TLS. Конечно, тогда вам нужно задать вопрос: доверяете ли вы nginx?