| ||||
| ||||
Подскажите пожалуйста, как можно просто и быстро реализовать с помощью CryptoAPI функцию зашифровки и расшифровки сообщений по локальной сети используя передачу сообщений через сокеты? Заранее благодарен за ответ | ||||
Ответы: | ||||
| ||||
Слишком общий вопрос. | ||||
| ||||
Хорошо, укрупняю. Нужно передать информацию от клиента к серверу в зашифрованном виде. Использую Делфи и компоненты Server и Client sockets. Существую функции передачи SendText и ReceiveText, точно не помню но дело не в написании а в сути. Вопрос: как можно используя CryptoAPI быстро и несложно зашифрровать блок данных а на сервере (приемной стороне их расшифровать) | ||||
| ||||
Хорошо, попробую помочь. Проблема, на самом деле, совершенно тривиальна и имеет гигантское количество решений, описанных, изученных вдоль и поперек (шифрование траффика). Клиету, при подключении к серверу, требуется "договориться" с последним о параметрах шифрования, как то алгоритм шифрования, параметрах ключа/ключей и пр. Тривиальное решение: 1. сервер в начале сессии генерирует пару private/public и высылает клиенту public. 2. клиент зашифровывает информацию о себе на public ключе сервера, в том числе и симметричный ключ, сгенерированный им же, для шифрования траффика. 3. сервер расшифровывает присланную клиентом информацию и весь дальнейший траффик с этим клиентом в пределах данной сессии шифруется на симметричном ключе последнего. В качестве алгоритма в пункте 1. можно использовать RSA, в качестве симметричного (пункт 2.) - RC4. В принципе, это и есть псевдокод. Если всё же вопросы остались - дайте знать на bob@rt.mipt.ru | ||||
| ||||
Лучше использовать функции протокола SSL (TLS). Примеры их вызова для клиента и сервера есть в тесте. | ||||
| ||||
Всё ясно, спасибо. Буду кодить. | ||||