Lauko įrenginys, TLS ir VPN: kuri riba ką saugo
Lauko įrenginiui reikia autentifikuoto programos kanalo, o ne vien tinklo prieigos. Nustatykite, kur baigiasi TLS, ir nuspręskite, kas nutinka, kai nepavyksta.
Lauko įrenginys atidaro ryšį su paslauga, o dizaino klausimas kyla kaip pasirinkimas tarp VPN ir TLS. Ši formuluotė klaidinga, nes abu atlieka skirtingą darbą. TLS autentifikuoja programos galinį tašką ir apsaugo pokalbį; o VPN valdo pasiekiamumą ir apsaugo paketus tarp bendraamžių. Sekite ryšį nuo įrenginio į išorę ir kiekvienas sluoksnis turi savo atsakymą.
Jei negalite pasakyti, kur baigiasi TLS, negalite pasakyti, kuo programa iš tikrųjų pasitiki.
Raskite, kur TLS iš tikrųjų baigiasi
Pradėkite nuo įrenginio programos ir sekite ryšį iki proceso, kuris užbaigia rankos paspaudimą. Jei tarpinė paslauga užbaigia TLS prieš pagrindinį kompiuterį, apsaugotas kelias baigiasi tarpinėje paslaugoje. Likusiam šuoliui reikia savo dokumentuotos apsaugos.
Pavadinti tai nuo galo iki galo remiantis prielaida yra būdyrnas, kuriuo dizaino peržiūra patvirtina spragą. Nubrėžkite pabaigos tašką ir pasitikėjimo inkarą toje pačioje schemoje.
TLS perduoda užklausas ir atsakymus abiem kryptimis, todėl dvikryptei programai iš prigimties nereikia VPN vietoj TLS. Priešingai irgi tiesa: diegimui gali dar prireikti VPN kitiems protokolams tame pačiame įrenginyje.
Nuspręskite, ką įrenginys turi autentifikuoti
Sukonfigūruokite serverio tapatybės tikrinimą ir numatytus pasitikėjimo šaknis. Jei kiekvienas įrenginys turi įrodyti savo tapatybę, pasirinkite palaikomą kliento autentifikavimo modelį ir užregistruokite atskirus kredencialus kiekvienam įrenginiui. Bendri kredencialai vieną pavogtą įrenginį paverčia visos laivyno problema.
Prieš siuntimą suplanuokite raktų apsaugą, atnaujinimą, panaikinimą ir atkūrimą. Lauko įrenginys, kurio negalima iš naujo užregistruoti po nepavykusio atnaujinimo, tampa iškvietimu į vietą, ir ši kaina formuoja dizainą labiau nei rankos paspaudimas.
Naudokite palaikomą biblioteką ir galiojančias gaires. Šiuolaikinės TLS diegimo gairės draudžia derėtis dėl TLS 1.0 ir 1.1, o nuoroda į TLSv1 senoje dizaino pastaboje nėra reikalavimas.
Uždarykite, kai rankos paspaudimas nepavyksta
Nepavykęs rankos paspaudimas ar tapatybės patikra neturi tyliai grįžti prie pradinio atviro teksto protokolo. Tas grįžimas yra pažeidžiamumas, kurį TLS darbas turėjo uždaryti. Padarykite nesėkmę matomą įrenginio operatoriui ir paslaugai, o jautrioms operacijoms reikalaukite apsaugoto kanalo. Tada leiskite programos autorizacijai nuspręsti, ką autentifikuotas įrenginys gali daryti.
Apibrėžkite ryšio trukmę, kadravimą, laiko limitus ir kartojimo elgseną kaip sutarties dalį. Šifravimas nepadaro kartojamos komandos saugios, o kartojimas po neaiškios ankstesnės operacijos reikalauja atsakymo programos lygmeniu.
Užrašykite grįžimo taisyklę. „Jis vėl prisijungia be TLS, jei rankos paspaudimas nepavyksta“ yra dizaino sprendimas, ir jis turėtų būti aiškus.
Duokite VPN tik tą darbą, kurį jis gali atlikti
VPN gali apriboti pasiekiamumą ir apsaugoti paketus iki savo bendraamžio. TLS apsaugo programos santykį su pasirinktu galiniu tašku. Jų pabaigos taškai gali skirtis, ir nė vienas neapsaugo galinio taško saugomų duomenų ar administracinės prieigos.
Matuokite rankos paspaudimo kainą, pastovų keitimąsi pranešimais ir prisijungimą iš naujo realiame įrenginyje, o ne manykite, kad vienas mechanizmas greitesnis. Tada išbandykite keturis svarbius atvejus: numatytą pasikeitimą, neteisingą serverio tapatybę, neleistiną įrenginį ir prisijungimą iš naujo po neaiškios operacijos. Užrašykite kiekvieno atvejo rezultatą, įskaitant klaidą, kurią rodo įrenginys.