Перейти к содержанию
    

TOG

Свой
  • Постов

    558
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные TOG


  1. Товарищи,

    имеется WI-FI модуль ESP8266. Научился подключаться к точке доступа, но скачать что-то из интернета не получается.

    AT+CWJAP="Keenetic-1","password"       (подключился по WI-FI к точке доступа)
    
    AT+CIPSTART="TCP","ya.ru",80            (создать TCP соединение с ya.ru)
    
    AT+CIPSEND=18                           (готовимся послать 18 байт)
    
    GET /robots.txt HTTP/1.1                (Посылаем запрос на файл robots.txt)

     

    А в ответ только это:

    HTTP/1.1 406 Not acceptable
    Accept-CH: Sec-CH-UA-Platform-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA, Sec-CH-UA-Full-Version-List, Sec-CH-UA-WoW64, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Platform, Sec-CH-UA-Full-Version, Viewport-Width, DPR, Device-Memory, RTT, Downlink, ECT
    Connection: Close
    Content-Length: 0
    NEL: {"report_to": "network-errors", "max_age": 100, "success_fraction": 0.001, "failure_fraction": 0.1}
    Report-To: { "group": "network-errors", "max_age": 100, "endpoints": [{"url": "https://dr.yandex.net/nel", "priority": 1}, {"url": "https://dr2.yandex.net/nel", "priority": 2}]}
    X-Content-Type-Options: nosniff
    X-Yandex-Req-Id: 1725525692040099-15617238874479035269-balancer-l7leveler-kubr-yp-sas-140-BAL

     

    Пробовал и другие сайты. Нашел несколько сайтов, у которых не https соединение, а обычное http(типа без шифрования). Но посмотрев программой wireshark на сетевой трафик я увидел, что даже при http соединении все шифруется TLS.

    Или я что-то не понимаю и делаю не так ?

    У кого-то ESP8266 качает файлы из интернета ?

  2. Товарищи,

    работаю с STM32H743 под FreeRTOS.

    Припух с простейшей задачкой:

    Нужно стереть одну страницу флэш-памяти МК, а потом прочитать ее.

    Включен кэш данных и кэш инструкций.

    ErasePage();        // Стереть страницу флэш-памяти МК
    
    ReadPage(&Data);    // Прочитать

    Если проходить пошагово отладчиком, то страница стирается и потом функция ReadPage читает FFFFFFF... как и должно быть.

    А если отпустить в свободный полет, то функция ReadPage читает старые данные, которые там были до стирания.

    Пробовал "taskENTER_CRITICAL", "taskEXIT_CRITICAL"- не помогло.

    Пробовал "__ISB(), "__DSB(), __DMB()" - всякие барьеры синхронизации. Не очень я понимаю как они работают, но и это мне не помогло.

    Что посоветуете ?

  3. 10 minutes ago, Forger said:

    использую относительный путь в папках через, например, чтобы вернуться на верхний каталог из текущего: "..\"

    Точно. Получилось !

    LOAD ..\..\БУТЛОАДЕР_01\MDK-ARM\БУТЛОАДЕР_01\БУТЛОАДЕР_v01.hex

  4. Товарищи,

    Есть 2 проекта в соседних папках, расположенных тут "C:\ОБЩИЙ_ПУТЬ_ВСЕХ_ПРОЕКТОВ".

    "БУТЛОАДЕР_01"

    "ОСНОВНОЕ_ПРИЛОЖЕНИЕ"

    В настройках "ОСНОВНОГО ПРИЛОЖЕНИЯ" во вкладке Utilities я использую Init файл. Там командой "LOAD" прошивается hex-файл бутлоадера:

    LOAD C:\ОБЩИЙ_ПУТЬ_ВСЕХ_ПРОЕКТОВ\БУТЛОАДЕР_01\MDK-ARM\БУТЛОАДЕР_01\БУТЛОАДЕР_v01.hex

    Нужно как-то заменить этот абсолютный путь до "БУТЛОАДЕР_01" на относительный используя например "Key sequence" или как-то по другому.

    Чтобы при копировании этих проектов на другой комп не нужно было править этот абсолютный путь "C:\ОБЩИЙ_ПУТЬ_ВСЕХ_ПРОЕКТОВ".

    Что посоветуете ?

  5. Нам уже прислали на тестирование отладочную плату. Пока начнем осваивать, а когда выйдут более мощные версии этого МК будем уже знать что к чему.

     

     

    IMG_4758.JPG

  6. 1 hour ago, =AK= said:

    Четвертьволновой диполь на 868 МГц имеет длину всего 81 мм. Для рулетки это маловато.

    Купите векторный анализатор NanoVNA, он очень дешевый. К разъему SMA припаяйте кусок гибкой проволоки, с запасом. Подключите к анализатору и смотрите на получившуюся характеристику антенны. За  счет того что она длиннее чем требуется, она окажется настроена на частоту ниже чем надо. Понемножку кусачками отрезайте от антенны кусочки, пока она не окажется настроенной на 868 МГц.

    Штыревые антенны на 868 МГц, которые мы покупаем в интернете имеют длину ~ 19 см.  И там конструкция не такая простая как Вы предлагаете.  

    (NanoVNA у нас есть).

  7. 8 minutes ago, jcxz said:

    Тогда им не хватит всего времени жизни Вселенной. Даже если будут использовать все видеокарты в мире.  :unknw:

    Вы не читаете что-ли ?

    Я же посчитал сколько времени нужно чтобы перебрать полностью все варианты 10-символьного пароля.

  8. 1 hour ago, jcxz said:

    Тогда ответьте на простой вопрос: Если это такой простой и эффективный способ повышения эффективности, то почему нигде в стандартах он не используется?

    Я думаю потому-что многие админы не понимают на что способна майнинговая ферма при подборе паролей, поэтому постоянно в сеть утекают базы с персональными данными пользователей сайтов.

    Взламывают сайт используя уязвимость ПО, и копируют себе базу данных. Да данные там зашифрованы, а пароли пользователей хранятся в виде хэшей.

    Но даже пароль длиной 10 символов(а обычно они более короткие) взламывается элементарно. Кол-во комбинаций 36^10 = 4e15 комбинаций. Производительность одной видеокарты 300 мегахэшей/c.

    Перебор всех 4e15 комбинаций 10-значного пароля и вычисление его хэша у одной видеокарты займет  12e6 секунд = 140 суток. А для фермы это будут уже минуты.

    Quote

    И почему эти хацкеры знают длину вашего пароля и составляющие его символы

    Перебирают по словарю или по порядку.

  9. Товарищи,

    имеется прибор с гнездом SMA в которое вставляется внешняя штыревая антенна на 868 МГц (типа как от роутера).

    В конце смены антенну каждый раз приходится снимать, чтобы уложить прибор в транспортировочный контейнер и ВЧ-разъем со временем помирает.

    Есть идея сделать совсем гибкую антенну, чтобы ее можно было буквально обернуть вокруг корпуса прибора не снимая ее с ВЧ-разъема. Тогда разъем прослужит дольше... наверное.

    Разъем SMA для этой цели наверно не годится. Думаю нужно что-то более прочное, может N-type ?

    Где-то видел вроде антенны на армейских рациях из рулетки сделаны.

    Посоветуйте где, что посмотреть, почитать как сделать антенну из рулетки или какого-то другого гибкого материала.

  10. 2 hours ago, girts said:

    Тут ещё хороший вопрос - зачем ставить ультракрутой сейфовый замок на парадной двери, если:

    1) сама дверь сделана из гипсокартона,
    2) если окно рядом открыто на распашку

    Ну так давайте и обсудим, что за дверь и окно такое на распашку. Где Вы видите уязвимость этой стратегии ?
    Мне то кажется, что концепция надежная. Настолько надежная, что даже нет смысла делать секрет из алгоритма создания кодов продления. 
    Поделитесь своими соображениями. Для этого форум и существует, так ведь ?

  11. 1 hour ago, jcxz said:

    Всё равно ничего не понятно.... :wacko2:  Зачем миллион раз то хеш считать? Если хацкеры взломали ваш exe-шник, то чем это поможет???

    Думаете, что хацкеры умрут со смеху, увидев расчёт хеша миллион раз? И это обезопасит вас от них?  :biggrin:  

    Я конечно не эксперт в кибербезопасности, но мне кажется, что вычислять хэш 1 раз не годится.

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

    Думаю атаку на сам хэш длиной 32 байта они проводить не станут, потому-что это дело гиблое.

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

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

  12. 19 minutes ago, jcxz said:

    Человек знает зашифрованное сообщение и результат его расшифровки? И хочет угадать пароль, которым шифровали?

    Но какое отношение длительность вычисления хеша от 8-байтной строки имеет к длительности решения этой задачи??? Что мешает вам дополнить эту 8-байтную строку слева или справа константой любой желаемой длины (которую угадыватель не знает) и считать хеш от этого суммарного массива? И тогда угадывателю нужно будет перебирать не все значения вашей ASCII-строки, а все значения SHA256. Что он будет делать до морковкина заговення даже имея миллион видеокарт.

     

    PS: Также я не понял - на кой вы, для генерации ключа AES из пароля, считаете миллион раз SHA256? Почему его нельзя посчитать один раз от "пароль+фиксированная_случайная_константа"? Ведь это будет в ~миллион раз быстрее, а не 6 секунд.

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

  13. 17 hours ago, makc said:

    Почитайте про PBKDF2 - https://ru.m.wikipedia.org/wiki/PBKDF2

    Спасибо, makc. Интересная штука. Попробую освоить. Жаль ее нет в стандартной STM'овской криптобиблиотеке.

    15 hours ago, girts said:

    Так что исходные 8 символов, тем более заглавными - имхо маловато, если использованные алгоритмы "врагу" известны.

    Верхний регистр - это ASCII с 0x41 по 0x5A:  (26)^8 = ... за 14 дней и ваш STM32H743 справится.

    Спасибо, girts. По Вашей формуле получается 26^8 ~ 2e11 (примерно 209 млрд. возможных комбинаций). Но это без учета цифр. Вы же только  латинские буквы посчитали. Если использовать и цифры и буквы, то это уже 36^8 = 3e12 (2821 млрд. комбинаций).

    То есть если видеокарта считает ~ 300 мегахешей в секунду, то:

    За 1 секунду она сможет перебрать всего 300 паролей.

    На 209 млрд. комбинаций уйдет ~ 8000 суток  = 22 года. (подбор пароля только из 8 заглавных латинских букв )

    И ~ 100000 суток = 300 лет на подбор пароля из 8 заглавных латинских букв и цифр.

    Наверно ферма из 10 тыс. видеокарт такую задачку решит и не подавится. 🤑

    9 hours ago, jcxz said:

    А почему так медленно? Получается: 480e6*6/1e6 = ~2880 тактов на 1 хеш. Вроде по документации заявлено, что должно быть ~66 тактов на 512бит. Т.е. - должно быть в ~43 раза быстрее.

    Даже на моём XMC4500, не имеющем аппаратного вычислителя хеша, расчёт SHA256 от 128 бит данных занимает ~6548 тактов (без особой оптимизации). В вашем же МК есть аппаратный вычислитель. Неужто он так медленно работает???  :umnik2:

    PS: Или вы программно считаете? Но - зачем??? На МК, имеющем аппаратный вычислитель....  :wacko2:

    Спасибо, jcxz.

    Программно считаю.

    Да, в RM я вижу, что есть аппаратный вычислитель, но по факту его нет. Хорошо хоть CRC и RNG есть. Аппаратный крипто модуль похоже есть только в STM32H73x.

    ST'шники наверно забыли мануал исправить. 

  14. Товарищи,

    Я сообщаю человеку некое зашифрованное сообщение(AES, длина 16 байт). По условию задачи исходный текст сообщения он знает.

    У него есть сильное желание узнать каким паролем зашифровано это сообщение.

    Допустим я для шифрования использовал пароль 8 символов(цифры и латинские буквы в верхнем регистре) из которого я сделал хэш.

    Хэш я предполагаю делать в цикле примерно так:

    for (i=0; i<1000000; i++)
    {
    SHA256(buf);
    }

    На моем STM32H743 на вычисление этого миллиона хэшей уходит ~6 секунд. (Это предел по времени, больше уже нельзя).

    Вопрос: Как бы понять сколько времени потребуется современному взломщику на подбор такого пароля на каком-нибудь современном железе(майнинговая ферма или чем они пользуются) ?

    Например я прочитал в интернете, что NVIDIA RTX 4090 выдает 290 мега-хэшей в секунду. Много это или мало ?

  15. 13 hours ago, Aleksandr Baranov said:

    image.thumb.png.5982df49c199529113a4805490956e82.png

    Это только включает/отключает прерывание. На саму проверку это никак не влияет.

    Если уж Double Error словил, то возникает исключение Bus Fault. Если обработчик Bus Fault не подключен, то Hard Fault.

  16. 15 hours ago, x893 said:

    запишите (остальные все 0xFFFFFFFF ...)
    1. 0х7FFFFFF
    2. 0x3FFFFFF
    3. 0x1FFFFFF
    4. 0x0FFFFFF
    5. 0x07FFFFF
    ...
    м так до конца блока

    Срабатывает только на 0x7FFFFFFF, 0x3FFFFFFF,

    а на 0x1FFFFFFF уже возникает Double Error Detection и "лавочка закрывается".

    Сдается мне, что эти числа можно как-то рассчитать заранее, чтобы они проходили проверку ECC, либо только вызывали Single Error.

    Quote

    И что - ЕСС нельзя отключить? По идее, должна быть такая возможность, поскольку ECC для внутренней памяти - это далеко не всегда востребовано по-настоящему.

    ST пишет, что отключить нельзя ни фо флэш, ни в RAM, ни в кэш

  17. Товарищи,

    в микроконтроллерах, в частности в STM32 производитель использует ECC(Error Correction Code) для внутренней памяти МК.

    Поэтому записывать во внутренний флэш без предварительного стирания не так просто как в EEPROM.

    При чтении данных, которые были записаны без предварительного стирания могут возникать такие события:

    1. "Single Error Correction" - это когда при чтении флэша система выявила одиночную ошибку, смогла ее исправить, но данные мы все-таки от нее получаем.

    2.  "Double Error Detection" - это когда при чтении флэша система выявила двойную ошибку, это совсем плохо, возникает исключение Bus Error и данные мы не получаем.

    Задача такая:

    Мне нужно сохранять счетчик времени во внутренней флэш памяти, максимально сберегая ее ресурс.

    В STM32H7 запись во внутренний флэш идет блоками по 32 байта. Если например сохранять счетчик каждую минуту записывая по 32  байта, то страницы памяти 128 кБ хватит всего на ~68 часов работы.

    Однако, вот что я обнаружил. (Хотя наверно это уже давно всем известно)

    Первый раз пишем такую последовательность(32 байта):

    1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128

    Пишем поверх нее:

    0, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128

    Пишем поверх нее:

    0, 0, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128

    Пишем поверх нее:

    0, 0, 0, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128

    Пишем поверх нее:

    0, 0, 0, 0, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128

    Пишем поверх нее:

    0, 0, 0, 0, 0, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128

    И все эти 5 раз система обнаруживает только Single Error и позволяет считать данные. 

    Однако дальше я не продвинулся. Дальше всегда у меня возникал Double Error Detection и данные считать уже не получалось.  

    Хотелось бы узнать у форума, как бы вычислить заранее побольше  таких кодов, которые бы распознавались системой как одиночные ошибки, чтобы без стирания уместить в эти 32 байта как можно больше значений счетчика.

    ST пишет, что сей алгоритм основан на коде Хэмминга(SEC-DED называется).

  18. 5 hours ago, Сергей Викт said:

    1. Если резонанс антенны ниже рабочей частоты, то ее можно укоротить, соответственно, если выше, то можно удлинить.

    Спасибо, Сергей Викт.

    Все получилось. Всю партию антенн исправил, где надо укоротил, где надо  удлинил, все теперь хорошо.

    Мне бы какую-нибудь ссылочку на книжку, где про эту конструкцию почитать можно, т.к у нас куплено еще много антенн, которые вообще в другом диапазоне оказались(~300 МГц) и для них придется  эту латунную трубку городить самому.

  19. Товарищи,

    купили на али штыревые антенны на 868 МГц(для LoRA) у разных продавцов, а они оказались все разные.

    Ставим одну в прибор, измеряем КСВ = 1.2 .. 1.5. Нормально.

    Ставим другую, измеряем КСВ = 3.0 .. 4.5

    Можно ли как-то доработать эти антенны ? Пластиковый кожух снимается легко.

    И второй вопрос:

    Если я например в RfSim99 рассчитаю плату согласования импеданса, то есть ли разница куда ее поставить: рядом с антенным гнездом или рядом с радиомодулем ?  Длина кабеля от радиомодуля до антенны ~ 40 см.

    image0.thumb.jpeg.0104c731812a27f0bca03f208dace29d.jpeg

  20. 22 hours ago, std said:

    В аппаратно-программной системе проблема при подаче питания. Требуется отладка.  Но отладчик STM32CubeIDE отваливается при снятии с STM32 питания.  Как быть?

    У Segger'a на сайте есть бесплатный отладчик Ozone, он может подцепиться к уже работающему процессу. Наверно и отладочную информацию можно ему скормить, чтобы все красиво было. Правда нужен J-Link.

  21. 1 hour ago, EdgeAligned said:

    Backup SRAM + батарейка  🙂

    Это не особо надежно. 

    Как я понимаю из более-менее надежных решений выбор такой:

    1. Пишем во внутренний флэш МК STM32H743.  Из плюсов: хорошая защищенность от хацкеров. Из минусов: если криво запишется, то возможно программа перестанет вообще работать. 


    2. Ставим ещё один МК, у которого есть внутренний EEPROM(STM32L051 например). Из плюсов: большой ресурс. Если криво запишется, можно восстановить из резервной области. Из минусов: плохая защищенность от хацкеров. 

     

    Я склоняюсь к варианту 1..

     

  22. 17 minutes ago, jcxz said:

    Вроде ещё в самом начале сами же писали, что "знаете про AES и т.п". А получается, что не знаете. Раз такие глупые вопросы задаёте.

    PPS: Вангую - следующий вопрос будет: "Как писать во FRAM, чтобы не бояться внезапных выключений питания?"  :biggrin:

    А как шифрование EEPROM'ки поможет от снятия ее дампа в начале срока аренды. А в конце срока аренды записи этого дампа обратно в EEPROM ?

    Про FRAM спасибо, подумаю.

  23. Товарищи,

    а как можно надежно вести учет отработанных моточасов ? 

    У нас в приборе несколько МК STM32H743, в коих нет встроенного EEPROM'a, а размер страницы флэш памяти 128 кБ. Пишет во флэш DWORD'ами по 32 байта.

    Почему-то интуитивно очень не хочется записывать время наработки во внутреннюю память МК.

    ЕМНИП, когда возникает какой-то косяк с записью во внутренний флэш(из-за пропадания питания во время записи), то программа может вообще потом не заработать, т.к будет постоянно возникать hardfault(но это не точно).

    Ставить внешний EEPROM мне кажется как-то глупо, т.к. взяв прибор в аренду например на 100 часов ушлый арендатор считает EEPROM и когда до конца аренды остается 1 час перезапишет EEPROM и снова будет 100 часов.

    Я вот думаю может в качестве внешнего EEPROM использовать STM32L051 например ? (У него несколько килобайт встроенного EEPROM и цена всего 150 руб.). 

×
×
  • Создать...