Назад | Перейти на главную страницу

Хранилище открытого ключа только для чтения

Мы используем GnuPG для шифрования данных, которые загружаем в центральное хранилище.

Открытый ключ хранится на веб-сервере, и скрипт шифрования повторно загружает его, если он был изменен. Это было сделано для того, чтобы легко обновлять открытый ключ время от времени на всех серверах.

После некоторых размышлений о безопасности у меня возникла паранойя, что кто-то может (маловероятно, но потенциально) взломать веб-сервер и заменить открытый ключ своим собственным.

Это дало бы 2 очень неприятных эффекта:

1) Хакер может прочитать данные, если ему удастся также проникнуть в центральное хранилище.

2) Даже если он этого не сделает - мы не сможем прочитать данные, так как закрытый ключ был изменен, и все это можно считать потерянным!

Может ли кто-нибудь посоветовать, как предотвратить эту угрозу, или, возможно, предложить более надежный, но все же удобный подход к обновлению ключей?

Спасибо!

Используйте выталкивающую модель.

push имеет несколько преимуществ:

  • Взять нагрузку с центрального сервера (в зависимости от того, сколько клиентов одновременно могут попасть на сервер)
  • Нет ключа на центральном сервере - вы можете хранить ключ в особо защищенном ящике, к которому нельзя добраться из Интернета
  • Вы уверены, что ваша проблема заключается в сервере распространения ключей. Это открытый ключ. Обратите внимание общественный часть ключевой пары. Кроме того: распространение этого ключа сделает его доступным на любом из других серверов. Почему сервер распространения гораздо чаще подвергается атаке, чем любой другой сервер?

Затем снова:

Если я правильно понимаю, у вас возникает паранойя по поводу того, что кто-то доступ к публичному ключу?

Это открытый ключ, открытый ключ не дает потенциальному злоумышленнику возможности читать данные после того, как он зашифрован и отправлен на сервер (при условии отсутствия ошибок в криптографическом программном обеспечении).

Вектор атаки может заключаться в том, что кто-то взламывает один из серверов, отправляющих данные в центральное хранилище, и просто делает DoS-атаки, вводя огромное количество бесполезных данных, тем самым записывая на диск, пока он не заполнится.