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