Цифровая подпись - распределенная среда - раздельное хеширование и подписывание - PullRequest
2 голосов
/ 04 января 2011

Мне нужно подписать цифровой пакет данных размером 50 МБ в распределенной среде.Подписание происходит на центральном сервере, и клиенты будут отправлять пакеты данных на центральный сервер.Я хотел избежать узких мест в сети, отправляя огромные пакеты данных.

Мой вопрос:

  1. Могу ли я сгенерировать хэш на стороне клиента и просто отправить хеш нацентральный сервер для подписи?
  2. Есть ли в этом подходе недостатки безопасности?

Спасибо

Ответы [ 2 ]

3 голосов
/ 04 января 2011

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

2 голосов
/ 04 января 2011

Слепое подписание хеша кажется рискованным предложением. Есть несколько вопросов, которые кажутся уместными в этой ситуации:

  • Являются ли клиенты "доверенными"?
  • Доверен ли канал связи?
  • Выполняет ли сервер какие-либо проверки данных, которые он получает и подписывает?

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

...