Мы используем GnuPG для шифрования данных, которые загружаем в центральное хранилище.
Открытый ключ хранится на веб-сервере, и скрипт шифрования повторно загружает его, если он был изменен. Это было сделано для того, чтобы легко обновлять открытый ключ время от времени на всех серверах.
После некоторых размышлений о безопасности у меня возникла паранойя, что кто-то может (маловероятно, но потенциально) взломать веб-сервер и заменить открытый ключ своим собственным.
Это дало бы 2 очень неприятных эффекта:
1) Хакер может прочитать данные, если ему удастся также проникнуть в центральное хранилище.
2) Даже если он этого не сделает - мы не сможем прочитать данные, так как закрытый ключ был изменен, и все это можно считать потерянным!
Может ли кто-нибудь посоветовать, как предотвратить эту угрозу, или, возможно, предложить более надежный, но все же удобный подход к обновлению ключей?
Спасибо!
Используйте выталкивающую модель.
push имеет несколько преимуществ:
Затем снова:
Если я правильно понимаю, у вас возникает паранойя по поводу того, что кто-то доступ к публичному ключу?
Это открытый ключ, открытый ключ не дает потенциальному злоумышленнику возможности читать данные после того, как он зашифрован и отправлен на сервер (при условии отсутствия ошибок в криптографическом программном обеспечении).
Вектор атаки может заключаться в том, что кто-то взламывает один из серверов, отправляющих данные в центральное хранилище, и просто делает DoS-атаки, вводя огромное количество бесполезных данных, тем самым записывая на диск, пока он не заполнится.