Ograniczenie rozprzestrzeniania pliku BIN

Mmof
Posts: 1220
Joined: Sun Jan 26, 2020 5:49 pm
Has thanked: 34 times
Been thanked: 4 times

Post

Nie wiem czy mogę się wypowiedzieć ale Janusze biznesu zawsze byli i będą. Kolega @Duch to jednak legenda na forum oczywiście jest tutaj kilku weteranów których 😉 @QLQ wymienił więc powtarzał się nie będę. Ale z racji dokonań i starzu może jest możliwość zrobić wyjątek z licencją i @Duch będzie mógł zabezpieczyć bin. przed potencjalnym handlem na Alledrogo.Tylko czy faktycznie jest to do zrobienia bo jak to się mówi Polak potrafi 🙂
Sam jestem ciekawy co @Duch wyciągniesz rękawa 😁
Zapraszam na Facebook do wspólnej pomocy mniej zawansowanym użytkownikom Supla.
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplaauraton
lukasz06
Posts: 2542
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

Widzę robi się ciekawie ;)
User avatar
veeroos
Posts: 1080
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

No to ja mam pomysł, można w sofcie sprawdzać adres MAC i tylko będzie chodziło z tym jednym konkretnym, nie wiem czy o takie zabezpieczenie chodzi, ale to lepsze niż nic. Dodatkowo zabezpieczenie fusebitów i jak będzie zły MAC to ESP idzie w bootloopa :D . Nieuczciwy drań ma cegłę nie do odblokowania 😁, jak coś mogę spreparować takie coś, bo fusebity ogarnąłem ustawiam je poprzez firmware, na razie dla C3, ale już zawsze coś 😉, jeśli to będzie mało jest też opcja szyfrowania pliku binarnego przez ESP IDF, nie do końca mi się to jeszcze udało, ale jest taka opcja, wtedy podmiana w pliku MAC będzie średnio możliwa. Link do metody: https://docs.espressif.com/projects/esp ... ption.html.
Jak Ci się uda ogarnąć to to podziel się informacją 😉, bo też mnie boli że softy które robię trafiają na platformy sprzedażowe
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
User avatar
vajera
Posts: 7287
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

veeroos wrote: Wed Feb 11, 2026 1:27 am No to ja mam pomysł, można w sofcie sprawdzać adres MAC i tylko będzie chodziło z tym jednym konkretnym, nie wiem czy o takie zabezpieczenie chodzi, ale to lepsze niż nic. Dodatkowo zabezpieczenie fusebitów i jak będzie zły MAC to ESP idzie w bootloopa :D . Nieuczciwy drań ma cegłę nie do odblokowania 😁, jak coś mogę spreparować takie coś, bo fusebity ogarnąłem ustawiam je poprzez firmware, na razie dla C3, ale już zawsze coś 😉, jeśli to będzie mało jest też opcja szyfrowania pliku binarnego przez ESP IDF, nie do końca mi się to jeszcze udało, ale jest taka opcja, wtedy podmiana w pliku MAC będzie średnio możliwa. Link do metody: https://docs.espressif.com/projects/esp ... ption.html.
Jak Ci się uda ogarnąć to to podziel się informacją 😉, bo też mnie boli że softy które robię trafiają na platformy sprzedażowe
Pisałem o tych rozwiązaniach na samym początku - są bardzo skuteczne pod warunkiem, że autor sam wgra plik binarny do ESP32 i ustawi e-bezpieczniki.
W momencie udostępnienia pliku osobom trzecim stają się one, niestety, bezużyteczne, adres MAC można podmienić w pliku binarnym jakimkolwiek narzędziem do edycji plików.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
veeroos
Posts: 1080
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

vajera wrote: Wed Feb 11, 2026 6:46 am W momencie udostępnienia pliku osobom trzecim stają się one, niestety, bezużyteczne,
I tak i nie, ja w samym kodzie ustawiam bezpieczniki to jeden z nich:

Code: Select all

  if (esp_efuse_write_field_bit(ESP_EFUSE_DIS_DOWNLOAD_MODE) != 0) {                       // Disables UART download (serial flashing) mode
    Serial.println("Error: (LockChip) blowing ESP_EFUSE_DIS_DOWNLOAD_MODE returned an error.");
    fuseErr = true;
  }
Akurat tu deaktywujesz tryb download w ESP32 C3.
Jest tego więcej, nawet możesz zablokować całkowicie UART i nie będziesz miał logów.
Co do szyfrowania pliku to stosujesz z tego co zrozumiałem w instrukcji szyfrowanie AES, nie dokładnie wiem w jaki sposób ma to działać, ale chyba to szyfruje plik bin przed podglądem
Last edited by veeroos on Wed Feb 11, 2026 8:15 am, edited 1 time in total.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
Robinson74
Posts: 404
Joined: Sun Nov 20, 2022 9:37 am
Has thanked: 13 times
Been thanked: 6 times

Post

