You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sk/2-farm/lessons/6-keep-your-plant-secure
co-op-translator[bot] 67710c800c
🌐 Update translations via Co-op Translator (#554)
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#554) 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#554) 4 weeks ago
single-board-computer-x509.md 🌐 Update translations via Co-op Translator (#554) 4 weeks ago
wio-terminal-x509.md 🌐 Update translations via Co-op Translator (#554) 4 weeks ago

README.md

Udržujte svoju rastlinu v bezpečí

Prehľad tejto lekcie v sketchnote

Sketchnote od Nitya Narasimhan. Kliknite na obrázok pre väčšiu verziu.

Kvíz pred prednáškou

Kvíz pred prednáškou

Úvod

V posledných lekciách ste vytvorili IoT zariadenie na monitorovanie pôdy a pripojili ho ku cloudu. Ale čo ak by hackeri pracujúci pre konkurenčného farmára získali kontrolu nad vašimi IoT zariadeniami? Čo ak by posielali vysoké hodnoty vlhkosti pôdy, aby vaše rastliny nikdy neboli zalievané, alebo zapli zavlažovací systém, ktorý by bežal neustále, čím by vaše rastliny zahynuli kvôli nadmernému zalievaniu a spôsobili by vám vysoké náklady na vodu?

V tejto lekcii sa naučíte, ako zabezpečiť IoT zariadenia. Keďže ide o poslednú lekciu tohto projektu, naučíte sa tiež, ako vyčistiť cloudové zdroje, čím znížite potenciálne náklady.

V tejto lekcii sa budeme venovať:

🗑 Toto je posledná lekcia v tomto projekte, takže po dokončení tejto lekcie a úlohy nezabudnite vyčistiť svoje cloudové služby. Služby budete potrebovať na dokončenie úlohy, takže sa uistite, že ju najskôr dokončíte.

Ak potrebujete pokyny, pozrite si príručku na vyčistenie projektu.

Prečo je potrebné zabezpečiť IoT zariadenia?

Zabezpečenie IoT zahŕňa zabezpečenie, že iba očakávané zariadenia sa môžu pripojiť k vašej cloudovej IoT službe a posielať jej telemetriu, a že iba vaša cloudová služba môže posielať príkazy vašim zariadeniam. IoT dáta môžu byť tiež osobné, vrátane medicínskych alebo intímnych údajov, takže celá vaša aplikácia musí brať do úvahy bezpečnosť, aby sa zabránilo úniku týchto údajov.

Ak vaša IoT aplikácia nie je zabezpečená, existuje množstvo rizík:

  • Falošné zariadenie by mohlo posielať nesprávne údaje, čo by spôsobilo nesprávnu reakciu vašej aplikácie. Napríklad by mohlo posielať neustále vysoké hodnoty vlhkosti pôdy, čo by znamenalo, že váš zavlažovací systém sa nikdy nezapne a vaše rastliny zahynú kvôli nedostatku vody.
  • Neoprávnení používatelia by mohli čítať údaje z IoT zariadení vrátane osobných alebo kritických obchodných údajov.
  • Hackeri by mohli posielať príkazy na ovládanie zariadenia spôsobom, ktorý by mohol poškodiť zariadenie alebo pripojený hardvér.
  • Pripojením k IoT zariadeniu by hackeri mohli získať prístup k ďalším sieťam a získať prístup k súkromným systémom.
  • Zlomyseľní používatelia by mohli získať osobné údaje a použiť ich na vydieranie.

Toto sú scenáre z reálneho sveta, ktoré sa dejú neustále. Niektoré príklady boli uvedené v predchádzajúcich lekciách, ale tu sú ďalšie:

Urobte si výskum: Vyhľadajte ďalšie príklady hackov IoT a narušení údajov IoT, najmä pri osobných predmetoch, ako sú internetom pripojené zubné kefky alebo váhy. Premýšľajte o dopade týchto hackov na obete alebo zákazníkov.

💁 Bezpečnosť je obrovská téma a táto lekcia sa dotkne iba niektorých základov okolo pripojenia vášho zariadenia ku cloudu. Medzi témy, ktoré nebudú pokryté, patrí monitorovanie zmien údajov počas prenosu, hackovanie zariadení priamo alebo zmeny konfigurácií zariadení. Hackovanie IoT je takou hrozbou, že boli vyvinuté nástroje ako Azure Defender for IoT. Tieto nástroje sú podobné antivírusovým a bezpečnostným nástrojom, ktoré môžete mať na svojom počítači, len sú navrhnuté pre malé, nízko výkonné IoT zariadenia.

Kryptografia

Keď sa zariadenie pripojí k IoT službe, používa ID na identifikáciu. Problém je, že toto ID môže byť skopírované - hacker by mohol nastaviť škodlivé zariadenie, ktoré používa rovnaké ID ako skutočné zariadenie, ale posiela falošné údaje.

Platné aj škodlivé zariadenia môžu používať rovnaké ID na posielanie telemetrie

Riešením je konvertovať posielané údaje do zašifrovanej podoby pomocou hodnoty, ktorá je známa iba zariadeniu a cloudu. Tento proces sa nazýva šifrovanie a hodnota použitá na šifrovanie údajov sa nazýva šifrovací kľúč.

Ak sa použije šifrovanie, budú akceptované iba zašifrované správy, ostatné budú odmietnuté

Cloudová služba potom môže údaje konvertovať späť do čitateľnej podoby pomocou procesu nazývaného dešifrovanie, buď pomocou rovnakého šifrovacieho kľúča, alebo dešifrovacieho kľúča. Ak zašifrovanú správu nie je možné dešifrovať pomocou kľúča, zariadenie bolo hacknuté a správa je odmietnutá.

Technika na šifrovanie a dešifrovanie sa nazýva kryptografia.

Raná kryptografia

Najstaršie typy kryptografie boli substitučné šifry, ktoré siahajú až 3 500 rokov dozadu. Substitučné šifry zahŕňajú nahradenie jedného písmena iným. Napríklad Caesarova šifra zahŕňa posunutie abecedy o definované množstvo, pričom iba odosielateľ zašifrovanej správy a zamýšľaný príjemca vedia, o koľko písmen sa má posunúť.

Vigenèrova šifra to posunula ďalej použitím slov na šifrovanie textu, takže každé písmeno v pôvodnom texte bolo posunuté o iné množstvo, namiesto toho, aby sa vždy posúvalo o rovnaký počet písmen.

Kryptografia sa používala na širokú škálu účelov, ako je ochrana receptu na glazúru hrnčiarov v starovekej Mezopotámii, písanie tajných milostných poznámok v Indii alebo uchovávanie staroegyptských magických zaklínadiel v tajnosti.

Moderná kryptografia

Moderná kryptografia je oveľa pokročilejšia, čo ju robí ťažšie prelomiteľnou ako skoré metódy. Moderná kryptografia používa komplikovanú matematiku na šifrovanie údajov s príliš veľkým počtom možných kľúčov, aby boli útoky hrubou silou možné.

Kryptografia sa používa na množstvo rôznych spôsobov zabezpečenej komunikácie. Ak čítate túto stránku na GitHube, môžete si všimnúť, že adresa webovej stránky začína HTTPS, čo znamená, že komunikácia medzi vaším prehliadačom a webovými servermi GitHubu je zašifrovaná. Ak by niekto dokázal čítať internetovú prevádzku medzi vaším prehliadačom a GitHubom, nemohol by čítať údaje, pretože sú zašifrované. Váš počítač môže dokonca zašifrovať všetky údaje na vašom pevnom disku, takže ak by ho niekto ukradol, nemohol by čítať žiadne vaše údaje bez vášho hesla.

🎓 HTTPS znamená HyperText Transfer Protocol Secure

Bohužiaľ, nie všetko je zabezpečené. Niektoré zariadenia nemajú žiadne zabezpečenie, iné sú zabezpečené pomocou ľahko prelomiteľných kľúčov, alebo dokonca všetky zariadenia rovnakého typu používajú rovnaký kľúč. Existujú prípady veľmi osobných IoT zariadení, ktoré majú všetky rovnaké heslo na pripojenie cez WiFi alebo Bluetooth. Ak sa môžete pripojiť k svojmu vlastnému zariadeniu, môžete sa pripojiť aj k zariadeniu niekoho iného. Po pripojení by ste mohli získať prístup k veľmi súkromným údajom alebo mať kontrolu nad ich zariadením.

💁 Napriek zložitosti modernej kryptografie a tvrdeniam, že prelomenie šifrovania môže trvať miliardy rokov, vzostup kvantového počítania priniesol možnosť prelomenia všetkých známych šifrovaní v veľmi krátkom čase!

Symetrické a asymetrické kľúče

Šifrovanie existuje v dvoch typoch - symetrické a asymetrické.

Symetrické šifrovanie používa rovnaký kľúč na šifrovanie a dešifrovanie údajov. Odosielateľ aj príjemca musia poznať rovnaký kľúč. Toto je najmenej bezpečný typ, pretože kľúč musí byť nejako zdieľaný. Aby odosielateľ mohol poslať zašifrovanú správu príjemcovi, odosielateľ musí najskôr poslať príjemcovi kľúč.

Symetrické šifrovanie používa rovnaký kľúč na šifrovanie a dešifrovanie správy

Ak je kľúč ukradnutý počas prenosu, alebo je odosielateľ alebo príjemca hacknutý a kľúč je nájdený, šifrovanie môže byť prelomené.

Symetrické šifrovanie je bezpečné iba v prípade, že hacker nezíska kľúč - ak áno, môže zachytiť a dešifrovať správu

Asymetrické šifrovanie používa 2 kľúče - šifrovací kľúč a dešifrovací kľúč, označované ako verejný/súkromný pár kľúčov. Verejný kľúč sa používa na šifrovanie správy, ale nemôže byť použitý na jej dešifrovanie, súkromný kľúč sa používa na dešifrovanie správy, ale nemôže byť použitý na jej šifrovanie.

Asymetrické šifrovanie používa iný kľúč na šifrovanie a dešifrovanie. Šifrovací kľúč je poslaný odosielateľom správ, aby mohli zašifrovať správu pred jej odoslaním príjemcovi, ktorý vlastní kľúče

Príjemca zdieľa svoj verejný kľúč a odosielateľ ho používa na šifrovanie správy. Po odoslaní správy ju príjemca dešifruje pomocou svojho súkromného kľúča. Asymetrické šifrovanie je bezpečnejšie, pretože súkromný kľúč je uchovávaný v tajnosti príjemcom a nikdy nie je zdieľaný. Verejný kľúč môže mať ktokoľvek, pretože môže byť použitý iba na šifrovanie správ.

Symetrické šifrovanie je rýchlejšie ako asymetrické šifrovanie, asymetrické je bezpečnejšie. Niektoré systémy používajú oboje - asymetrické šifrovanie na šifrovanie a zdieľanie symetrického kľúča, potom symetrický kľúč na šifrovanie všetkých údajov. Tým sa zabezpečí bezpečnejšie zdieľanie symetrického kľúča medzi odosielateľom a príjemcom a rýchlejšie šifrovanie a dešifrovanie údajov.

Zabezpečenie IoT zariadení

IoT zariadenia môžu byť zabezpečené pomocou symetrického alebo asymetrického šifrovania. Symetrické je jednoduchšie, ale menej bezpečné.

Symetrické kľúče

Keď ste nastavili svoje IoT zariadenie na interakciu s IoT Hubom, použili ste reťazec pripojenia. Príklad reťazca pripojenia je:

HostName=soil-moisture-sensor.azure-devices.net;DeviceId=soil-moisture-sensor;SharedAccessKey=Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0=

Tento reťazec pripojenia pozostáva z troch častí oddelených bodkočiarkami, pričom každá časť je kľúč a hodnota:

Kľúč Hodnota Popis
HostName soil-moisture-sensor.azure-devices.net URL IoT Hubu
DeviceId soil-moisture-sensor Jedinečné ID zariadenia
SharedAccessKey Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0= Symetrický kľúč známy zariadeniu a IoT Hubu

Posledná časť tohto reťazca pripojenia, SharedAccessKey, je symetrický kľúč známy zariadeniu aj IoT Hubu. Tento kľúč sa nikdy neposiela zo zariadenia do cloudu ani z cloudu do zariadenia. Namiesto toho sa používa na šifrovanie údajov, ktoré sú posielané alebo prijímané.

Urobte experiment. Čo si myslíte, že sa stane, ak zmeníte časť SharedAccessKey v reťazci pripojenia pri pripojení vášho IoT zariadenia? Vyskúšajte to.

Keď sa zariadenie prvýkrát pokúsi pripojiť, pošle token zdieľaného prístupu (SAS) pozostávajúci z URL IoT Hubu, časového razítka, kedy prístupový podpis vyprší (zvyčajne 1 deň od aktuálneho času), a podpisu. Tento podpis pozostáva z 💁 Kvôli času vypršania platnosti musí vaše IoT zariadenie poznať presný čas, ktorý sa zvyčajne získava zo servera NTP. Ak čas nie je presný, pripojenie zlyhá. Po pripojení budú všetky údaje odoslané do IoT Hubu zo zariadenia alebo na zariadenie z IoT Hubu šifrované pomocou zdieľaného prístupového kľúča.

Čo si myslíte, že sa stane, ak viaceré zariadenia budú zdieľať rovnaký reťazec pripojenia?

💁 Nie je dobrým bezpečnostným postupom ukladať tento kľúč v kóde. Ak by hacker získal váš zdrojový kód, mohol by získať aj váš kľúč. Navyše, pri vydávaní kódu by ste museli pre každý nový kľúč zariadenia kód znova skompilovať. Lepšie je načítať tento kľúč z hardvérového bezpečnostného modulu čipu na IoT zariadení, ktorý uchováva šifrované hodnoty, ktoré váš kód dokáže prečítať.

Pri učení sa o IoT je často jednoduchšie vložiť kľúč priamo do kódu, ako ste to urobili v predchádzajúcej lekcii, ale musíte zabezpečiť, aby tento kľúč nebol verejne dostupný v systémoch na správu zdrojového kódu.

Zariadenia majú 2 kľúče a 2 zodpovedajúce reťazce pripojenia. To umožňuje rotáciu kľúčov teda prechod z jedného kľúča na druhý, ak by bol prvý kompromitovaný, a následnú regeneráciu prvého kľúča.

X.509 certifikáty

Keď používate asymetrické šifrovanie s párom verejného/súkromného kľúča, musíte poskytnúť svoj verejný kľúč každému, kto vám chce poslať údaje. Problém je, ako môže príjemca vášho kľúča vedieť, že ide skutočne o váš verejný kľúč, a nie o niekoho, kto sa za vás vydáva? Namiesto poskytovania kľúča môžete poskytnúť svoj verejný kľúč v certifikáte, ktorý overila dôveryhodná tretia strana, nazývaná X.509 certifikát.

X.509 certifikáty sú digitálne dokumenty, ktoré obsahujú verejnú časť páru verejného/súkromného kľúča. Zvyčajne ich vydávajú dôveryhodné organizácie nazývané Certifikačné autority (CAs) a digitálne ich podpisujú, aby potvrdili, že kľúč je platný a pochádza od vás. Certifikátu dôverujete a veríte, že verejný kľúč pochádza od osoby, ktorú certifikát uvádza, pretože dôverujete certifikačnej autorite, podobne ako dôverujete pasu alebo vodičskému preukazu, pretože dôverujete krajine, ktorá ich vydala. Certifikáty stoja peniaze, takže si môžete vytvoriť aj „svojpomocne podpísaný“ certifikát, teda certifikát, ktorý si sami vytvoríte a podpíšete, na testovacie účely.

💁 Nikdy by ste nemali používať svojpomocne podpísaný certifikát na produkčné vydanie.

Tieto certifikáty obsahujú množstvo polí, vrátane informácií o tom, od koho pochádza verejný kľúč, podrobností o CA, ktorá ho vydala, ako dlho je platný, a samotného verejného kľúča. Pred použitím certifikátu je dobrým zvykom overiť ho kontrolou, či bol podpísaný pôvodnou CA.

Kompletný zoznam polí v certifikáte si môžete prečítať v Microsoft tutoriáli o pochopení X.509 verejných kľúčových certifikátov.

Pri používaní X.509 certifikátov budú mať odosielateľ aj príjemca svoje vlastné verejné a súkromné kľúče, ako aj X.509 certifikáty obsahujúce verejný kľúč. Následne si vymenia X.509 certifikáty a používajú verejné kľúče na šifrovanie údajov, ktoré posielajú, a svoje súkromné kľúče na dešifrovanie údajov, ktoré prijímajú.

Namiesto zdieľania verejného kľúča môžete zdieľať certifikát. Používateľ certifikátu môže overiť, že pochádza od vás, kontrolou u certifikačnej autority, ktorá ho podpísala.

Jednou z veľkých výhod používania X.509 certifikátov je, že ich možno zdieľať medzi zariadeniami. Môžete vytvoriť jeden certifikát, nahrať ho do IoT Hubu a používať ho pre všetky vaše zariadenia. Každé zariadenie potom potrebuje poznať iba súkromný kľúč na dešifrovanie správ, ktoré prijíma z IoT Hubu.

Certifikát, ktorý vaše zariadenie používa na šifrovanie správ odosielaných do IoT Hubu, je publikovaný spoločnosťou Microsoft. Ide o rovnaký certifikát, ktorý používa mnoho služieb Azure, a niekedy je zabudovaný do SDK.

💁 Pamätajte, že verejný kľúč je práve to verejný. Verejný kľúč Azure možno použiť iba na šifrovanie údajov odosielaných do Azure, nie na ich dešifrovanie, takže ho možno zdieľať kdekoľvek, vrátane zdrojového kódu. Napríklad ho môžete vidieť v zdrojovom kóde Azure IoT C SDK.

Existuje veľa žargónu spojeného s X.509 certifikátmi. Definície niektorých pojmov, na ktoré môžete naraziť, si môžete prečítať v Sprievodcovi žargónom X.509 certifikátov pre laikov.

Generovanie a používanie X.509 certifikátu

Kroky na generovanie X.509 certifikátu sú:

  1. Vytvorte pár verejného/súkromného kľúča. Jedným z najpoužívanejších algoritmov na generovanie páru verejného/súkromného kľúča je RivestShamirAdleman (RSA).

  2. Predložte verejný kľúč s pridruženými údajmi na podpis, buď CA, alebo svojpomocne podpísaný.

Azure CLI obsahuje príkazy na vytvorenie novej identity zariadenia v IoT Hub a automatické generovanie páru verejného/súkromného kľúča a vytvorenie svojpomocne podpísaného certifikátu.

💁 Ak chcete vidieť kroky podrobne, namiesto použitia Azure CLI, môžete si ich pozrieť v návode na používanie OpenSSL na vytvorenie svojpomocne podpísaných certifikátov v dokumentácii Microsoft IoT Hub.

Úloha vytvorte identitu zariadenia pomocou X.509 certifikátu

  1. Spustite nasledujúci príkaz na registráciu novej identity zariadenia, automaticky generujúc kľúče a certifikáty:

    az iot hub device-identity create --device-id soil-moisture-sensor-x509 \
                                      --am x509_thumbprint \
                                      --output-dir . \
                                      --hub-name <hub_name>
    

    Nahraďte <hub_name> názvom, ktorý ste použili pre váš IoT Hub.

    Tento príkaz vytvorí zariadenie s ID soil-moisture-sensor-x509, aby sa odlíšilo od identity zariadenia, ktorú ste vytvorili v predchádzajúcej lekcii. Tento príkaz tiež vytvorí 2 súbory v aktuálnom adresári:

    • soil-moisture-sensor-x509-key.pem tento súbor obsahuje súkromný kľúč zariadenia.
    • soil-moisture-sensor-x509-cert.pem toto je súbor X.509 certifikátu zariadenia.

    Tieto súbory uchovávajte v bezpečí! Súbor so súkromným kľúčom by nemal byť verejne dostupný v systémoch na správu zdrojového kódu.

Úloha použite X.509 certifikát vo vašom zariadení

Prejdite si príslušného sprievodcu na pripojenie vášho IoT zariadenia ku cloudu pomocou X.509 certifikátu:


🚀 Výzva

Existuje viacero spôsobov, ako vytvárať, spravovať a mazať služby Azure, ako sú Resource Groups a IoT Huby. Jedným zo spôsobov je Azure Portal webové rozhranie, ktoré vám poskytuje GUI na správu vašich Azure služieb.

Navštívte portal.azure.com a preskúmajte portál. Skúste vytvoriť IoT Hub pomocou portálu a potom ho odstrániť.

Tip pri vytváraní služieb cez portál nemusíte vytvárať Resource Group vopred, môžete ju vytvoriť počas vytvárania služby. Uistite sa, že ju po dokončení odstránite!

Na portáli Azure nájdete množstvo dokumentácie, tutoriálov a sprievodcov v dokumentácii Azure portálu.

Kvíz po prednáške

Kvíz po prednáške

Prehľad a samoštúdium

Zadanie

Postavte nové IoT zariadenie


Upozornenie:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.