> пользователь попытается сделать все, чтобы его пароль стал > известен всем, более того, это цель пользователя - ему это > выгодно. > > У меня была проблема с аутентификацией. > вопрос был плохо сформулирован: Как сделать при заданых > условиях так, чтобы и трафик был без несанкционироанных > изменений,
Может я чего и не понимаю, но IMHO это в принципе не реализуемо. Если клиент может отправлятьлюбыеданные, ему можно подменить эти данные перед отправкой, и никто не сможет это предотвратить. А если клиент в исходниках, то подмена становится вообще тривиальной задачей - достаточно исправить функцию сбора информации.
> и пользователь не смог отрицать, что это менно > он отправил определенный пакет.
Для этого есть протоколы неотказуемости. Проще всего - каждому пользователю выдать пару Public+Private ключ, и заставить подписывать Private-ключом все посылки. А если от этот ключ кому-то отдаст - это будут уже его проблемы.
Хотя, вроде, еще есть какие-то протоколы для "подписания вслепую", когда я могу подписать определенное сообщение присланным маскированным ключом, но не могу найти ключ, или подписать им другое сообщение. Деталей не знаю.
Предположим есть клиентская и серверная программа.
Клиент общается с сервером по определенному протоколу из семейства tcp-ip. Пользователь меет свой уникальный идентификатор (uid), который он при желании может поменять (uid не может использоваться как ключ).
Далее, клиент общаясь с сервером отправляет ему некторые данные (например список всех имеющихся сетевых интерфейсов). Сервер общается с клиентом (например проверяет время от времени жив ли клиент).
Самое главное : клиентская программа поставляется в исходниках.
Пользователь клиентской программы - враг, намерен внести ложную информацию в сообщения, уходящие от клиента на сервер. Административые меры обеспечения безопасности (как например - постоянное визуальное наблюдение за пользователем) предпринять невозможно.
Цель : разработать протокол, при котором пользователь не смог бы внести изменения и отправить ложную информацию на сервер.
Сталкивались ли вы с такой задачей?
Если да, то как бы вы ее решили? - а то, очень надо решить, а ничего путного придумать не получается :(
Заранее спасибо.
А чем хранение пароля каждого клиента не подходит?20.05.01 01:10 Автор: Бяша <Biasha> Статус: Member
пользователь попытается сделать все, чтобы его пароль стал известен всем, более того, это цель пользователя - ему это выгодно.
У меня была проблема с аутентификацией.
вопрос был плохо сформулирован: Как сделать при заданых условиях так, чтобы и трафик был без несанкционироанных изменений, и пользователь не смог отрицать, что это менно он отправил определенный пакет.
уточнение : предполагается, что пользователями являются квалифицированные хакеры-криптоаналитики.
В любом случае, задача уже решена.
Больше помощи не требуется.
Спасибо.
> пользователь попытается сделать все, чтобы его пароль стал > известен всем, более того, это цель пользователя - ему это > выгодно. > > У меня была проблема с аутентификацией. > вопрос был плохо сформулирован: Как сделать при заданых > условиях так, чтобы и трафик был без несанкционироанных > изменений,
Может я чего и не понимаю, но IMHO это в принципе не реализуемо. Если клиент может отправлятьлюбыеданные, ему можно подменить эти данные перед отправкой, и никто не сможет это предотвратить. А если клиент в исходниках, то подмена становится вообще тривиальной задачей - достаточно исправить функцию сбора информации.
> и пользователь не смог отрицать, что это менно > он отправил определенный пакет.
Для этого есть протоколы неотказуемости. Проще всего - каждому пользователю выдать пару Public+Private ключ, и заставить подписывать Private-ключом все посылки. А если от этот ключ кому-то отдаст - это будут уже его проблемы.
Хотя, вроде, еще есть какие-то протоколы для "подписания вслепую", когда я могу подписать определенное сообщение присланным маскированным ключом, но не могу найти ключ, или подписать им другое сообщение. Деталей не знаю.