2010-11-02 4 views
1

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

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

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

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

ответ

0

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

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

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

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

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

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

Для получения более подробной информации см. RFC2246.

+0

Спасибо всем за столько комментариев и точек зрения. Это очень помогает. – FatherFigure

1

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

Я понятнее:

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

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

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

+0

Примечание: сертификаты относятся скорее к букве требований, чем к духу требований, поэтому OP, вероятно, нуждается в проверке того, что конкретные шаги хеширования и проверки выполняются на указанных этапах протокола. – jball

+0

@jball: прочитайте мои дополнительные комментарии. Я не могу себе представить, что OP будет пытаться использовать SSL. Каждая сертификация, которую я когда-либо проходил, касалась удовлетворения или превышения требований - вы сделаете это с помощью SSL – Hogan

+1

@Hogan, если требования в сертификации указывают «или превышают» или что-то подобное, ваш ответ правильный. Я просто столкнулся с слишком много бюрократизма, «должен иметь требования« x », чтобы чувствовать себя в безопасности, предполагая это. – jball

2

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

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

+0

Не говорит ли OP, что он делает SSL-соединение из клиентского приложения в SQL? Похоже, что эти «точки» не являются проблемой. – Hogan

+0

@Hogan: Если бы я заказал приложение, я бы, конечно, рассматривал его как проблему, если он не мог проверить, что данные не изменены. Есть и другие вещи, кроме простой передачи данных, которые могут пойти не так. – Guffa

+0

@ Guffa: Конечно, но сертификация не имеет только одного элемента. Я уверен, что существуют другие требования, касающиеся риска на конечных точках. – Hogan

2

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

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

+0

Все это кажется не проблемой. Суть требования заключается в том, что PII не отправляется в ясности. Кажется, SSL всегда удовлетворит это, верно? – Hogan

1

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

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

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

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

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