Software And Data Security
986 subscribers
7 photos
34 links
Download Telegram
Завтра белка будет занята Сикорским и Интелом, поэтому нашу пару придется перенести на пятницу, 12:00. В четверг я тоже сделаю объявление.

Мы будем говорить о хранении паролей и авторизации пользователей. Почему большинство делает это неправильно и как делать правильно. И что делать, если вдруг в базе красуется такая штука, как на скрине ниже (это скрин с реального проекта).

До пятницы!
Я уже говорил, что завтра одна из самых интересных тем: как хранить пароли пользователей. С одной стороны, все очень просто, но с другой – каждый год увеличивается количество слитых баз и подобранных паролей. Пароли становятся глобальной проблемой всего IT. Ведь другого надежного и такого же простого способа узнать пользователя практически не существует.

Хотите примерно оценить масштаб? Слитая база из 60 млн. аккаунтов Dropbox (2012 год), 100 млн. аккаунтов VK(2012 год), 150 млн. аккаунтов Adobe (2013 год), 160 млн. от LinkedIn (2016 год), 360 млн. от MySpace (2016 год), 590 млн. от Exploit.In и 700 млн. почтовых ящиков и паролей от спамботов (оба слива в этом году).

Завтра в 12:20 в Белке пара по защите программ и данных: «Как хранить пароли так, чтобы минимизировать ущерб?».

Как пароли подбирают и как их подбирают очень быстро, что такое подбор по словарю, подбор по шаблону, гибридный подбор, что такое радужные таблицы, зачем нужна соль и как ее хранить, какие алгоритмы лучше использовать, стоит ли шифровать пароли (помимо хеширования), почему FaceId и TouchId не лучший вариант для интернета? Приходите, буду рад всех видеть.

Тема серьезная, поэтому ловите серьезную картинку:
Мы недавно говорили о том, что WEP давно был взломан, потому что в нем не было механизма использования nonce. С сегодняшнего дня WPA2 тоже не считается защищённым.

При начальном рукопожатии можно заставить стороны использовать одинаковый nonce повторно. Тогда взлом (расшифровка траффика) практически любого wifi сводится к решению первой лабы, пункта 2. Тем не менее, WPA2 сейчас лучшее, что есть, поэтому не стоит возвращаться к старым протоколам: они ещё больше уязвимы.

Много текста здесь: https://www.krackattacks.com/
Несколько человек у меня спросили, неужели ничего нельзя поделать и теперь надо ждать wpa3? Нет, надо просто накатить самые последние обновления для всех устройств, которые используют wifi. Ошибка, приводящая к такому поведению, находится в имплементации и её можно исправить. Хотя протокол рукопожатия предусматривает именно такое поведение, так что на самом деле это даже не баг, а фича.
На очереди вопрос, который не покидает ваши умы даже во время сна. Шифровать-то шифруем, но для шифрования нужен ключ. Хорошо, ключ можно сделать из пароля с помощью KDF. Но как два человека будут знать один и тот же ключ? Не по скайпу же его кидать. А если передавать зашифрованный ключ, то как обменятся ключами шифрования ключей шифрования? Если вы ничего не поняли, это нормально, потому что никто так не делает.

Завтра в Белке (библиотека, 3 этаж), в 10:30 открытая лекция по защите программ и данных.

Мы начнем рассматривать ассиметричную криптографию. Начнем мы как раз с ответа на вопрос, как двум людям узнать один и тот же секретный ключ так, чтобы его не подсмотрел никто другой. И это без шифрования и по незащищенному каналу, то есть там, где кто-угодно может подсматривать сообщения!
Завтра и только завтра: самый крутой и самый известный в крипте алгоритм RSA на открытой лекции по защете программ и данных. Белка, 10:25. Вы точно не хотите пропустить эту лекцию.

TL;DR Как шифровать одним ключем, а расшифровывать другим?

Мы чуток посмотрели на этот алгоритм в прошлый раз, но этого было явно недостаточно, чтобы окончательно взорвать мозг. В этот раз все будет по-настоящему. RSA и цифровые подписи – это наш последний рубеж на пути к повседневной защите, которая охраняет вашу историю просмотров роликов на ютубе (посредством TLS, который мы рассмотрим чуть позже) и историю ваших транзакций в банке или в Bitcoin (который мы тоже обязательно рассмотрим).

