Самый безопасный способ связи между приложениями на одной машине - PullRequest
4 голосов
/ 11 мая 2010

Какой самый безопасный способ связи между двумя приложениями на одном компьютере, как клиентами Java, так и клиентами C / C ++ с сервером Java.

Достаточно ли безопасны сокеты SSL или они могут быть взломаны атаками "человек посередине"?

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

Повысит ли внедрение удаленного сервера безопасность локальной связи и как этого достичь?

Ответы [ 5 ]

5 голосов
/ 11 мая 2010

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

И да, все, что есть в вашем коде, доступно для чтения с правами администратора. Вы можете попробовать хитрые трюки, такие как шифрование или запутывание пароля, хранящегося в двоичных файлах / файлах JAR, но это препятствие, а не абсолютный барьер.

Опять же, с другой стороны, нет никаких абсолютных барьеров для конфиденциальности, просто более или менее эффективные препятствия. Независимо от ваших мер, от силы вашего шифрования и управления ключами, с достаточным количеством времени и стимулов, все что угодно даст. Что возвращает нас к моему первому пункту: какова ваша модель угроз (от каких атак вы хотите защищаться); сколько стоят ваши защищенные активы; а кому и чему ты доверяешь?

1 голос
/ 11 мая 2010

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

1 голос
/ 11 мая 2010

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

Если система должна быть защищена на 100%, то часть системы должна быть удаленной, и поэтому хакер не сможет ее использовать.

1 голос
/ 11 мая 2010

Я бы сказал, что отображаемые в память файлы или области общей памяти являются самым безопасным методом, который Java и C ++ ( Win32 , Unix ) поддержка межпроцессного взаимодействия. Это сложнее, так как вам приходится иметь дело с собственной синхронизацией. Обойти розетки полностью.

1 голос
/ 11 мая 2010

безопасно от чего? Если у злоумышленника есть root, он может подменить системные вызовы и следить за буферами памяти перед шифрованием и после дешифрования, и все, что вы можете сделать, безопасно.

Если у злоумышленника нет рута, он не сможет увидеть эту информацию, даже если вы ее не зашифруете.

Так что я не вижу в этом смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...