Arduino и WebSocket SHA1 Base64
- Войдите на сайт для отправки комментариев
Здравствуйте, уже всю голову изломал блин, но нивкакую не получается организовать WebSocket на ардуинке.
Замысел такой, ардуинка UNO считывает показания разных датчиков, и с помощью ESP8266 отправляет по вай фай на андроид.
Я код считывания показаний и отправки сделал, и все работает. На смартфоне сделал html страничку, которая с помощью javascript, раз в секунду обращается к ардуинке а она отправляет данные.
И вроде бы на этом можно отстановиться, но это лишние телодвижения. Хочу сделать на WebSocket чтобы ардуинка сама слала данные на андроид.
А для этого надо на ардуине использовать две библиотеки, а их заставить работать и немогу! это криптомодуль sha1 и base64.
sha https://github.com/Cathedrow/Cryptosuite
base64 https://github.com/adamvr/arduino-base64
помогите пожалуйста!
#include <sha1.h> #include <Base64.h> HardwareSerial & ESPport = Serial; char Stroka[] = "TESTING"; #define BUFFER_SIZE 128 char buffer[BUFFER_SIZE]; int i; int ch_id; int packet_len; void setup() { uint8_t* hash; Sha1.init(); Sha1.print(Stroka); hash = Sha1.result(); ESPport.begin(115200); // ESP8266 clearSerialBuffer(); GetResponse(hash[0], 500); } String GetResponse(String AT_Command, int wait) { String tmpData; ESPport.println(AT_Command); delay(wait); while (ESPport.available() >0 ) { char c = ESPport.read(); tmpData += c; if ( tmpData.indexOf(AT_Command) > -1 ) tmpData = ""; else tmpData.trim(); } return tmpData; }
подниму тему, что нового появилось в вопросе безопасного обмена данными, что использует народ кроме sha1?
подниму тему, что нового появилось в вопросе безопасного обмена данными, что использует народ кроме sha1?
Безопасного от чего и для чего? sha1 это хеш, и к обмену данными отношение имеет весьма отдаленное.
Это да, к обмену прямого отношения не имеет, а вот к целостности и истинности данных видимо да?
Отношение к обмену вполне имеет. По протоколу клиент должен прислать криптограмму в заголовке HTTP запроса в Sec-WebSocket-Key, а сервер должен посчитать по ней SHA1 и еще чемуто там, перекодировать хеш в Base64 и отправить обратно клиенту в ответе в Sec-WebSocket-Accept. Насколько я понимаю это для защиты от кэширующего прокси делалось.
А вообще SHA1 давно уже скомпроментирован, что не мешает его реально использовать т.к. поиск коллизий очень ресурсоемкий. Так чтоб представлять сложность, майнинг биткоина намного проще чем поиск коллизий этих. Хотя по сути своей оба процесса схожи, но при майнинге ищут не полностью совпадающий хеш, а "красивый" - соответствующий некоторым требованиям. Ну и в битке SHA256.
Постановка задачи у ТС бредовая - потому и не выходит каменный цветок. Имея уно и есп8266, он почему-то жаждет формировать сокет на Уно, а есп трактовать лишь как тупой подчиненный модуль.Надо сменить концепцию и позволить Есп заниматься тем, для чего онаи предназначена -сетевым обменом .
я продумываю задачу как защитить обмен с MYSQL
Можно поинтересоваться, ну одним глазком, хотя бы, что за данные такие, которым для защиты MD5 не хватает? ;)))
Не иначе как "щпиёнские страсти"? ЦРУ не дремлет, уже не говоря о МИ6 и МОССАДе, так?
-------------------
Вообще не могу представить данные на контроллере, которым не достаточно обычной CRC для контроля целостности!
Вообще не могу представить данные на контроллере, которым не достаточно обычной CRC для контроля целостности!
про MD5 слышал, но не знаю, есть ли библиотека в составе комплекта ESP, а так важен сам алгоритм задачи, как минимум чтобы не брутфорсили базу, кто и как эту задачу решает?
я продумываю задачу как защитить обмен с MYSQL
Посмотри в отвлеченных темах, я там игрался des-ом.
Отношение к обмену вполне имеет. По протоколу клиент должен прислать криптограмму в заголовке HTTP запроса в Sec-WebSocket-Key, а сервер должен посчитать по ней SHA1 и еще чемуто там, перекодировать хеш в Base64 и отправить обратно клиенту в ответе в Sec-WebSocket-Accept. Насколько я понимаю это для защиты от кэширующего прокси делалось.
Всё написанное не имеет никакого отношения к обмену данными, а имеет отношения к требованиям конкретного протокола. Дурацким и бесполезным, замечу.
я продумываю задачу как защитить обмен с MYSQL
В mysql есть всё что надо из коробки.
я продумываю задачу как защитить обмен с MYSQL
Посмотри в отвлеченных темах, я там игрался des-ом.
Это?
я продумываю задачу как защитить обмен с MYSQL
Посмотри в отвлеченных темах, я там игрался des-ом.
Это?
Да. Для ардуины оно.
А для MySQL поддержка DES уже должна существовать. Нутром чую )))
Да. Для ардуины оно.
А для MySQL поддержка DES уже должна существовать. Нутром чую )))
я вообще не сторонник MYSQL наружу светить, общение только через PHP скрипт
я вообще не сторонник MYSQL наружу светить, общение только через PHP скрипт
Тогда зачем ты пишешь, что тебе нужно защищать mysql?
Да. Для ардуины оно.
А для MySQL поддержка DES уже должна существовать. Нутром чую )))
я вообще не сторонник MYSQL наружу светить, общение только через PHP скрипт
Я кстати тоже. Но если данные для MySQL то и расшифровывать их внутри БД логично. Хотя в РНР тоже возможно DES расшифровать разумеется.
Ысчо рас, прости - не понял. Ты связываешься с MySQL сервером вот-прям с ESP? Клиентской библиотекой на порт 3306? Так? В этом случае, если в библиотеке клиента нет шифрования, придется писать свою ;))).
А если не так, а через что-то/где-то/как-то в подлунном мире, то бери любую криптографию, которая тебе по фасону и масти подходит, и пользуйся в своё удовольствие.
Я кстати тоже. Но если данные для MySQL то и расшифровывать их внутри БД логично. Хотя в РНР тоже возможно DES расшифровать разумеется.
НЕ НАДО НИЧЕГО ИЗОБРЕТАТЬ. Во всех серьезных сетевых протоколах всё уже есть. Надо просто чуть-чуть понимать то, чем пользуешься.
Ысчо рас, прости - не понял. Ты связываешься с MySQL сервером вот-прям с ESP? Клиентской библиотекой на порт 3306? Так? В этом случае, если в библиотеке клиента нет шифрования, придется писать свою ;))).
А если не так, а через что-то/где-то/как-то в подлунном мире, то бери любую криптографию, которая тебе по фасону и масти подходит, и пользуйся в своё удовольствие.
Он жеж ясно написал - "общение только через PHP скрипт". Соответственно на сервере открывать сообщения либо в БД либо в PHP. А на ардуине закрывать своей реализацией. В криптолибе есть все, оттуда и драть себе код. Но в том виде как есть оно тяжеловато, на ПК расчитано. DES я адаптировал, ссылка выше
Он жеж ясно написал - "общение только через PHP скрипт".
вот вот, защитить GET запросы до открытия и общения с базой, об этом и речь, опознание запросов по форме свой-чужой
вот вот, защитить GET запросы до открытия и общения с базой, об этом и речь, опознание запросов по форме свой-чужой
Вот, наонец-то внятно поставлена задача. Всё что надо есть в http из коробки. Авторизация и шифрование. Нужно просто настроить свой сервер.
вот вот, защитить GET запросы до открытия и общения с базой, об этом и речь, опознание запросов по форме свой-чужой
Вот, наонец-то внятно поставлена задача. Всё что надо есть в http из коробки. Авторизация и шифрование. Нужно просто настроить свой сервер.
и уже решена )))