К сожалению, много кто считает, что RSA можно вставить куда-нибудь и алгоритм просто заработает. Это, конечно же, не так, и при использовании в лоб такая защита ломается очень быстро. Поэтому приходите, буду рад всех видеть.

Бонусный вопрос: кто изображен на фото?
А) Иисус в костюме
Б) Гендальф в костюме
В) Изобретатель алгоритма DH в костюме
TL;DR Битки! Блокчейн!

Завтра на открытой лекции у нас особая тема. Особая тем, что вокруг нее крутится огромный хайп. Да, это блокчейн и биткоины. Это первая наша тема, в которой мы уже не будет придумывать новый криптопримитивы, а начнем использовать старые для своих нужд.

Но начнем с того, почему наши знания нельзя использовать как конструктор. Это очень большое заблуждение: «если у меня есть два хорошо защищенных криптопримитива и я буду использовать их вместе, получится защищенная система». Криптография так не работает. Не повторяйте чужие ошибки – используйте уже известные решения – и не создавайте велосипеды. Если в обычном software development это грозит вам весьма быстрым обратным откликом от недовольных сотрудников, то в безопасности – фидбек будет очень небыстрым, но куда более неприятным, иногда на миллионы долларов неприятнее.

Завтра 01.11 в 10:25 жду всех желающих в Белке на открытой лекции по защите программ и данных.

Дисклеймер: никакие вопросы по тому, как получше купить биток, как написать бота для торговли, что выбрать, монеро или эфир, как сделать ICO – рассматриваться не будут. Вообще. Поэтому, если вас интересует финансовая сторона вопроса, лучше сходить на конференции по блокчейнам, их сейчас много. Если вам хочется разобраться, как работают эти технологии почти безо всяких упрощений – добро пожаловать.
Завтра разговор пойдет о куда более распространенной технологии, в отличии от блокчейна. Речь о TLS, с которым рано или поздно сталкивается каждый программист. Чтобы у вас возникало меньше вопросов, зачем надо этот сертификат, почему он так быстро истекает, что это за наборы странных символов, которые надо указывать при настройке https, почему сертификаты подводят в самый ответственный момент, когда они должны были защитить нас, – приходите завтра на открытую лекцию, на которой прозвучат ответы на эти жуткие вопросы, которые не дают вам спокойно уснуть.

Как обычно, 10:25 в белке вас ждет лекция по защите программ и данных. И это будет одна из последних лекций по крипте.

Все знание, которые у вас остались(?) после предыдущих лекций, соединяются вместе, в этом чудесном изобретении, которое позволяет вам лазить по youtube так, что даже ваш провайдер не знает, что вы смотрите. Что такое TLS, и почему эту технологию не смогли сразу придумать нормально, почему каждые несколько лет в ней находят новые уязвимости, зачем вам обязательно нужны сертификаты, которые быстро истекают, и почему вам обязательно нужен ocsp-stapling и must-staple. Все это вы узнаете завтра.
Разбудите меня лет через сто, и спросите, как сейчас ломают сайты. И я отвечу – XSS и sql-инъекции. Михаил Салтыков-Щедрин.

Приключения не заканчиваются. Помните лекцию о паролях? Там были огромные цифры с количеством слитых аккаунтов, среди которых может быть ваш (https://haveibeenpwned.com/). Как же их сливают? Об этом речь и пойдет завтра в Белке в 10:25 на паре по защите программ и данных.

SQL-инъекции у всех на слуху, поэтому особо расхваливать мне здесь нечего. Может быть, вы не знали что бывают и NoSQL-инъекции, и XPath-инъекции и куча других? Или может вы наконец хотите понять, как и почему эти штуки работают? И почему в OWASP Top 10 Application Security Risks инъекции на первом месте в этом году. Ну и главное, как от них защититься. Как приятный бонус – после разбора инъекций намного проще понять, что за звери Buffer Overflow и Remote Code Execution.

Тема завтрашней лекции: Как начать понимать шутки про sql’); DROP TABLE users; --
Как пишутся эксплоиты? Можно ли на самом деле взломать чей-то телефон даже не прикасаясь к нему? Что за странные 0-day и почему иногда (2 недели назад, например) нам надо вдруг срочно обновить Microsoft Word?

Завтра точно-точно в 10:25 в Белке будет проходить лекция по Защите программ и данных. И на ней мы плавно рассмотрим тему бинарных уязвимостей.

