SlideShare a Scribd company logo
1 of 12
Алгоритмы шифрования и их
    применение в .Net приложениях для
             защиты данных

Radislav Kerimhanov
rkerimhanov@codemastersintl.com
Содержание
•   Что такое защита информации?
•   Уязвимые места Web приложений
•   Виды атак на Web приложения
•   Алгоритмы шифрования и их сравнение
•   Шифрование в .Net
•   Примеры
•   Шифрование данных в БД
•   Шифрование строк подключения к БД
•   Пример шифрования строк подключения к БД
•   Заключение
Что такое защита информации?
• Информация – это любые сведения, которые
  интересуют конкретного человека в конкретной
  ситуации.
• Защита информации - совокупность мероприятий,
  методов и средств, обеспечивающих:
  • исключение НСД к ресурсам ЭВМ, программам и
    данным;
  • проверку целостности информации;
  • исключение несанкционированного использования
    программ (защита программ от копирования).
Уязвимые места Web приложений

• URL
• Поля ввода данных
• HTTP и HTTPS
Виды атак на Web приложения
• Подбор (Brute Force)
• Недостаточная аутентификация (Insufficient Authentication)
• Небезопасное восстановление паролей (Weak Password
  Recovery Validation)
• Предсказуемое значение идентификатора сессии
  (Credential/Session Prediction)
• Подмена содержимого (Content Spoofing)
• Межсайтовое выполнение сценариев (Cross-site Scripting,
  XSS)
• Расщепление HTTP-запроса (HTTP Response Splitting)
• Атака на функции форматирования строк (Format String
  Attack)
• Внедрение операторов SQL (SQL Injection)
Алгоритмы шифрования
• Симметричные алгоритмы шифрования (SymmetricAlgorithm)
     • DES
     • TripleDES
     • Rijndael
     • RC2
• Ассиметричные алгоритмы шифрования (AsymmetricAlgorithm)
     • RSA
     • DSA
• Хэш алгоритмы шифрования (HashAlgorithm)
     • MD5
     • SHA1
     • SHA256
     • SHA512
Симметричные алгоритмы
     Hello world

      Алгоритм
    симметричного        Секретный ключ
     шифрования


     Olleh dlrow

      Алгоритм
    симметричного        Секретный ключ
     шифрования

     Hello world
Асимметричные алгоритмы
      Hello world

       Алгоритм
    асимметричного        Открытый ключ
      шифрования


      Olleh dlrow

       Алгоритм
    асимметричного        Закрытый ключ
      шифрования

      Hello world
Шифрование в .Net
Абстрактный   Реализация по умолчанию          Длина ключа            Максималь
  алгоритм                                                            ная длина
                                                                       ключа

   DES         DESCryptoServiceProvider                64                 64


 TripleDES    TripleDESCryptoServiceProvider         128,192             192


   RC2           RC2CryptServiceProvider             40-128              128


  Rijndael           RijndaelManaged               128,192,256           256


   RSA          RSACryptoServiceProvider       384–16384 (с увели-       1024
                                                чением на 8 бит)

   DSA          DSACryptoServiceProvider       512–1024 (с увеличе-      1024
                                                 нием на 64 бита)
Шифрование данных в БД
                  Шифрование с помощью хэш алгоритма
    Логин         Пароль
 JoePresident     AEB0FC9FCEA137CF9BBC594BBC97991C10CD9138
MaryDeveloper DEFAFC9FCEA137C12345694BBC97991C10123456
 TomNewHire       AEB0FC9FCEA137CF9BBC594BBC97991C10CD9138

               Шифрование с помощью хэш алгоритма + SALT
Логин             Пароль                      Salt
JoePresident      876ABD9FCEA137CF9BBC594     5d8a2052-1f3e-4fe1-
                  BBC97991C10CD9138           9ca4-7c891a980592
MaryDeveloper ADCAD79FCEA137C12345694B 38011b98-3ce5-4f62-
              BC97991C10987650         a959-415ce93ed7bb
