HTTPS client ESP32
Nesvacil Jiri
nesvacil na posys.eu
Pondělí Únor 20 14:13:02 CET 2023
A/Vlastni prenos nemuze byt bezpecny, pokud nevite, zda se bavite se
spravnym PC/zarizenim. Proto certifikat pro https. U wifi mate treba
passphrase. U ssh mate hnedle na zacatku zda je PC to spravne s kterym
se bavite tj. otisk k odsouhlaseni.
B/Nasleduje domluva zarizeni na mene vykonove narocnem cryptovacim
protokolu. Pro samotnou domluvu se jiz cryprovani pouziva.
C/jmeno a heslo do apek je v treti fazi.
Kdyz pouzijete self signed certifikat, tak jej musite nahrat do vsech
zarizeni, jinak duverovat neznamemu zarizeni je problem. Cizi zarizeni
Vam muze odsouhlasit vse nebo sledovat komunikaci.... Self Certifikat si
musite samozrejme zapamatovatv flash esp32. Pokud pouzijete standardni
tj. ne self signed certifkat, tak ten se vydava na jmeno trjeba pro
domenu www.pokus.cz. Do Vaseho zarizeni uvedete, ze se ma komunikovat s
www.pokus.cz a take musite zde dat korenove certifikaty, stroje, ktere
Vam odsouhlasi, ze se bavite s www.pokus.cz. To samozrejme da zabrat pri
navazovani pres https a pokud chcete odesla par bytu a za chvilku znovu,
tak rezije je obrovska. Navic ty certifikaty se vydavaji pomerne na
kratke obdbi, takze ty industrial krabicky prestanou fungovat, protoze
si neaktualizuji certifikaty a protoze ty protokoly leti tak strasne
rychle dopredu.
Prave z uvedenych duvodu asi vzniknou a budou vznika jine protokoly.
Jirka
Dne 20.02.2023 v 12:27 Admin HWnews napsal(a):
> Dd,
> myslim, ze smesujete dve nesouvisejici veci...tedy jednak bezpecnost
> vlastniho prenosu a potom identifikaci vlastnich komunikujicich stran.
>
> Autorizace klienta muze byt resena na urovni treba jen user/password a
> pokud vse bezi na HTTPS je vse ok...je to bezpecne.
>
> Dalsi moznost je, ze se server prokazuje nejakym samodomo
> certifikatem, kde uz samozrejme nemuzete tusit s kym si klient povida,
> ale samozrejme stale je vlastni komunikace sifrovana a tudiz bezpecna.
> Coz vam treba nemusi vubec vadit v okamziku, kdy treba komunikujete
> bezdratove v ramci sve vlastni site.
>
> RV
>
> Dne 20.02.2023 v 9:30 Nesvacil Jiri napsal(a):
>> Jedine, co je, ze se odsouhlasi, ze protistrana je dany server bez
>> kontroly a prepne se do daneho sifrovani. Tim to neni bezpecne .... ,
>> ale tvari se jako S. Proto nevyhnutelne vetsina low power protokolu
>> vede k tomu, ze si nahrajete nejaky klic(heslo) do zarizeni a do
>> serveru, aby jste tuto identifikaci opustil a zjednodusil cely
>> proces, pote opustite i to httpS a sifrujete aplikacne. Trosku si
>> pomuzete, ale ne moc. Musite to stejne v aplikaci resit, ze klic je
>> jen pro domluveni spojeni a dalsi komunikace je s dalsim domluvenym
>> klicem, aby to nebylo napadnutelne. I v tom procesu overovani i kdyz
>> mate klic to neni jednoduche, logicky nesmite dopustit predani dat
>> takovym zpusobem, aby na druhe strane hrubou silou jednoduse poznali
>> co je ok a co ne. Inspirace neco jako ssh.
>>
>> Jirka
>>
>> Dne 17.02.2023 v 14:31 Jan Půhoný napsal(a):
>>> Dobré odpoledne,
>>>
>>> nevíte někdo o nějakém jednoduchém https klientovi pro ESP32?
>>> Zkoušel jsem něco jako:
>>>
>>> https://randomnerdtutorials.com/esp32-https-requests/
>>> |Serial.println("\nStarting connection to server..."); if
>>> (!client.connect(server, 443)) Serial.println("Connection failed!");
>>> else { Serial.println("Connected to server!"); // Make a HTTP
>>> request: client.println("GET https://www.howsmyssl.com/a/check
>>> HTTP/1.0"); client.println("Host: www.howsmyssl.com
>>> <http://www.howsmyssl.com>"); client.println("Connection: close");
>>> client.println(); while (client.connected()) { String line =
>>> client.readStringUntil('\n'); if (line == "\r") {
>>> Serial.println("headers received"); break; } }|
>>> ||
>>> ale to mi připadá dost složité a nesmyslné takto skládat http
>>> request. Chtěl bych něco jako je vestavěný http client, ale pro https:
>>>
>>> Nějaký takovýto jednoduvhý zápis, ale pro https.
>>> HTTPClient http;
>>> http.setTimeout(3000);// in ms
>>> http.begin(serverNameWeather, root_ca);// HTTPS - certifikát
>>> nadefinován jako globální proměnná
>>> int httpCode = http.GET();
>>>
>>> Nevíte někdo o něčem? Případně nedá se ten HTTPClient nějak
>>> bezpolestně znásilnit i na https? Nezkoušel jste to někdo?
>>>
>>> Díky,
>>>
>>> Honza Půhoný
>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored bywww.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list