Если прошлая лекция по техническим (doh!) причинам была очень короткой, то в этот раз все наоборот: очень сомневаюсь, что я смогу уместить весь материал в одно занятие. Более того: эта тема примерно на порядок сложнее sql-инъекций, поэтому будьте готовы. Вспомните, что такое стек и куча, извлеките из глубин памяти синтаксис С и ассемблера. А когда вы решите, что ну его нафиг, все равно приходите на пару – будет интересно.
Завтра лекции не будет. Но я буду в белке в обычное время. Если вы хотите что-нибудь попробовать из разряда sqli или stack overflow, приходите, у меня будет ноут с интересными заданиями😉

Следующая лекция будет в следующую среду. Будем смотреть на еще более сложные темы, вроде ASLR, stack canary, heap overflow и их использование (например, недавний blueborne, серия уязвимостей, с помощью которых действительно можно взломать телефон на расстоянии).
Завтра заканчиваем тему эксплоитов на нескольких практических примерах. Поговорим еще о других очень распространенных уязвимостях вроде XSS и CSRF.

К сожалению, две лекции я пропустил, поэтому попытаемся вместить как можно больше информации в завтрашнюю лекцию. Будет очень насыщенно, будьте готовы. В 10:25 в Белке – лекция по защите программ и данных, сразу после лекции о Геймдеве в том же месте! Не пропустите.

Для групп ИП-4х – завтра также лучшее время сдать лабы: предпоследняя неделя до сессии 😉
Когда не ходил на первые две лекции😔, и пилишь самый большой в Украине сайт поиска работы: https://www.facebook.com/konstantin82/posts/2061204440576298

Если вы хотите хранить пароли в базе хорошо, почитайте сначала это: https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
​​Открывается новый сезон курса открытых лекций под общей темой «Software And Data Security». Хотя я бы назвал эти лекции «Криптография и все такое для программистов». За прошедшие два года я собрал огромное количество отзывов и постарался изменить курс таким образом, чтобы он воспринимался еще легче, был более насыщен практической частью и оставлял после себя более четкий отпечаток в памяти.

Итак, лекции будут проходить в Белке по субботам (с некоторыми исключениями, о которых позже), чтобы удобно было ходить тем, кто работает. Начало чуть раньше второй пары, ровно в 10:00. Приходить могут все желающие, регистрации нет, свободных мест полно – ну кому может быть интересно безопасно хранить данные пользователей, понимать, как работают HTTPS, сертификаты разработчиков Apple, криптовалюты? Как подбирают вроде как надежные пароли, взламывают вроде как зашифрованные переписки и пишут кейгены для новых игр за 24 часа? А также как плохая крипта разрушила 10000 браков, позволила смотреть DVD на Linux-системах и как та же плохая крипта не дала распространиться вирусу Petya еще в 2016 году?

Канал в телеге: @softwareanddatasecurity, чат: @sadschat

Первая лекция, ознакомительная, пройдет завтра, 22 сентября в 10:00 в Белке. Welcome.
​​После того, как мы развлеклись с простенькими шифрами вроде Цезаря или Виженера (а если вы еще не развлеклись, то первая лабораторная работа здесь: https://goo.gl/fUC6d9 – нет, кодировка не сломалась), займемся более серьезными вещами. Напомню, мы остановились на том, что для шифрования нам очень бы пригодились генераторы случайных чисел. Итак, случайные числа – и почему те генераторы таких чисел, которые вы привыкли использовать, абсолютно непригодны для целей, которые содержат слова «безопасный» или «секретный». Не забудьте посетить эту лекцию, если открываете казино.

Завтра, 26 сентября в 10:25 в Белке. Заранее отвечаю, что вход свободный для всех желающих (и не из КПИ тоже) и бесплатный. Обычно лекции будут проводится по субботам, но эту пару приходится перенести.

Если вы не были на первой лекции – не беда, в начале пары я обязательно кратко напомню, о чем шла речь в прошлую субботу. Тем, кто был, предлагаю пока размять мозги и подумать над такими вопросами:
1. Что, если кто-то будет передавать несколько сообщений зашифрованных одинаковым ключом с помощью одноразового блокнота, а вы их перехватите. Как вам их расшифровать?
2. Представьте простой шифр, который не заменяет символы, а переставляет их местами в зависимости от ключа. Как бы вы отличили такой шифр от тех, что мы смотрели на лекции?