Как кешировать пароль SSL сертификата клиента в клиентском приложении, используя libcurl - PullRequest
2 голосов
/ 04 декабря 2009

У нас есть приложение (multi-os), которое связывается с сервером https с помощью libcurl и использует сертификацию клиента SSL. Когда сертификация клиента защищена паролем, приложение должно попросить пользователя ввести пароль. Приложение отправляет сотни различных запросов https на сервер, поэтому мы не можем просить пользователя вводить пароль каждый раз, когда будет создано новое соединение. Теперь мы просто просим пользователя ввести пароль один раз при запуске приложения, а затем установить пароль для curllib через опцию «CURLOPT_KEYPASSWD» Но я беспокоюсь о том, что злоумышленник может легко взломать запущенный процесс и прочитать пароль сертификации клиента. Можно ли как-нибудь кэшировать пароль сертификации клиента, а также предотвратить его легкое чтение из памяти?

1 Ответ

3 голосов
/ 05 декабря 2009

Вам не стоит так сильно беспокоиться об этом в реальной жизни. Если вы беспокоитесь о таких атаках, возможно, обратите внимание на аппаратные ключи и сертификаты в смарт-картах.

Некоторые предложения по борьбе с атаками подкачки и холодной загрузки:

  • Блокировка памяти, в которой хранится пароль, не допускайте его замены (mlock + mprotect и в posix, Windows также имеет аналогичные функции)
  • возможно зашифровать память, в которой хранится пароль, и расшифровывать его только при использовании пароля.

В реальной жизни, если ваша машина принадлежит так, что кто-то может вмешиваться в процессы, к которым у него / нее не должно быть доступа - вы уже скомпрометированы, и вы не пытаетесь сделать его неясным.

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

Если вы серьезно относитесь к SSL и безопасности, используйте аппаратные токены или смарт-карты. В противном случае ожидайте, что после взлома хоста ваше программное обеспечение и все коды доступа, проходящие через этот хост, будут взломаны.

...