SSL-ускорение и разгрузка: каковы последствия для безопасности?

Опубликовано: 13 Апреля, 2023

SSL использует симметричное шифрование (один общий ключ для шифрования и дешифрования) для обеспечения конфиденциальности данных. Хотя это считается менее безопасным, чем асимметричное шифрование (с открытым ключом), в котором используется совпадающая пара ключей, этот недостаток несколько компенсируется тем фактом, что симметричное шифрование намного быстрее (что важно в транзакциях электронной коммерции) и требует меньше обработки. Шифрование SSL усиливается за счет использования более длинного ключа; он может использовать DES, 3DES, RC2 и RC4 с длиной ключа до 168 бит.


Примечание


Несмотря на то, что он использует более быстрое симметричное шифрование для обеспечения конфиденциальности, SSL все же вызывает снижение производительности. Это потому, что SSL — это больше, чем просто шифрование данных. Процесс «рукопожатия», при котором сервер (а иногда и клиент) аутентифицируется, использует цифровые сертификаты, основанные на технологии асимметричного шифрования или шифрования с открытым ключом. Шифрование с открытым ключом является очень безопасным, но также очень ресурсоемким и, таким образом, оказывает значительное негативное влияние на производительность. Сайты электронной коммерции особенно подвержены узким местам SSL, и компании могут потерять бизнес, когда клиенты сталкиваются с медленным ответом и длительным ожиданием.


В этой статье мы рассмотрим некоторые решения, которые можно реализовать для решения этой проблемы с производительностью и нагрузкой на процессор. В частности, мы обсудим концепции ускорения SSL и два различных метода разгрузки SSL: завершение SSL и мостовое соединение SSL (также называемое инициацией SSL). Мы также рассмотрим возможные последствия для безопасности, связанные с развертыванием этих решений.


Как работает SSL


SSL использует протокол «рукопожатия» для согласования и установления сеанса между клиентским и серверным компьютерами. Во время последовательности рукопожатия цифровые сертификаты используются для аутентификации личности, а взаимодействующие компьютеры согласовывают алгоритм хеширования (например, MD5 или SHA-1) для обеспечения целостности данных.


Сеанс SSL инициируется сообщением, отправляемым на сервер клиентским компьютером (называемым приветственным сообщением клиента). Сервер отвечает сообщением Server Hello. Эти сообщения устанавливают параметры для связи, в том числе, какая версия SSL будет использоваться, идентификатор сеанса (если клиент продолжает предыдущий сеанс), «набор шифров», который будет использоваться (это определяет алгоритм обмена ключами, алгоритм шифрования и хэш-функция), а также алгоритм сжатия, который будет использоваться.


Клиент может аутентифицировать личность сервера, поскольку сервер отправляет свой цифровой сертификат, содержащий его открытый ключ. В некоторых случаях необходима двусторонняя аутентификация. То есть сервер должен проверять личность клиента в дополнение к тому, что клиент проверяет личность сервера. Интернет-банкинг является хорошим примером такой ситуации. В этом случае сервер отправляет запрос сертификата клиента.


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


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


Клиент может отправить хэш вышеуказанных сообщений, зашифрованный своим закрытым ключом (в ситуациях двусторонней аутентификации). Затем сервер может проверить личность клиента, расшифровав ее с помощью открытого ключа клиента. Затем клиент отправит сообщение, чтобы сообщить серверу, что последующие сообщения будут зашифрованы с помощью согласованных алгоритмов, и, наконец, клиент отправляет сообщение «Клиент готов», которое зашифровано и хэшировано.


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


Что такое SSL-ускорение?


Одним из первых методов, используемых для решения проблемы с производительностью SSL, был аппаратный ускоритель. Это карта, которая вставляется в слот PCI или порт SCSI и содержит сопроцессор, выполняющий часть обработки SSL, разгружая основной процессор веб-сервера. Аппаратные ускорители SSL производятся рядом поставщиков, включая nCipher (www.ncipher.com/nfast).


Как правило, аппаратному ускорителю передаются только операции RSA, использующие криптографию с открытым ключом. Это потому, что симметричное шифрование намного быстрее и его не нужно разгружать; на самом деле разгрузка этих операций может привести к снижению производительности. Таким образом, карта ускорителя выполняет операции асимметричной криптографии, а операции симметричной криптографии выполняются главным процессором сервера.


Уровень улучшения производительности, который вы получаете с помощью аппаратного ускорителя, варьируется от одного поставщика к другому. Некоторые поставщики заявляют об увеличении мощности обработки SSL на 500% и более. Вы можете добавить более одной карты на один и тот же сервер, чтобы еще больше увеличить емкость, и вы можете установить две карты для обеспечения высокой доступности и аварийного переключения. Некоторые карты также включают дополнительные функции, такие как управление ключами.