TomNewHire        BC89129FCEA137CF9BBC594B    fd05e0fe-d17c-4d6c-
                  BC97991C10BDCA09            8a55-06445bb5613c
Шифрование строк подключения к БД
Заключение
• Достоинства симметричных алгоритмов по
  сравнению с асимметричными:
  • скорость (по данным Applied Cryptography — на 3 порядка
    выше)
  • простота реализации (за счѐт более простых операций)
  • меньшая требуемая длина ключа
• Недостатки:
  • сложность управления ключами в большой сети
  • сложность обмена ключами


     «Тот, кто владеет информацией, владеет миром»

More Related Content

Viewers also liked

РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВРАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
Pavel Tsukanov
 

Viewers also liked (20)

ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
 
Введение в Knockout
Введение в Knockout Введение в Knockout
Введение в Knockout
 
Thinking in parallel ab tuladev
Thinking in parallel ab tuladevThinking in parallel ab tuladev
Thinking in parallel ab tuladev
 
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
 
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВРАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
 
Unit tests
Unit testsUnit tests
Unit tests
 
Domain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийDomain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требований
 
PaaS и SaaS
PaaS и SaaSPaaS и SaaS
PaaS и SaaS
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.
 
Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriver
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 
СОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯСОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯ
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLID
 

Similar to Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.

Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Ontico
 
Шифрование данных в облачных инфраструктурах – обзор технологических подходов
Шифрование данных в облачных инфраструктурах – обзор технологических подходовШифрование данных в облачных инфраструктурах – обзор технологических подходов
Шифрование данных в облачных инфраструктурах – обзор технологических подходов
Denis Bezkorovayny
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кода
corehard_by
 

Similar to Алгоритмы шифрования и их применение в .Net приложениях для защиты данных. (20)

Криптография
КриптографияКриптография
Криптография
 
лекция 17
лекция 17лекция 17
лекция 17
 
лекция 17
лекция 17лекция 17
лекция 17
 
C:\fakepath\кмсзи экз
C:\fakepath\кмсзи   экзC:\fakepath\кмсзи   экз
C:\fakepath\кмсзи экз
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
 
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashTyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Wi-Fi Audit Workshop
Wi-Fi Audit WorkshopWi-Fi Audit Workshop
Wi-Fi Audit Workshop
 
SIMD - что это такое?
SIMD - что это такое?SIMD - что это такое?
SIMD - что это такое?
 
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
 
Практическое использование средств криптографии в .NET, Java и PHP
Практическое использование средств криптографии в .NET, Java и PHPПрактическое использование средств криптографии в .NET, Java и PHP
Практическое использование средств криптографии в .NET, Java и PHP
 
Криптология в анализе защищённости
Криптология в анализе защищённостиКриптология в анализе защищённости
Криптология в анализе защищённости
 
Uo
UoUo
Uo
 
Шифрование данных в облачных инфраструктурах – обзор технологических подходов
Шифрование данных в облачных инфраструктурах – обзор технологических подходовШифрование данных в облачных инфраструктурах – обзор технологических подходов
Шифрование данных в облачных инфраструктурах – обзор технологических подходов
 
A popular DNS security overview
A popular DNS security overviewA popular DNS security overview
A popular DNS security overview
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кода
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кода
 
SAP hands on lab_ru
SAP hands on lab_ruSAP hands on lab_ru
SAP hands on lab_ru
 
Трудовые будни инженера производительности
Трудовые будни инженера производительностиТрудовые будни инженера производительности
Трудовые будни инженера производительности
 
Защита и контроль приложений
Защита и контроль приложенийЗащита и контроль приложений
Защита и контроль приложений
 

More from Pavel Tsukanov

More from Pavel Tsukanov (8)

МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
 
АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5
 
ХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫ
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
 

Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.

  • 1. Алгоритмы шифрования и их применение в .Net приложениях для защиты данных Radislav Kerimhanov rkerimhanov@codemastersintl.com
  • 2. Содержание • Что такое защита информации? • Уязвимые места Web приложений • Виды атак на Web приложения • Алгоритмы шифрования и их сравнение • Шифрование в .Net • Примеры • Шифрование данных в БД • Шифрование строк подключения к БД • Пример шифрования строк подключения к БД • Заключение
  • 3. Что такое защита информации? • Информация – это любые сведения, которые интересуют конкретного человека в конкретной ситуации. • Защита информации - совокупность мероприятий, методов и средств, обеспечивающих: • исключение НСД к ресурсам ЭВМ, программам и данным; • проверку целостности информации; • исключение несанкционированного использования программ (защита программ от копирования).
  • 4. Уязвимые места Web приложений • URL • Поля ввода данных • HTTP и HTTPS
  • 5. Виды атак на Web приложения • Подбор (Brute Force) • Недостаточная аутентификация (Insufficient Authentication) • Небезопасное восстановление паролей (Weak Password Recovery Validation) • Предсказуемое значение идентификатора сессии (Credential/Session Prediction) • Подмена содержимого (Content Spoofing) • Межсайтовое выполнение сценариев (Cross-site Scripting, XSS) • Расщепление HTTP-запроса (HTTP Response Splitting) • Атака на функции форматирования строк (Format String Attack) • Внедрение операторов SQL (SQL Injection)
  • 6. Алгоритмы шифрования • Симметричные алгоритмы шифрования (SymmetricAlgorithm) • DES • TripleDES • Rijndael • RC2 • Ассиметричные алгоритмы шифрования (AsymmetricAlgorithm) • RSA • DSA • Хэш алгоритмы шифрования (HashAlgorithm) • MD5 • SHA1 • SHA256 • SHA512
  • 7. Симметричные алгоритмы Hello world Алгоритм симметричного Секретный ключ шифрования Olleh dlrow Алгоритм симметричного Секретный ключ шифрования Hello world
  • 8. Асимметричные алгоритмы Hello world Алгоритм асимметричного Открытый ключ шифрования Olleh dlrow Алгоритм асимметричного Закрытый ключ шифрования Hello world
  • 9. Шифрование в .Net Абстрактный Реализация по умолчанию Длина ключа Максималь алгоритм ная длина ключа DES DESCryptoServiceProvider 64 64 TripleDES TripleDESCryptoServiceProvider 128,192 192 RC2 RC2CryptServiceProvider 40-128 128 Rijndael RijndaelManaged 128,192,256 256 RSA RSACryptoServiceProvider 384–16384 (с увели- 1024 чением на 8 бит) DSA DSACryptoServiceProvider 512–1024 (с увеличе- 1024 нием на 64 бита)
  • 10. Шифрование данных в БД Шифрование с помощью хэш алгоритма Логин Пароль JoePresident AEB0FC9FCEA137CF9BBC594BBC97991C10CD9138 MaryDeveloper DEFAFC9FCEA137C12345694BBC97991C10123456 TomNewHire AEB0FC9FCEA137CF9BBC594BBC97991C10CD9138 Шифрование с помощью хэш алгоритма + SALT Логин Пароль Salt JoePresident 876ABD9FCEA137CF9BBC594 5d8a2052-1f3e-4fe1- BBC97991C10CD9138 9ca4-7c891a980592 MaryDeveloper ADCAD79FCEA137C12345694B 38011b98-3ce5-4f62- BC97991C10987650 a959-415ce93ed7bb TomNewHire BC89129FCEA137CF9BBC594B fd05e0fe-d17c-4d6c- BC97991C10BDCA09 8a55-06445bb5613c
  • 12. Заключение • Достоинства симметричных алгоритмов по сравнению с асимметричными: • скорость (по данным Applied Cryptography — на 3 порядка выше) • простота реализации (за счѐт более простых операций) • меньшая требуемая длина ключа • Недостатки: • сложность управления ключами в большой сети • сложность обмена ключами «Тот, кто владеет информацией, владеет миром»