Подмена параметров с помощью цифровой подписи

 

цифровая подпись

Универсальным методом, позволяющим защитить информацию от подмены, является  цифровая подпись (ЭЦП). С помощью ЭЦП можно обеспечить неотказуемость на любом  этапе обмена информацией между клиентом и сервером. Для этого приложение должно  обеспечивать выполнение следующих функций:
− Подтверждение при передаче. Приложение должно поддерживать технологию  цифровой подписи (например, SHA-1, DSA, RSA), позволяющую отправителю  (получателю) заверить цифровой подписью данные или ключи, которые приложение  использует при создании или пересылки данных через сеть. 
− Подтверждение доставки. В этом случае получатель должен с помощью цифровой  подписи через приложение подтвердить факт получения информации. 
− Проверка цифровой подписи. В приложении должна быть реализована возможность  проверки соответствия данных (или ключей) полученных по сети или из баз данных, и  цифровой подписи, прикрепленной к этим данным. 
− Защита информации, используемой для формировании цифровой подписи.  Приложение должно надежно защищать данные используемые при формировании  цифровой подписи от подмены или раскрытия. К таким  данным относятся ключи  шифрования и сертификаты. 
− Цифровая подпись данных, полученных из Web-форм. Чтобы сделать  невозможным отказ от авторства для конфиденциальных данных, полученных из Web-форм, приложение должно подтверждать их цифровой подписью.  Для защиты данных в HTML-формах можно использовать  алгоритм MD5 (либо другой  алгоритм) для формирования  цифровой подписи под скрытыми полями. Можно, например,  объединить значения скрытых полей путем их конкатенации, создать для этой строки  цифровую подпись и записать ее в еще одно скрытое поле. Когда браузер возвратит на
сервер значения полей формы, их целостность может быть проконтролирована. 
Для того, чтобы пользователь не мог подделать цифровую подпись, необходимо добавить к  ЭЦП некий секретный компонент, который пользователь не может видеть. Это делается с
помощью секретного ключа, хранимого на сервере. Такая конструкция называется «message authentication code» (MAC), а стандартный способ ее применения называется HMAC (RFC 2104). Функции HMAC доступны во всех языках Web-программирования:
) Digest:HMAC (Perl)
) mhash() (PHP)
) KeyGenerator (Java)
) HMACSHA1 (MS .Net Framework
)
Такой подход так же может быть использован для Web-приложений, хранящих  данные на сервере и использующих  cookie для хранения на стороне клиента сессионного  ключа.
Конечно, уязвимостью данного метода (как и других методов, основанных на  «разделяемых» ключах), является секретный ключ, хранимый на Web-сервере. Если сервер  взломан, либо становится доступным исходный код приложения, данный метод перестает  быть безопасным. Если же существует обоснованная уверенность в безопасности сервера, и  при регулярной смене секретного ключа, можно считать что метод обеспечивает  достаточную защиту.

 
 
 

0 - Количество комментариев

Оставьте комментарий.

 
 

Оставьте комментарий