Некоторые ускорители, называемые сетевыми ускорителями, в отличие от ускорителей на стороне сервера, предназначены для работы с сетевыми коммутаторами и перехвата и расшифровки трафика SSL до того, как он достигнет сервера. Это выходит за рамки простого ускорения и касается разгрузки SSL.


Что такое разгрузка SSL?


В некотором смысле аппаратный ускоритель SSL выполняет разгрузку SSL, потому что часть обработки SSL «переносится» с процессора сервера на сопроцессор карты. Однако термин «разгрузка» обычно используется для описания устройства или совершенно отдельного компьютера, который выполняет всю обработку SSL, так что нагрузка SSL полностью снимается с веб-сервера.


Преимущество разгрузчика по сравнению с обычным ускорителем заключается в том, что он может выполнять обработку SSL для более чем одного веб-сервера, в то время как карта ускорителя привязана к одному серверу.


Разгрузчики SSL могут значительно повысить эффективность систем обнаружения вторжений, систем обнаружения вирусов и т. д. Эти системы не могут обнаруживать сигнатуры атак и сигнатуры вирусов, содержащиеся в данных, зашифрованных с помощью SSL, но разгрузчик может расшифровать данные, чтобы IDS, вирусы программный или прикладной брандмауэр может проверять его содержимое и блокировать подозрительные пакеты.


Есть два основных способа сделать это: разгрузчик может выполнить завершение SSL или соединение SSL (иногда называемое инициацией SSL).


SSL-терминация


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


Незашифрованные данные могут проходить через IDS, систему обнаружения вирусов и/или брандмауэр прикладного уровня на пути к серверу.


Завершение SSL увеличивает производительность на уровне сервера, но также создает проблему безопасности: данные перемещаются от разгрузчика к серверу без защиты шифрования.


Мост SSL (инициация)


Существует метод проверки данных, зашифрованных с помощью SSL, до того, как они достигнут сервера, чтобы предотвратить скрытые внутри атаки на прикладном уровне без ущерба для сквозной безопасности данных. Microsoft называет эту технологию мостом SSL. Другие поставщики используют другую терминологию; например, SonicWall называет это инициацией SSL.


Независимо от названия, вот как это работает: брандмауэр прикладного уровня перехватывает и расшифровывает зашифрованный SSL-трафик, проверяет содержимое, чтобы убедиться, что оно не содержит вредоносного кода, а затем повторно шифрует его перед отправкой на сервер. Хотя данные временно находятся в расшифрованном состоянии на брандмауэре, они защищены при передаче по сети.


Однако это означает, что серверу придется снова расшифровывать данные, что сводит на нет преимущество разгрузки SSL в производительности.


Каковы последствия разгрузки SSL для безопасности?


Разгрузка SSL может значительно повысить производительность ваших защищенных веб-серверов, тем самым повысив удовлетворенность клиентов. Однако разгрузка означает, что соединение SSL распространяется только от клиента к разгрузчику, а не от клиента к серверу. Данные передаются по сети в незашифрованном виде от разгрузчика к серверу.


Конечно, эти данные перемещаются по вашей внутренней сети, а не по общедоступному Интернету. Таким образом, возникает вопрос: насколько безопасна эта внутренняя сеть? Это во многом зависит от топологии вашей сети. Если у вас есть разгрузчик и сервер, развернутые за брандмауэром отдела в защищенной подсети, где расположены только важные серверы и к которым у пользователей нет прямого доступа, вы можете быть уверены в разрешении передачи незашифрованных данных от разгрузчика на сервер. Если вы перекладываете обработку SSL на брандмауэр, расположенный на границе сети, уязвимость и риск компрометации после расшифровки данных намного выше.


Наконец, вы должны учитывать восприятие и ожидания клиентов. Ожидают ли клиенты, что, когда им говорят, что они устанавливают безопасное зашифрованное соединение, безопасный туннель простирается от клиента до сервера? Это было бы логичным предположением для обычного пользователя, который не знаком с такими технологиями, как разгрузка SSL. С какими вопросами ответственности вы столкнулись бы, если бы конфиденциальные данные клиентов получили доступ к конфиденциальным данным клиентов во время путешествия по сети в расшифрованном состоянии, а затем были бы использованы не по назначению?


Резюме


Шифрование SSL представляет собой дилемму, в которой производительность и безопасность находятся на противоположных концах континуума, и чем больше одного, тем меньше другого. В конечном счете, вы должны оценить свою собственную сетевую структуру, характер данных, которые по ней проходят, и насколько компромисс производительности стоит дополнительной безопасности или наоборот. Цель этой статьи — напомнить вам, что старая максима снова верна: TANSTAAFL («Нет такой вещи, как бесплатный обед»). Хотя разгрузка SSL предлагает явные преимущества для вашего бизнеса, за эти преимущества приходится платить.