Обеспечение идентичности источника - PullRequest
0 голосов
/ 03 октября 2011

Алиса хочет узнать от Боба местонахождение секретного ресурса.Боб любезно сообщает Алисе местоположение, но как Алиса может быть уверена в личности Боба?

Боб является сервером OpenBSD, а источником данных является приложение Python / C ++.

MyИдея была:

Алиса знает открытый ключ Боба.

Алиса шифрует случайную строку с помощью открытого ключа Боба и отправляет ее Бобу.

Боб восстанавливает случайную строку, ихэш это.Боб отправляет обратно конфиденциальный ресурс вместе с хешем.

Проблема этого метода: Могу ли я безопасно хранить закрытый ключ на Бобе (сервере)?Как?Есть ли лучшее решение?

Ответы [ 2 ]

1 голос
/ 03 октября 2011

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

Если стоит потратить дополнительные деньги, вы можете воспользоваться другой машиной (позвонитеэто Cipherclerk), который не в сети, может общаться только с Бобом, и будет делать только определенные виды связи.Cipherclerk держит закрытый ключ и использует его для расшифровки вещей для Боба.Затем, даже если Боб скомпрометирован удаленно, по крайней мере, секретный ключ не скомпрометирован с ним.

Усовершенствованием вашей идеи будет использование Бобом случайной строки Алисы в качестве симметричного ключа для шифрования ресурса.

0 голосов
/ 10 октября 2011

Этот метод совершенно небезопасен, если кто-то может смонтировать человека в середине атаки. Мэллори, атака, может просто убрать конфиденциальную информацию, заменить ее своей и передать Алисе.

Решение - использовать TLS или SSH. В любом случае убедитесь, что у Алисы есть открытый ключ Боба или отпечаток ключа. Это широко используемое решение, и оно безопасное, если предположить, что никто не сможет изменить данные, которые Алиса хранит, или прочитать хранилища данных.

...