24.03.2003 13:47:29Crypto API и сеть Ответов: 5
Сергей
Подскажите пожалуйста, как можно просто и быстро реализовать с помощью CryptoAPI функцию зашифровки и расшифровки сообщений по локальной сети используя передачу сообщений через сокеты?
Заранее благодарен за ответ
 
Ответы:
24.03.2003 17:49:04Алексей
Слишком общий вопрос.
24.03.2003 23:43:29Сергей
Хорошо, укрупняю.
Нужно передать информацию от клиента к серверу в зашифрованном виде.
Использую Делфи и компоненты Server и Client sockets. Существую функции передачи SendText и ReceiveText, точно не помню но дело не в написании а в сути.
Вопрос: как можно используя CryptoAPI быстро и несложно зашифрровать блок данных а на сервере (приемной стороне их расшифровать)
25.03.2003 17:34:20Алексей
Хорошо, попробую помочь. Проблема, на самом деле, совершенно тривиальна и имеет гигантское количество решений, описанных, изученных вдоль и поперек (шифрование траффика).

Клиету, при подключении к серверу, требуется "договориться" с последним о параметрах шифрования, как то алгоритм шифрования, параметрах ключа/ключей и пр.

Тривиальное решение:

1. сервер в начале сессии генерирует пару private/public и высылает клиенту public.

2. клиент зашифровывает информацию о себе на public ключе сервера, в том числе и симметричный ключ, сгенерированный им же, для шифрования траффика.

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

В качестве алгоритма в пункте 1. можно использовать RSA, в качестве симметричного (пункт 2.) - RC4.

В принципе, это и есть псевдокод. Если всё же вопросы остались - дайте знать на bob@rt.mipt.ru
25.03.2003 19:37:13kure
Лучше использовать функции протокола SSL (TLS).
Примеры их вызова для клиента и сервера есть в тесте.
25.03.2003 20:15:08Сергей
Всё ясно, спасибо. Буду кодить.