[Обсуждение] Добавить топик по криптографии
Предлагаю обсудить идею добавить раздел с вопросами по криптографии и шифрованию.
В последнее время все чаще встречаются задачи которые требуют шифрование данных и проверки подписей с данными. Тема достаточно большая и довольна тяжелая для простого разбора. В инете есть много источников, но большинстов из них которые легко гуглятся довольно поверхостно проходят по теме, предпочитая использовать известные либы и фреймворки.
Не обязательно чтобы вопросы были в рамках одного языка, считаю что тема общая.
Вообще тема полезная, на бекенде она часто может вылазить: JWT токены и другие механизмы авторизации, работа с 3rd party API и тд. Однако я бы сильно глубоко туда не залазил, на самом деле достаточно общие принципы понимать, может быть тех же поверхностных статей и хватило бы :) Либо разбить эту тему на несколько уровней, как с тестированием, чтобы чем глубже в лес, тем сложнее партизане
Ну я думал сделать хотя бы на уровне понимания что такое криптография, для чего нужна, какие алгоритмы существуют, базовый принцип как работают, верификация итд.
Прямо по-шагово описывать алгоритм шифрование я вообще не вижу смысла, оно само по-себе объемистое и сложное да и не сильно полезно будет знать, если только не собираешься писать свою интерпретацию алгоритма.
Я взял в индивидуальный план себе часть по криптографии. После изучения добавлю вопросы, только не понятно куда, что думаете @Znack @kelizarov ? Кстати, если у кого-то есть наработки по вопросам или нужным конкретным темам для изучения, скиньте пожалуйста. Также будет круто если кто-то знает источники хорошие. Я начал курс https://www.coursera.org/learn/crypto CC @olgaklimenko @vkpgwt @Odeyaloleg @evgeny-osipenko @catdarick @vladwix
Я читал пару книжек Шнайера, они обстоятельные, не скучные и по-русски, но оттуда понадобится не весь материал. Вроде бы "Прикладная криптография" и "Практическая криптография".
Полезные темы:
- виды шифров: симметричные и асимметричные, поточные и блочные, длина ключей. Как это влияет на безопасность. Как проходит процесс шифрования, инициализация, какие термины используются. Важно не перепутать, который из двух ключей (открытый, закрытый) можно передавать мейлом и закидывать по SSH.
- известные шифры: AES, RSA, DSA. Как в целом работает RSA.
- как работает цифровая подпись
- хеширование: зачем нужно, как определить правильную длину хеша (атака дней рождения), известные хеши, дайджесты
- SSL-сертификаты, общее представление. Как работает шифрование на сертификатах, цепочки сертификатов, корневые сертификаты, форматы ключей и все такое. Нудная тема, но может понадобиться.
- криптографические генераторы случайных чисел. Не знаю, что тут спрашивать. Надо понимать, что для криптографии не подходит первая попавшаяся функция rand().
- может быть, протоколы SSL/IPSEC и вообще криптография в сетях, смотря насколько это надо. Про это я ничего не знаю.
@stanislav-az мне кажется, точно не раньше, чем на мидла :) Совсем основы банальные, типа как SSH ключами обмениваться и зачем TLS/HTTPS нужны, еще можно на какого-нибудь джуна, но там чисто если с прикладной точки зрения обзорные вопросы закинуть, чтобы за пару вечеров можно было изучить
@vkpgwt крутой коммент, половина грейда считайте уже готова 😄