Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Алгоритмы распределения ключей
 
Мне нужен алгоритм распределения ключей который бы позволял передать клиентам и серверам сессионные ключи. При этом серверы не устанавливают подключения с клиентами, а рассылают данные мультикастингом.
Подскажите плиз какой нить алгоритм или ссылку дайте где про это можно почитать.
Только мне ненужны классические алгоритмы вроде Диффи-Хелмана или Нидхэма-Шредера. Мой шеф считает что они имеют академический а не практический характер.
 
А подробнее... Что то больно сумбурно вы пишите.

Серверы и не устанавливают соедтнение с клиентом, на то они и серверы знаете ли ;) Задачу можете побробнее описать?
Ну например, сервер может мультикастом слать сертификат со своим открытым ключем  через определенные промежутки времени.... Только вот на фига сеть нагружать, если тот же сертификат мервер может выслать по запросу клиента?
 
Цитата
А подробнее...
Имеется распределенная система. В которой N генераторов и M приемников информации. Генераторы рассылают свои данные мультикастом (это решение принял не я). Приемники получают эти данные и обрабатывают.
Требуется защитить данные в сети.

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

Данные передаваемые генераторами решено шифровать симметричным алгоритмом.

Задача заключается в распределении ключей симметричного алгоритма.

Цитата
Серверы и не устанавливают соедтнение с клиентом, на то они и серверы знаете ли
Смотря что называть установкой соединения. Здесь под соединением понимается поочередный обмен данных между сервером и клиентом.
А в нашей системе такого нет данные передают только генераторы, а принимают только приемники.

Цитата
Ну например, сервер может мультикастом слать сертификат со своим открытым ключем
На счет сертификатов у меня небольшой пробел в знаниях.  :oops:
Как они строятся? И каким ключом шифруются если шифруются?
 
Чего то вы там мутите короче......

Что такое сертификат можно легко найти в инете (по крайней мере там будет написано лучще чем я объясню) Если коротко то это хранилище  включаюшее в себя следующие основные части : название субьекта ,  открытая часть ассиметричного  ключа (тут какой хотите такой ассиметричный ключ и вкладывайте - Диффи-Хелман, RSA либо при  "особом желании" открытый ключ ГОСТа 2001  ;)  ) , областей его применения и все это  подписанно на закрытой части ключа либо самого субьекта (самоподписанный сертификат) либо на закрытой части ключа доверенного центра сертификации.

 аутентификации приемников и генераторов  -- применение сертификатов
 обеспечение целостности данных --  все пакеты на уровне работы вашего протокола должны быть с MAC ом..
 обеспечение конфиденциальности информации --  шифрование симметричным алгоритмом.


Так как данные ваш генератор должен рассылать мультикастом , то нужно обеспечить чтобы на приемниках были одинаковые сесионные ключи.

Предлагаю следующий протокол:
1) генерим пары открытый - закрытый ключ для приемников и генераторов, генерим  сертификаты для генераторов и приемников подписанные на закрытом ключе ключе центра сертификации. Раздаем каждому ПР и ГЕН свои сертификаты + сертификат  центра сертификации.
2) генератор случайным образом вырабатывает сессионный ключ  для симмтричного алгоритма шифрования (и для вычисления MAC, если MAC строится тоже на симметричном алгоритме )
3) ПР если у него нет сесионного ключа (только включился или еще чего там) посылет пакет  ГЕН на определенный порт содержащий просьбу выслать ему сесионный ключ + посылает свой сертификат
4) ГЕН получив пакет проверяет сертификат ПР (с помощью сертификата центра сертификации) шифрует сессионный ключ открытым ключем ПР (достает его из сертификата ПР ;) ) добавляет  свой сертификат,  подписывает все это  своим закрытым ключем и всю эту бодягу отправляет ПР.
(Если ктото пошлет сертификат ПР не зная закрытой части ключа ПР то в расшифровать сессионный ключ он всё равно не сможет.... )
5) ПР  принимает пакет содержащий эти данные. Проверяет сертификат ГЕН (опять с помощью сертификата центра сертификации) проверяет подпись на пакете с помощью открытого ключа ГЕН (достает открытый ключ  ГЕН из сертификата ) расшифровывает  сесионный ключ симметричного алгоритма.
(пункты 3 4 5 позволяют произвести взяимную аутентификацию ГЕН и ПР и безопасно передать с ГЕН на ПР сессионнвй ключ)
6) Проводим пункты 3 4 5 для каждого приемников в итоге у всех приемников и ГЕН одинаковвй сесионнвй ключ
7) Шлем данные мультикастомс ГЕН  шифруия их данным сессионным ключем который мы разослали всем ПР
, они их получают и расшифровывают))) Наступает счастье ;)
8) Опять же вместе с сесионным ключем шифрования можно было передать ключ для вычисления MAC и на все пакеты с ГЕН на примники накладывать заодно и MAC
9) Ну там вводим всякие усложнени, типа изменения сесионного ключа после определенного к-ва переданной информации ;) И всякие другие приправы по вкусу.....

Писал вечером, думать влом, поэтому за весь вышестоящий бред ответственности не несу!!!!  :D Может чего-то не додумал, может где-то легче сделать можно...

PS Я вообще у меня с русским бяда, так что если где синтаксические или иные ошибки -- sorry !  :)
 
Спасибо! Конечно нужно хорошенько подумать и проанализировать, но это уже чтото интересное.  :idea:
Страницы: 1
Читают тему