<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40993&amp;view=findpost&amp;p=265993</guid>
        <pubDate>Thu, 18 Dec 2003 14:40:10 +0000</pubDate>
        <title>Защита данных в Базе данных</title>
        <link>https://forum.sources.ru/index.php?showtopic=40993&amp;view=findpost&amp;p=265993</link>
        <description><![CDATA[Vit:  Давайте принципиально различать 2 ситуации:<br><br><b><span style='color:blue'>Ситуация I</span><br>Нужно чтобы программа где-то хранила свои данные в зашифрованном виде. Пользователь никаких паролей не вводит. Такой сценарий обычно нужен чтобы предупредить возможность пользователя напрямую манипулировать теми или иными данными, позволяя ему общение только через программу.</b><br><br>Для этого случая сила криптографических алгоритмов не принципиальна. Против ламера поможет любая защита, против хакера - никакая защита не сработает, так как пароль/ключ и алгоритм уже находятся в руках, всё зашито в базе данных, exe и т.п. у пользователя на компьютере, то так или иначе эта защита вскрывается - программа дизассемблируется, трассируется, запросы к базе перехватываются и т.д. В данном случае что Парадокс, что MS Access, что любая другая база данных - не имеет значения, вопрос в том сломают её за 5 минут или за час.<br><br><br><b><span style='color:blue'>Ситуация II</span><br>Есть конфиденциальные данные конкретного пользователя. Чтобы получить свои данные пользователь должен руками ввести свой пароль. Сам пароль известен только пользователю, ни в програмном коде, ни в базе данных он нигде не хранится.</b><br><br>Вот здесь надо обратить внимание на базу данных. Сразу скажу - базы данных типа Парадокс, Foxpro, MS Access - подходят только если использовать шифрование данных, надеятся на их встроенные системы защиты нельзя. Лучше всего защищены промышленные сервера, типа MS SQL Server, Oracle, DB/2, SyBase. И тем ни менее, даже при их использовании, для максимальной защиты лучше шифровать вносимые данные по какому-нибудь криптостойкому алгоритму, например:<br><br>берётся строка: &quot;Логин+Пароль&quot;, введенные пользователем   <br>на этой строке делается MD5 - получается 32 битный ключ<br>Все данные читаются и пишутся с предварительной шифровкой/дешифровкой с полученным ключём использую алгоритм &quot;трипл-дес&quot;<br><br>При таком раскладе можно и в парадоксе хранить - расшифровать практически невозможно. Только надо понимать что при таком алгоритме нет никакой возможности восстановить утерянный пароль, обнулить пароль и восстановить инфу при потере логина или пароля - информация будет утеряна навсегда.<br><br>Рассмотренные сценарии относятся к случаю, когда база данных поставляется с программой, если используется удалённый сервер баз данных или например для web приложений, то там правила немного другие, надо принимать в рассчёт многочисленные возможности защиты информации на удалённом компьютере. ]]></description>
        <author>Vit</author>
        <category>Базы данных, репортинг, печать</category>
      </item>
	
      </channel>
      </rss>
	