Ответы пользователя по тегу Криптография
  • Безопасная система пруфов при открытии лут-боксов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует два механизма подписывания информации.
    - электронные подписи на базе RSA, ECDA
    - HMAC

    Все остальное таковым не является.
    Ответ написан
    Комментировать
  • Почему в https не используется асимметричное шифрование?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Оно используется для проверки сертификатов.
    Ответ написан
    7 комментариев
  • Что на клиенте создается свою пару ключей для https соединения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Когда ты купил (устнановил себе ОС) в ней уже был браузер и в этом браузере прописаны центры сертификации. Это что-то вроде нотариальных контор. Ты им доверяешь по умолчанию. И они по цепочке являются гарантами сертификатов других доменов или других контор. И связка сет доменов + публичный ключ являются реквизитами сертификата. Ты их можешь увидеть в настройках безопасности браузера. И по протоколам TLS/SSL когда ты заходишь на сайт происходит быстрая проверка что интернет домен подтвержден и между вами устанавливается доверительный канал по которому вся инфа от сервера - прогарантирована. Но еще пока не скрыта. Но ввиду того что ассиметричка работает медленно и дорого, на самом деле эта процедура обрамляет другой протокол - создание симметричного канала с временным сеансовым ключом где дальше ты уже работаешь по обычному быстрому симметричному AES например до следующего сеанса обновления ключа. Этот канал уже скрытый от постороеннего наблюдателя. Если запускать openssl с некоторыми
    параметрами то эта процедура рукопожатия будет трассироваться на экран и можно подсмотреть что реально
    происходит у тебя на локалхосте.

    По поводу что там и где устарело. SSL/TLS это просто версии алгоритмов вот этого рукопожатия.
    Ответ написан
  • Где хранить iv, если я могу запомнить только пароль?

    mayton2019
    @mayton2019
    Bigdata Engineer
    IV не надо запоминать. Он может быть частью вашего программного обеспечения.
    Генерируете один раз и кладете в исходники.
    Ответ написан
  • Как создавать свои форматы файлов для криптографии?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существуют стандартные файловые форматы для хранения ЭЦП ключей. Для RSA, PGP и прочее.
    Это текстовые файлы оформленные соотв образом и хранящие внутри себя закодированный
    в Base64 ключ. Это то что касается публичной части криптографии там где важно оповестить
    как можно больше респонентов и где нужна открытость. Я также видел аналогичные XML-форматы
    в эпоху SOAP. Но они как-то не особо популярны. Они скорее часть SOAP чем криптографии.

    В симметричной криптографии задач файловых форматов вобщем-то не стоит. Даже более
    того. Если условные Алиса и Боб решили наладить секретную переписку - то им не нужен
    никакой файловый стандарт. Они - в контексте и будут передавать блочно-шифрованную
    информацию безо всякого формата без хедера и без магических чисел.

    Что еще. Для этой-же симметрички может быть полезен padding. Это специальное оформление
    последнего блока шифро-текста. Чтоб подбить вариативный размер файла под размер кратный
    блоку. Например если вы решили шифровать через AES-256 то вам нужен блок в 256 бит
    и алгоритм паддинга для хвостового блока. Padding известен и его методы описаны в wiki.
    Берите перебирайте. Который совпадет - тот и ваш. Вот. Паддинг - это не файловый формат
    а просто инженерный трюк чтоб уйти от блоков или прийти к блокам.
    Ответ написан
    1 комментарий
  • Как подготовиться к Олимпиаде по криптографии?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если честно я впервые слышу именно про такую олимпиаду. Обычно идут Математика или Информатика. Совершенно не представляю какие задачи могут там (в криптографии) быть.

    Вообще. Есть только один способ готовиться к олимпиаде. Брать задачники и
    прорешивать задачи каждый день. По несколько часов. По программированию
    у меня был один такой задачник образца 2000х годов. Там почти все решения
    задач на Pascal.
    Ответ написан
    Комментировать
  • Как в Python перевести string в bytes, не меняя string?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для хранения байтов в базах данных обычно из заворачивают в строки в кодировках BinHex, Base64.
    Ответ написан
    Комментировать
  • Какой порядок использования криптографических методов и средств для обеспечения секретности, подлинности, цел-ти и неотказуемости от авторства?

    mayton2019
    @mayton2019
    Bigdata Engineer
    для обеспечения секретности, подлинности, цел-ти и неотказуемости от авторства


    1. Секретность обеспечивается симметричным шифрованием (AES, Blowfish, Twofish, GOST-28147-*)
    2. Подлинности, цел-ти и неотказуемости от авторства - тут варианты. Может быть HMAC или Digital Signature. Разница - в тонких нюансах. Может быть неотказуемость - это не свойство "шмяка". Зато шмяк работает быстро и им удобно подписывать мессенджинговые системы и REST. Accимметричка (цифровые сигнатуры) - более дорогая в ресурсах. DS бывают классические - RSA (Ривеста-Шамира-Адельмана) и новые эллиптические (EDSA). У них - сотни версий с разной длиной ключей и прочее. Для правильной работы ЭЦП и сертификатов к сожалению нужен некий довериельный орган который будет централизовано подписывать и раздавать сертификаты.

    Очень часто все средства работают в одном приложении (твой браузер в данный момент использует и проверку подлинности сертификата сайта и траф шифруется симметрично).

    UPD: поправил опечатку. Ассиметричка.
    Ответ написан
    Комментировать
  • Можете опознать хэш функцию?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Похоже на это?

    scala> java.util.UUID.randomUUID().toString().replace("-","")
    val res2: String = 2cf05b81a5694a32ae39c6d3c8d01089
    
    scala> java.util.UUID.randomUUID().toString().replace("-","")
    val res3: String = 0181ca262a2e40e8928c74d234ef71ae
    
    scala> java.util.UUID.randomUUID().toString().replace("-","")
    val res4: String = 90eb83a8216748c5bf6d475d09be41d1
    
    scala> java.util.UUID.randomUUID().toString().replace("-","")
    val res5: String = 94eab5fd1f174f08998bd9e4a12aee9a
    Ответ написан
    1 комментарий
  • Как системы поддерживают сохранность данных в blockchain?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для контроля целостности всего блокчейна используется другая структура данных - Дерево Меркла. Она обычно хранится рядом с блоками и закрепляет контрольные суммы для всех блоков сразу. На вершине дерева стоит главная контрольная сумма которая закрепляет всю известную историю блоков. Поэтому проверить расхождение двух хранилищ очень просто. Достаточно обратиться к дереву. Так-же просто понять где чейн оборвался и очень просто понять как его восстановить и продолжить дальше реплицировать.
    Ответ написан
    Комментировать
  • Почему bcrypt ложно срабатывает?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А какие типы аргументов принимает эта функция?
    bcrypt.compareSync(...)
    Там наверное строки надо толкать. Вообще распечатай на экране чему у тебя равно token1, token2Hashed
    Ответ написан
    5 комментариев
  • Шифрование для защиты от MITM?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Но если, допустим, два человека ведут беседу в текстовом чате, а во время обмена публичными ключами, "по середине" незаметно вторгнется еще один человек (MITM - Man In The Middle)

    Давай в этой схеме я выброшу двух людей. И заменю их на браузер и сайт. Там на самом деле и просиходит такой-же чат. Браузер спрашивает и сайт отвечает. Так вот. Эта схема защищена цифровыми сертификатами. И центром сертификации. Тоесть еще до того как вы начали хоть какой-то обмен работают протоколы установки соединения по TLS/SSL когда браузер может удостоверится что центр сертификации одобрил одного из людей и подтвердил его личность. Это Боб проверяет что Алиса - это действительно Алиса. И также получает ее public key который вобщем-то публичен и тоже является частью сертификата.

    Вот придумай где подпихнуть твоего человека-Кларка посередине.

    Я слышал про "квантовое шифрование", но это уже следующий век.

    Квантового шифрования не существует. Есть алгоритм быстрог разложения длинного числа на множители который является частью протоколов RSA. Но все успехи в науч-попе пока ограничены тем что создали комп очень малой разрядности который и близко не подошел к нужным границам и комп сам представляет собой физ-лабораторию с криогеном и защитой от всеговсего. И нет даже надежды что такой комп вставят в телефон или десктоп. Физика - здесь наука злая и циничная. Более того даже если будут успехи в этой области у КК - то у нас в запасном кармане есть эллиптическая криптография EDSA на которую пока еще ничего не придумано. Поэтому насчет КК и криптографии нам можно вообще не беспокоиться. И нашим детям тоже. И внукам.

    Кстати я вижу что qna.habr для меня использует алгоритм EDSA + SHA256
    Ответ написан
  • Как будет взломан алгоритм с генерацией бесконечного ключа шифрования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно криптоаналитик знает что ищет.

    А что будет если я, (Боб к примеру) прикольнулся и вместо отмысленного сообщения посылаю белый шум? Не известно сколько таких шумных сообщений я посылаю. Алиса предупреждена об этом методе и просто игнорирует первые N сообщений.

    P.S. Число Pi в данном случае не удовлетворяет Керхгофсу. Не параметризируется и его сложно менять на что-то новое в случае компрометации.
    Ответ написан
  • Как в блокчейне постоянно проверяется корректность транзакций?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Невозможная ситуация. Дерево Меркла хранит цепочку хешей от корня до листьев и чтобы что-то изменить безследно - надо менять все дерево до корня.
    Ответ написан
    Комментировать
  • Какой есть алгоритм шифрования с 2 ключами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно брать любой симметричный алгоритм и разделив его ключ на 2 половинки передать его лицам принимающим решение. Получается что-то вроде схемы Шамира. Нужен кворум людей чтобы сделать какое-то важное дествие.

    Если я верно понял вопрос.
    Ответ написан
  • Какие алгоритмы помехоустойчивого кодирования можно использовать для передачи зашифрованных сообщений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно начинают с кодов Хемминга. Они - простые и исправляют 1 бит на блок.

    Вообще, в стеке шифрования, коды восстановления не подмешиваются к шифроблокам, а скорее оборачивают как конверт.
    Ответ написан
    Комментировать
  • Что посоветуете для криптования раздела где установлен Windows?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно понять от кого автор защищается. От лоха - да это прокатит.

    1) Если диск будут смотреть специалисты - они увидят подозрительную разность в физическом объёме диске и доступное место на фейковом диске.

    2) Я пока себе не представляю алгоритм. Симметричная криптография нигде не хранит ключ. Поэтому реализовать этот выбор фейковая-нефейковая мне пока не представляется никак возможным. Просто в случае кривого пароля у вас не поднимется никакая ОС.

    А хранения пароля для проверки - противоречит тому о чем я писал выше.
    Ответ написан
    3 комментария
  • Алгоритмы на хэш функциях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Они так и называются SHA1 - Secure Hash Algorithm 1, MD5 - Message Digest 5.
    Ответ написан
    Комментировать
  • Как зашифровать текст?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько важных поинтов. Во первых у автора - путаница в голове. RSA относится не к шифрующим а к подписывающим и проверяющим алгоритмам. В учебных книжках описывают юзкейс как Алиса передает сообщение Бобу но это просто учебный пример. В реальных протоколах типа SSL работает бутерброд из двух технологий. Первое - это процесс рукопожатия автентификации где выясняется кто есть кто. Здесь может быть RSA. И обмен сеансовыми ключиками для симметрички. И второе - это открытие симметричного шифрованного канала где уже работает другой алгоритм типа AES/Blowfish.

    И второй поинт. Зачем. Если просто разработать систему - то надо брать готовое под Питон. Если надо разбираться - то продуктовые шифры и алгоритмы очень сложны. Можете просидеть много месяцев. Остановитесь на учебных максимом до DES.
    Ответ написан
    Комментировать