Использует ли SSL внутреннее хеширование?

Мы находимся в процессе сертификации нашей медицинской продукции (сертификация Hitech). Одним из критериев процесса сертификации является то, что наш продукт должен быть способен использовать "хеширование" при отправке информации о пациенте по сети. Наш продукт - это толстый клиент, который напрямую подключается к базе данных Sql Server 2005. Поэтому, когда мы отправляем информацию о пациенте от клиента в процедуру хранения БД, она должна использовать "хеширование", чтобы убедиться, что информация не была изменена при передаче.

Теперь мы планируем подключить наш клиент к Sql Server с помощью безопасного соединения SSL. Когда я читаю о протоколе SSL, кажется, что SSL использует внутреннее хеширование. Так что, если это правда, я могу автоматически удовлетворить требования хеширования, используя SSL-соединение между клиентом и sql svr.

Так вот мои вопросы

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

5 ответов

Решение

Когда данные передаются через соединение SSL, каждое сообщение внутренне прикрепляется с помощью хэша, так что протокол SSL проверяет, что данные не были изменены?

Да. Он добавляет MAC-ключ с ключом к каждой обмененной записи TLS.

Использует ли SSL механизм хеширования только на начальных этапах своего рукопожатия?

Нет, это происходит повсюду.

Если SSL прикрепляет хеш для каждого сообщения, используется ли "открытый ключ" для его создания?

Нет. Общий секрет используется для создания хэша.

См. RFC2246 для деталей.

Даже если SSL использует хэширование, это обеспечит только часть передачи, которую обрабатывает SSL. На обоих концах все еще существует разрыв между клиентским приложением и сетевым подключением, а также между сетевым подключением и серверным приложением.

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

Это зависит. Обе стороны могут договориться об уровне защиты и используемых алгоритмах. Наиболее распространенным случаем является то, что при согласовании используется TLS, а не SSL, запрашивается конфиденциальность сообщения (т. Е. Шифрование) и запрашивается защита от взлома (т. Е. Подписывание). TLS использует хеширование сообщений на основе HMAC, см. Главу 5 RFC2246. SSL использует MAC, который немного слабее, чем HMAC (MAC не содержит секрета в своем дайджесте).

В представлении уровня 10000 футов ответом будет "Да, SSL хэширует каждое сообщение". Внедрение SSL-шифрования в клиентском протоколе SQL Server обычно требуется при совместимых развертываниях. Для получения более подробной информации и рекомендаций проверьте веб-трансляцию и технические документы в SQL Server Compliance.

SSL сильнее хеширования. Это должно удовлетворить ваше требование.

Мне будет понятнее

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

Требование было написано с расчетом на то, что большинство сообщений было сделано в открытом виде. С использованием SSL вы легко выполняете это требование.

Важное примечание: убедитесь, что связь SSL правильно реализована - это единственная точка отказа.

SSL или TLS (вы, вероятно, сможете использовать TLSv1.0 по крайней мере в наши дни, даже когда говорите о "SSL"), направлен на защиту целей "[...] обеспечения конфиденциальности и целостности данных между двумя взаимодействующими приложениями" (см. RFC).

RFC 4346 продолжает говорить:

Протокол записи TLS обеспечивает безопасность соединения, которая имеет два основных свойства:

  • Связь частная. [...]
  • Связь надежная. Транспортировка сообщений включает проверку целостности сообщений с использованием MAC с ключами. Безопасные хеш-функции (например, SHA, MD5 и т. Д.) Используются для вычислений MAC. Протокол записи может работать без MAC, но обычно используется только в этом режиме, в то время как другой протокол использует протокол записи в качестве транспорта для согласования параметров безопасности.

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

Другие вопросы по тегам