SocketAsyncEventArgs Encryption - SSL и пользовательское шифрование перед передачей - PullRequest
2 голосов
/ 18 марта 2011

Я работаю над реализацией высокопроизводительного сервера с использованием IOCP и SocketAsyncEventArgs. Из того, что я прочитал, получить SSL с использованием этого метода не так просто, так как я обнаружил, что вам нужно либо внедрить SSL самостоятельно, либо каким-либо образом включить NetworkStream с использованием SSL в модель.

Мой вопрос: каковы будут последствия для безопасности и производительности, связанные с включением модели шифрования до / после передачи, шифрованием моего переданного байтового массива в удаленную конечную точку и последующей расшифровкой байтового массива после получения?

Я бы с удовольствием внедрил SSL, так как видел, что «нестандартные» схемы шифрования приводят к огромным потерям производительности на сервере.

Любые предложения, указатели или ресурсы будут с благодарностью.

Спасибо.

1 Ответ

0 голосов
/ 18 марта 2011

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

В качестве альтернативы как предварительной транспортировке, так и поддержке TLS выможет также сделать что-то вроде туннелирования всего вашего трафика через туннель SSH или TLS «за пределами» вашего приложения (вызов ssh -L или stunnel для запуска некоторых туннелей перед запуском приложения) или настройки IPSec между вашими конечными точками.Это препятствия для легкого развертывания, поэтому их не следует воспринимать легкомысленно, но многие системные администраторы уже знакомы с туннелями SSH или TLS, и если это значительно упрощает программирование в других хороших условиях, это может быть решением наименьшего количествараздражение.

...