vajera wrote: Wed Feb 11, 2026 6:46 amadres MAC można podmienić w pliku binarnym jakimkolwiek narzędziem do edycji plików.
Nie jestem elektronikiem, ale podsuwam takie pomysły.
A gdyby taki adres MAC był szyfrowany w pliku bin?
A może jakaś skomplikowana suma kontrolna, żeby prosta edycja pliku uniemożliwiała działanie bin?
User avatar
vajera
Posts: 7287
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

veeroos wrote: Wed Feb 11, 2026 8:11 am
vajera wrote: Wed Feb 11, 2026 6:46 am W momencie udostępnienia pliku osobom trzecim stają się one, niestety, bezużyteczne,
I tak i nie, ja w samym kodzie ustawiam bezpieczniki to jeden z nich:

Code: Select all

  if (esp_efuse_write_field_bit(ESP_EFUSE_DIS_DOWNLOAD_MODE) != 0) {                       // Disables UART download (serial flashing) mode
    Serial.println("Error: (LockChip) blowing ESP_EFUSE_DIS_DOWNLOAD_MODE returned an error.");
    fuseErr = true;
  }
Akurat tu deaktywujesz tryb download w ESP32 C3.
Jest tego więcej, nawet możesz zablokować całkowicie UART i nie będziesz miał logów.
Mając plik binarny znajdziesz wywołanie funkcji esp_efuse_write_field_bit() i zamienisz je na przysłowiowy NOP.
Co do szyfrowania pliku to stosujesz z tego co zrozumiałem w instrukcji szyfrowanie AES, nie dokładnie wiem w jaki sposób ma to działać, ale chyba to szyfruje plik bin przed podglądem
W tym linku, który sam podesłałeś, jest wyraźnie napisane, że wgrywasz plik plaintext a szyfrowanie robi ESP32.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7287
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Robinson74 wrote: Wed Feb 11, 2026 8:13 am
vajera wrote: Wed Feb 11, 2026 6:46 amadres MAC można podmienić w pliku binarnym jakimkolwiek narzędziem do edycji plików.
Nie jestem elektronikiem, ale podsuwam takie pomysły.
A gdyby taki adres MAC był szyfrowany w pliku bin?
A może jakaś skomplikowana suma kontrolna, żeby prosta edycja pliku uniemożliwiała działanie bin?
Każdy z Waszych pomysłów utrudni działanie typowego Janusza biznesu, który często potrafi tylko wgrać plik binarny i wystawić ofertę na portalu aukcjnym.

Natomiast, jeżeli taki Janusz wyczuje interes i temat będzie tego wart, to zainwestuje parę stówek i znajdzie tzw. hackera.

Szyfrowanie MAC - mając dwa pliki binarne szybko znajdziesz lokalizację zaszyfrowanego MACa. Teraz załóżmy, że autor się postarał, zaszyfrował kluczem prywatnym a w pliku jest tylko klucz publiczny. Dwie opcje:

1. podmieniamy klucz publiczny w pliku na swój własny, szyfrujemy MAC własnym prywatnym albo

2. prościej - znajdujemy w kodzie wywołanie funkcji "checkMAC" i wstawiamy tam NOPa.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

Plan zakłada tak:

Udostępniam plik pełny bin do wygrania do ESP32
Klient wgrywający soft odczytuje z procesora swój chipID który będzie zaszyfrowany w AES. Nazwijmy go AESid.
Przekazuje mi AESid swoje procesora.
Ja, na podstawie AESid generuje AESunlock, które należy wprowadzić do procesora.
Klient bez posiadania AESunlock ma program działający z ograniczeniami (np. nie pełna funkcjonalność, ograniczenie czasowe w funkcjonowaniu, losowe generowanie stanów, rebooty - tutaj coś się wymyśli).

Osoba posiadająca prawidłowy klucz AESunlock wprowadzony do procesora ma pełną wersję, z pełnymi funkcjonalnościami, ale tylko dla danego ESP.

Tak jak to widzę.
User avatar
vajera
Posts: 7287
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Duch__ wrote: Wed Feb 11, 2026 8:53 am Plan zakłada tak:

Udostępniam plik pełny bin do wygrania do ESP32
Klient wgrywający soft odczytuje z procesora swój chipID który będzie zaszyfrowany w AES. Nazwijmy go AESid.
Przekazuje mi AESid swoje procesora.
Ja, na podstawie AESid generuje AESunlock, które należy wprowadzić do procesora.
Klient bez posiadania AESunlock ma program działający z ograniczeniami (np. nie pełna funkcjonalność, ograniczenie czasowe w funkcjonowaniu, losowe generowanie stanów, rebooty - tutaj coś się wymyśli).

Osoba posiadająca prawidłowy klucz AESunlock wprowadzony do procesora ma pełną wersję, z pełnymi funkcjonalnościami, ale tylko dla danego ESP.

Tak jak to widzę.
Co masz na myśli pisząc o "wprowadzaniu do procesora"?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277

Return to “Ogólna dyskusja”