|
|
# మీ మొక్కను భద్రంగా ఉంచుకోండి
|
|
|
|
|
|

|
|
|
|
|
|
> స్కెచ్నోట్ [నిత్య నరసింహన్](https://github.com/nitya) చేత. పెద్ద వర్షన్ కోసం చిత్రం నొక్కండి.
|
|
|
|
|
|
## ఉపాధ్యాయ ముందు క్విజ్
|
|
|
|
|
|
[ఉపాధ్యాయ ముందు క్విజ్](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/19)
|
|
|
|
|
|
## పరిచయం
|
|
|
|
|
|
గత కొన్ని పాఠాలలో మీరు నేల మానిటరింగ్ IoT పరికరాన్ని తయారు చేసి దాన్ని క్లౌడ్తో కనెక్ట్ చేసారు. కానీ ప్రత్యర్థి రైతు కోసం పని చేస్తున్న హ్యాకర్లు మీ IoT పరికరాలను నియంత్రించుకున్నట్లు అయితే ఏమవుతుంది? వారు ఎక్కువ నేల తేమ చదవబడినట్లు పంపిస్తే మీ మొక్కలకు నీరు పెట్టలేదని కలిగిస్తే లేదా నీటి వ్యవస్థను సర్దుబాటు చేసి ఎక్కువ నీరు పోసి మొక్కలను చంపేస్తే, మరియు వాటి వల్ల మీరు నీటి కోసం ఎక్కువ డబ్బు ఖర్చుపడితే ఎలా ఉంటుంది?
|
|
|
|
|
|
ఈ పాఠంలో మీరు IoT పరికరాలను భద్రపరచడం గురించిన విషయం నేర్చుకుంటారు. ఇది ఈ ప్రాజెక్ట్లోని చివరి పాఠం కాబట్టి, మీరు క్లౌడ్ వనరులను శుభ్రం చేసే విధానాన్ని కూడా తెలుసుకుంటారు, తద్వారా ఏదైనా చెల్లింపులు తగ్గుతాయి.
|
|
|
|
|
|
ఈ పాఠంలో కిందివి చర్చిస్తాం:
|
|
|
|
|
|
* [మీరు ఎందుకు IoT పరికరాలను భద్రపరచాలి?](../../../../../2-farm/lessons/6-keep-your-plant-secure)
|
|
|
* [క్రిప్టోగ్రఫీ](../../../../../2-farm/lessons/6-keep-your-plant-secure)
|
|
|
* [మీ IoT పరికరాలను భద్రపరచండి](../../../../../2-farm/lessons/6-keep-your-plant-secure)
|
|
|
* [X.509 సర్టిఫికేట్ను సృష్టించి ఉపయోగించండి](../../../../../2-farm/lessons/6-keep-your-plant-secure)
|
|
|
|
|
|
> 🗑 ఇది ఈ ప్రాజెక్ట్లో చివరి పాఠం కాబట్టి, ఈ పాఠాన్ని మరియు అసైన్మెంట్ను పూర్తిచేసిన తర్వాత మీ క్లౌడ్ సేవలను శుభ్రం చేయడం మర్చిపోకండి. అసైన్మెంట్ పూర్తిచేయడానికి సేవలు అవసరం కనుక ముందుగా అదే పూర్తిచేయండి.
|
|
|
>
|
|
|
> అవసరమైతే [మీ ప్రాజెక్ట్ని శుభ్రం చేసే గైడ్](../../../clean-up.md)ని చూడండి.
|
|
|
|
|
|
## మీరు ఎందుకు IoT పరికరాలను భద్రపరచాలి?
|
|
|
|
|
|
IoT భద్రత అంటే మీ క్లౌడ్ IoT సేవకు కనెక్ట్ కావడం మరియు టెలిమేట్రీ పంపడం కోసం ఆగిపోయిన పరికరాలను మాత్రమే అనుమతించడం, మరియు మీ క్లౌడ్ సేవ మాత్రమే మీ పరికరాలకు ఆదేశాలు పంపగలగటం. IoT డేటా వ్యక్తిగతం కూడా కావచ్చు, వైద్య లేదా సమీప సమాచారాన్ని కలిగి ఉండవచ్చు, కాబట్టి మీ మొత్తం అనువర్తనం భద్రత పై దృష్టి పెట్టాలి, ఇది డేటా లీకవకుండా ఉండటానికి.
|
|
|
|
|
|
మీ IoT అనువర్తనం భద్రత గలదేనని అయితే, అనేక ప్రమాదాలు ఉన్నాయి:
|
|
|
|
|
|
* ఒక నకిలీ పరికరం తప్పు డేటాను పంపించి, అనువర్తనాన్ని తప్పుగా స్పందింపజేయవచ్చు. ఉదాహరణకు, వారు స్థిరంగా ఎక్కువ నేల తేమ చదవబడినట్లు పంపించి, నీటి వ్యవస్థ ఆ<> ్ంటూ ఉండక, మీ మొక్కలు నీరు లేక చనిపోవచ్చు.
|
|
|
* అనధికార యూజర్లు వ్యక్తిగత లేదా వ్యాపారమైన IoT డేటాను చదవవచ్చు.
|
|
|
* హ్యాకర్లు పరికరాన్ని హానికరంగా నియంత్రించేందుకు ఆదేశాలు పంపవచ్చు.
|
|
|
* IoT పరికరానికి కనెక్ట్ కావడం ద్వారా హ్యాకర్లు అదనపు నెట్వర్క్లను యాక్సెస్ చేసుకోవచ్చు.
|
|
|
* దుర్ముఖులు వ్యక్తిగత డేటాను యాక్సెస్ చేసి బ్లాక్మైల్ చేయవచ్చు.
|
|
|
|
|
|
ఇవి నిజమైన ప్రపంచ పరిస్థితులు, మరియు ఎప్పుడూ జరుగుతూనే ఉంటాయి. కొన్ని తుది ఉదాహరణలు ఇంతకు ముందు పాఠాలలో ఇచ్చేలు, కానీ ఇక్కడ మరికొన్ని:
|
|
|
|
|
|
* 2018లో, హ్యాకర్లు మత్స్యాల ట్యాంక్ థర్మోస్టాట్లో ఓపెన్ వైఫై యాక్సెస్ పాయింట్ ఉపయోగించి క్యాసినో నెట్వర్క్లోకి చేరి డేటాను దొంగలుకున్నారు. [The Hacker News - క్యాసినో స్పష్టంగా హ్యాకింగ్](https://thehackernews.com/2018/04/iot-hacking-thermometer.html)
|
|
|
* 2016లో, మిరాయి బొటనెట్ డైన్లపైన DDoS దాడిని మొదలెట్టింది, ఇది ఇంటర్నెట్ యొక్క పెద్ద భాగాలను కింద పడింది. బొటనెట్ IoT పరికరాలను డిఫాల్ట్ యూజర్నేమ్/పాస్వర్డ్తో కలిపి హ్యాకింగ్ చేసింది. [The Guardian - DDoS దాడి](https://www.theguardian.com/technology/2016/oct/26/ddos-attack-dyn-mirai-botnet)
|
|
|
* Spiral Toys వారి CloudPets కలిపి పిల్లల వాయిస్ సందేశాలు లీకయినా, ర్యాంసమ్ వడిగా వారి డేటాబేస్ ఇంటర్నెట్ లో ఉంచారు. [Troy Hunt - CloudPets బేడ్స్ డేటా లీక్](https://www.troyhunt.com/data-from-connected-cloudpets-teddy-bears-leaked-and-ransomed-exposing-kids-voice-messages/).
|
|
|
* Strava పరిగెత్తే సమయాల్లో మీరు ఎక్కడైనా దాటినవారిని గుర్తించి వారి మార్గాలను చూపించింది, దీనితో ఎవరో మీ ఇల్లు ఎక్కడో చూడగలుగుతున్నారు. [Kim Komndo - స్ట్రావా ఫిట్నెస్ ఆప్ ప్రైవసీ](https://www.komando.com/security-privacy/strava-fitness-app-privacy/755349/).
|
|
|
|
|
|
✅ కొంచెం పరిశोधन చేయండి: ఇంకా IoT హ్యాక్స్ మరియు IoT డేటా ఉల్లంఘనలపై వెతకండి, ప్రత్యేకించి ఇంటర్నెట్ కనెక్టెడ్ టూత్బ్రష్లు లేదా స్కేల్స్ లాంటి వ్యక్తిగత వస్తువులతో. ఈ హ్యాక్స్ బాధితులు లేదా కస్టమర్లపై ఏమేమి ప్రభావం చూపవచ్చో ఆలోచించండి.
|
|
|
|
|
|
> 💁 భద్రత ఒక విపులమైన విషయం, ఈ పాఠం కేవలం మీ పరికరాన్ని క్లౌడ్ಗೆ కనెక్ట్ చేసే లోతైన ప్రాథమిక విషయాలను మాత్రమే స్పర్శిస్తుంది. ఇంతకు బయటి అంశాలు – డేటా మార్పుల మానిటరింగ్, పరికరాలను ప్రత్యక్షంగా హ్యాక్ చేయడం, లేదా పరికర కాన్ఫిగరేషన్ల మార్పులను కవర్ చేయబడలేదు. IoT హ్యాకింగ్ సవాలు కావడంతో, [Azure Defender for IoT](https://azure.microsoft.com/services/azure-defender-for-iot/?WT.mc_id=academic-17441-jabenn) వంటి టూల్స్ అభివృద్ధి కాగా ఉన్నాయి. ఇవి సాధారణ కంప్యూటర్ల కోసం ఉన్న యాంటీవైరస్ మరియు ఇతర భద్రతా టూల్స్ లాగా పనిచేస్తాయి, చిన్న, తక్కువ శక్తివంతమైన IoT పరికరాలకు అనుకూలంగా రూపొందించబడ్డాయి.
|
|
|
|
|
|
## క్రిప్టోగ్రఫీ
|
|
|
|
|
|
పరికరం IoT సేవకు కనెక్ట్ అయ్యేప్పుడు, అది ID తో తనను గుర్తిస్తుంది. సమస్య ఏమంటే, ఈ ID క్లోన్ చేయబడవచ్చు - హ్యాకర్ ఒక దుష్టమైన పరికరాన్ని నిజమైన పరికరం IDతో సెట్ చేసి బొగస్ డేటాను పంపవచ్చు.
|
|
|
|
|
|

|
|
|
|
|
|
దీని పరిష్కారం డేటాను scrambled ఫార్మాట్గా మార్చడం, పరికరం మరియు క్లౌడ్ మాత్రమే తెలిసిన విలువ ఉపయోగించి. దీనిని *ఎన్క్రిప్షన్* అంటారు, మరియు డేటా ఎన్క్రిప్ట్ చేసే విలువను *ఎన్క్రిప్షన్ కీ* అంటారు.
|
|
|
|
|
|

|
|
|
|
|
|
క్లౌడ్ సేవ డేటాను తిరిగి చదవగల ఫార్మాట్కు మార్చుతుంది, దీనిని *డీక్రిప్షన్* అంటారు, ఇదే కీ లేదా *డీక్రిప్షన్ కీ* ఉపయోగించి. ఎన్క్రిప్ట్ ప్రతిస్పందన డీక్రిప్ట్ చేయలేకపోతే, పరికరం హ్యాకింగ్ అయిపోయింది అని భావించి సందేశాన్ని తిరస్కరిస్తుంది.
|
|
|
|
|
|
ఈ ఎన్క్రిప్షన్ మరియు డీక్రిప్షన్ సాంకేతికతను *క్రిప్టోగ్రఫీ* అంటారు.
|
|
|
|
|
|
### ప్రారంభ క్రిప్టోగ్రఫీ
|
|
|
|
|
|
ముందు కాలంలో substitution ciphers 3500 సంవత్సరాల క్రితం నుండీ వాడారు. substitution ciphers ఒక్క అక్షరాన్ని మరొక అక్షరంతో మార్చడం. ఉదా: [Caesar cipher](https://wikipedia.org/wiki/Caesar_cipher) లో అక్షరమాల వ్యవధిని తీసుకుని ఎన్ని అక్షరాలను సర్దాల్సినదనే పక్కన తెలిస్తారు, పంపిన మరియు అందుకునే వారికి మాత్రమే.
|
|
|
|
|
|
[Vigenère cipher](https://wikipedia.org/wiki/Vigenère_cipher) లో పదాలను ఉపయోగించి ప్రతి అక్షరానికి వేరువేరు శిఫ్ట్ వాల్యూలు ఇవ్వడం జరిగింది.
|
|
|
|
|
|
క్రిప్టోగ్రఫీ అనేక ప్రయోజనాలకు వాడింది, జోడింపు వరకు మాగ్జినరీ అరబిక్ మధురంగా ఆవిష్కరణ పొందినది.
|
|
|
|
|
|
### ఆధునిక క్రిప్టోగ్రఫీ
|
|
|
|
|
|
ఆధునిక క్రిప్టోగ్రఫీ ఎక్కువ క్లిష్టమైనది, దీన్ని విరగదీయడం చాలా కష్టం. ఇది గణిత శాస్త్రం ఆధారంగా, బలమైన కీలు ఉపయోగించి లోతుగా డేటాను ఎన్క్రిప్ట్ చేస్తుంది.
|
|
|
|
|
|
బెహద్ రకాలుగా భద్రతా సమాచార మార్పిడి కోసం వాడుతున్నది. మీరు GitHub పేజీ చూస్తున్నప్పుడు URL *HTTPS* తో మొదలవుతుంది, అంటే బ్రౌజర్ మరియు GitHub వెబ్సర్వర్ల మధ్య ఆ సమాచార మార్పిడి ఎన్క్రిప్ట్ అయింది. ఎవరు ఆ ట్రాఫిక్ చదువగలరని లేదు. మీ కంప్యూటర్ హార్డ్ డ్రైవ్ డేటా కూడా పాస్వర్డ్ ఉపయోగించి అనే విధంగా ఎన్క్రిప్ట్ చేసుకొని ఉంటే దొంగిలిస్తే కూడా చదవరు.
|
|
|
|
|
|
> 🎓 HTTPS అంటే HyperText Transfer Protocol **Secure**
|
|
|
|
|
|
దురదృష్టకరం గా, అన్ని పరికరాలు భద్రత కలిగి ఉండవు. కొంత Devices ఎల్లప్పుడూ భద్రితం కాకుండా, బలహీన కీ తో భద్రత కలిగి ఉంటాయి, లేదా ఒకే కీని పరికరాలందరికి కూడా ఉపయోగిస్తారు. చాలా వ్యక్తిగత IoT పరికరాలు కూడా WiFi లేదా Bluetooth ద్వారా ఒకే పాస్వర్డ్ తో కనెక్ట్ అవుతుంటాయి. మీరు మీ పరికరం కనెక్ట్ అయితే, మరొకరికి కూడా కనెక్ట్ కావచ్చు. కనెక్ట్ అయ్యాక వారికి సంబంధించిన వ్యక్తిగత డేటా యాక్సెస్ కావచ్చు లేదా పరికరం పై నియంత్రణ కలగొనవచ్చు.
|
|
|
|
|
|
> 💁 ఆధునిక క్రిప్టోగ్రఫీ కొంత క్లిష్టత కలిగినప్పటికీ, క్వాంటం కంప్యూటింగ్ వృద్ధితో ప్రస్తుతం ఉన్న అన్ని ఎన్క్రిప్షన్ను చాలా తక్కువ సమయంలో పగిలించగల అవకాశముంది!
|
|
|
|
|
|
### సింబేట్రిక్ మరియు అసిమెట్రిక్ కీలు
|
|
|
|
|
|
ఎన్క్రిప్షన్ రెండు రకాలును ఉంటుంది - సింబేట్రిక్ మరియు అసిమెట్రిక్.
|
|
|
|
|
|
**సింబేట్రిక్** ఎన్క్రిప్షన్ డేటాను ఎన్క్రిప్ట్ మరియు డీక్రిప్ట్ చేయడానికి ఒకే కీని ఉపయోగిస్తుంది. పంపేవారు మరియు అందుకునేవారు ఇద్దరూ అదే కీ తెలుసుకోవాలి. ఇది తక్కువ భద్రత కలిగినది, ఎందుకంటే కీని పంచుకోవాలి. సందేశాన్ని పంపాలంటే ముందుగా కీ పంపవలసి ఉంటుంది.
|
|
|
|
|
|

|
|
|
|
|
|
మధ్యలో కీ దొంగిలిస్తే, లేదా పంపేవారు లేదా అందుకునేవారు హ్యాక్ అయితే ఆ కీ దొర్లితే ఎన్క్రిప్షన్ విరిగిపోవచ్చు.
|
|
|
|
|
|

|
|
|
|
|
|
**అసిమెట్రిక్** ఎన్క్రిప్షన్ రెండు కీలు - ఒకటి ఎన్క్రిప్షన్ కీ మరియు రెండో డీక్రిప్షన్ కీ, వీటిని పబ్లిక్/ప్రైవేట్ కీలు అంటారు. పబ్లిక్ కీ ద్వారా సందేశాన్ని ఎన్క్రిప్ట్ చేస్తారు, కానీ డీక్రిప్ట్ చేయలేరు, ప్రైవేట్ కీ డీక్రిప్ట్ చేస్తుంది కానీ ఎన్క్రిప్ట్ చేయదు.
|
|
|
|
|
|

|
|
|
|
|
|
అందుకునేవారు తమ పబ్లిక్ కీని పంచుకుంటారు, మరియు పంపేవారు ఆ కీ ఉపయోగించి సందేశాన్ని ఎన్క్రిప్ట్ చేస్తారు. అందుకున్న తర్వాత, ప్రైవేట్ కీతో డీక్రిప్ట్ చేస్తారు. అసిమెట్రిక్ ఎన్క్రిప్షన్ ఎక్కువ భద్రత కలిగి ఉంటుంది, ప్రైవేట్ కీ అందుకుంటున్నవారు గోప్యంగా ఉంచుతారు మరియు పంచుకోరు. ఆపుడు ఎవరికైనా పబ్లిక్ కీ ఇవ్వవచ్చు.
|
|
|
|
|
|
సింబేట్రిక్ ఎన్క్రిప్షన్ వేగంగా ఉంటుంది, అసిమెట్రిక్ ఎక్కువ భద్రత కలిగినది. కొన్ని దృశ్యాల్లో రెండు విధానాలు కలిపి వాడతారు - ఒకటి అసిమెట్రిక్ ఎన్క్రిప్షన్ ద్వారా సింబేట్రిక్ కీని పంచుకోవడం, ఆ తర్వాత ఆ సింబేట్రిక్ కీని ఉపయోగించి డేటాను ఎన్క్రిప్ట్ చేసే విధానం. ఇది సురక్షితంగా కీ పంచుకోవడానికి మరియు వేగంగా డేటాను ఎన్క్రిప్ట్/డీక్రిప్ట్ చేయడానికి సహాయపడుతుంది.
|
|
|
|
|
|
## మీ IoT పరికరాలను భద్రపరచండి
|
|
|
|
|
|
IoT పరికరాలను సింబేట్రిక్ లేదా అసిమెట్రిక్ ఎన్క్రిప్షన్ ఉపయోగించి భద్రపర్చవచ్చు. సింబేట్రిక్ సులభమైనది కానీ తక్కువ భద్రత కలిగినది.
|
|
|
|
|
|
### సింబేట్రిక్ కీలు
|
|
|
|
|
|
మీరు IoT Hubతో మీ IoT పరికరాన్ని కనెక్ట్ చేసేటప్పుడు కనెక్షన్ స్ట్రింగ్ ఉపయోగించారు. ఒక ఉదాహరణ కనెక్షన్ స్ట్రింగ్:
|
|
|
|
|
|
```output
|
|
|
HostName=soil-moisture-sensor.azure-devices.net;DeviceId=soil-moisture-sensor;SharedAccessKey=Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0=
|
|
|
```
|
|
|
|
|
|
ఈ కనెక్షన్ స్ట్రింగ్ మూడు భాగాలుగా ఉంటుంది, సెమికాలన్లతో విడగొట్టబడే, ప్రతి భాగం కీ మరియు విలువ కలిగినది:
|
|
|
|
|
|
| కీ | విలువ | వివరణ |
|
|
|
| --- | ----- | ----------- |
|
|
|
| HostName | `soil-moisture-sensor.azure-devices.net` | IoT Hub యొక్క URL |
|
|
|
| DeviceId | `soil-moisture-sensor` | పరికరానికి ప్రత్యేక ID |
|
|
|
| SharedAccessKey | `Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0=` | పరికరానికి మరియు IoT Hubకి తెలిసిన సింబేట్రిక్ కీ |
|
|
|
|
|
|
ఈ కనెక్షన్ స్ట్రింగ్ చివరి భాగం, `SharedAccessKey`, పరికరం మరియు IoT Hub రెండూ తెలిసిన సింబేట్రిక్ కీ. ఈ కీ పరికరం నుండి క్లౌడ్కు లేదా క్లౌడ్ నుండి పరికరానికి ఎప్పుడూ పంపబడదు. దాని స్థానం డేటా ఎన్క్రిప్ట్ మరియు డీక్రిప్ట్ చేసే కి మాత్రమే వాడుతుంది.
|
|
|
|
|
|
✅ ప్రయోగం చేయండి. మీరు కన్రీక్ట్ చేసే సమయంలో మీ కనెక్షన్ స్ట్రింగ్ యొక్క `SharedAccessKey` భాగాన్ని మార్చితే ఏమవుతుంది అనుకుంటున్నారా? ప్రయత్నించండి.
|
|
|
|
|
|
పరికరం మొదట కనెక్ట్ వల్ల ఒక షేర్ చేసిన యాక్సెస్ సిగ్నేచర్ (SAS) టోకెన్ అందిస్తుంది, ఇది IoT Hub URL, ఒక టైమ్ స్టాంప్ (సాధారణంగా 1 రోజు తరువాత) మరియు ఒక సిగ్నేచర్ కలిగి ఉంటుంది. ఈ సిగ్నేచర్ URL మరియు గడువు సమయాన్ని connection string లోని SharedAccessKey తో ఎన్క్రిప్ట్ చేస్తుంది.
|
|
|
|
|
|
IoT Hub ఆ సిగ్నేచర్ను డీక్రిప్ట్ చేసి, డీక్రిప్ట్ అయిన విలువ URL మరియు గడువు సమయంతో సరిపోతే పరికరాన్ని కనెక్ట్ అవ్వడానికి అనుమతిస్తుంది. ప్రస్తుతం సమయం గడువులో ఉండటం కూడా తనిఖీ చేస్తుంది, తద్వారా దుష్ట పరికరం నిజమైన పరికరం SAS టోకెన్ని ఉపయోగించకుండా ఉంటుంది.
|
|
|
|
|
|
ఇది పంపేవారు సరైన పరికరం అని నిర్ధారించుకునే బాగుబడిన పద్ధతి. ఒకటే డీక్రిప్ట్ మరియు ఎన్క్రిప్ట్ డేటా పంపించడం ద్వారా, సర్వర్ ఎన్క్రిప్ట్ డేటాను డీక్రిప్ట్ చేసినప్పుడు, డీక్రిప్ట్ చేసిన డేటా సరిపోతే మాత్రమే పరికరం దిద్దుబాటు అనుమతిస్తుంది. ఇది ఉంటే, పంపేవారు మరియు అందుకునేవారు ఇద్దరికీ ఒకే సింబేట్రిక్ ఎన్క్రిప్షన్ కీ ఉంది.
|
|
|
> 💁 గడువు సమయం కారణంగా, మీ IoT డివైస్ సరైన సమయాన్ని తెలుసుకోవాలి, సాధారణంగా [NTP](https://wikipedia.org/wiki/Network_Time_Protocol) సర్వర్ నుండి చదివేవారు. సమయం సరిగ్గా లేకపోతే, కనెక్షన్ విఫలమవుతుంది.
|
|
|
|
|
|
కనెక్షన్ తరువాత, డివైస్ నుండి IoT హబ్కు పంపబడే అన్ని డేటా, లేదా IoT హబ్ నుండి డివైస్కు పంపబడే డేటా, షేర్డ్ యాక్సెస్ కీతో గుప్తీకరించబడుతుంది.
|
|
|
|
|
|
✅ మీరు ఏమి అనుకుంటారు, ఒకే కనెక్షన్ స్ట్రింగ్ను పలు డివైసులు ఉపయోగిస్తే ఏమి జరుగుతుంది?
|
|
|
|
|
|
> 💁 ఈ కీని కోడ్లో నిల్వ చేయడం చెడు భద్రతా పద్ధతి. ఒక హ్యాకర్ మీ సోర్స్ కోడ్ను పొందితే, వారు మీ కీని పొందగలరు. ప్రతి డివైస్ కోసం నవీకరించిన కీతో మళ్ళీ కంపైల్ చేయడం కూడా కఠినం. ఈ కీని కోడ్ ద్వారా చదవగలిగే గుప్త విలువలను నిల్వ చేసే హార్డ్వేర్ భద్రతా మాడ్యూల్ — అంటే IoT డివైస్ మీద ఉన్న చిప్ నుండి లోడ్ చేసుకోవడం మంచిది.
|
|
|
>
|
|
|
> IoT నేర్చుకునేప్పుడు, మీరు చేసినట్లు కోడ్లో కీని పెట్టడం సులభంగా ఉంటుంది, కానీ ఈ కీని పబ్లిక్ సోర్స్ కోడ్ కంట్రోల్కు చేర్చకూడదు అని నిర్ధారించుకోవాలి.
|
|
|
|
|
|
డివైసులకు 2 కీలు మరియు 2 సంబంధిత కనెక్షన్ స్ట్రింగ్స్ ఉంటాయి. ఇది కీలు తిరగబడటం (key rotation) అనడానికి అనుమతిస్తుంది— అంటే, ఒక కీ దొంగిలించబడితే మరొక కీకి మారటం, మొదటి కీ మళ్లీ జనరేట్ చేయటం.
|
|
|
|
|
|
### X.509 సర్టిఫికేట్లు
|
|
|
|
|
|
మీరు అసిమ్మెట్రిక్ గుప్తీకరణను పబ్లిక్/ప్రైవేట్ కీ జతతో ఉపయోగిస్తున్నప్పుడు, మీరు మీ పబ్లిక్ కీని డేటాను పంపదలచిన ఎవరికైనా ఇవ్వాలి. సమస్య ఏమిటంటే, మీ పబ్లిక్ కీ అందుబాటులో ఉన్న వ్యక్తికి అది నిజమైన మీ పబ్లిక్ కీనేనా, లేదా ఎవరో వేరొకరు మీరు అని ప్రదర్శిస్తున్నారా అన్నది ఎలా ధృవీకరించాలి? కీని ఇవ్వడం బదులు, మీరు మీ పబ్లిక్ కీని ఒక సర్టిఫికేట్ లో ఉంచవచ్చు, అది X.509 సర్టిఫికేట్ అని పిలవబడుతుంది, అది నమ్మకమైన మూడవ వ్యక్తి ద్వారా ధృవీకరించబడినది.
|
|
|
|
|
|
X.509 సర్టిఫికేట్లు డిజిటల్ డాక్యుమెంట్లు, ఇవి పబ్లిక్/ప్రైవేట్ కీ జతలోని పబ్లిక్ కీ భాగాన్ని కలిగి ఉంటాయి. వీటిని సాధారణంగా [సర్టిఫికేట్ అధికారాలు](https://wikipedia.org/wiki/Certificate_authority) (CAs) అని పిలవబడే అనేక నమ్మకమైన సంస్థలు జారీ చేస్తాయి, మరియు CA ద్వారా డిజిటల్ సంతకం చేయబడి, కీ సరైనది మరియు మీ నుండి వచ్చిందనే గుర్తింపును ఇస్తుంది. మీరు సర్టిఫికేట్ మరియు అది సూచించే వ్యక్తి నుండి పబ్లిక్ కీ నమ్ముతారు, ఎందుకంటే మీరు ఆ CA ని నమ్ముతారు, మీరు పాస్పోర్ట్ లేదా డ్రైవింగ్ లైసెన్స్ నమ్ముతారు అన్న విధంగానే. సర్టిఫికేట్లకు ఖర్చు ఉంటుంది, కాబట్టి మీరు 'సెల్ఫ్-సైన్' చేయవచ్చు, అంటే స్వయంగా సర్టిఫికేట్ తయారు చేసుకొని, పదిమంది ప్రయోగాల కోసం ఉపయోగించవచ్చు.
|
|
|
|
|
|
> 💁 ఉత్పత్తి విడుదల కోసం స్వయంసంతకం చేసిన సర్టిఫికేట్ను ఎప్పుడూ ఉపయోగించకవద్దు.
|
|
|
|
|
|
ఈ సర్టిఫికేట్లు అనేక ఫీల్డ్స్ కలిగి ఉంటాయి, అవి పబ్లిక్ కీ ఎక్కడ నుండి వచ్చింది, జారీ చేసిన CA వివరాలు, ఎంత కాలం వరకూ చెల్లుబాటు అవుతుంది, మరియు పబ్లిక్ కీ స్వయంగా. సర్టిఫికేట్ ఉపయోగించేముందు, అది అసలు CA ద్వారా సంతకం చేయబడిందో లేదో పరిశీలించి ధృవీకరించడం మంచి ఆచారం.
|
|
|
|
|
|
✅ మీరు సర్టిఫికేట్ లోని ఫీల్డ్స్ పూర్తి జాబితాను [Microsoft Understanding X.509 Public Key Certificates tutorial](https://docs.microsoft.com/azure/iot-hub/tutorial-x509-certificates?WT.mc_id=academic-17441-jabenn#certificate-fields) లో చదవవచ్చు.
|
|
|
|
|
|
X.509 సర్టిఫికేట్లు వాడేటప్పుడు, పంపే వ్యక్తికి మరియు స్వీకరించే వ్యక్తికి వారి సొంత పబ్లిక్ మరియు ప్రైవేట్ కీలు ఉంటాయి, అలాగే పబ్లిక్ కీని కలిగిన X.509 సర్టిఫికేట్లు గూడా ఉంటాయి. వారు ఆపై ఒకరికొకరు X.509 సర్టిఫికేట్లు మారుస్తారు, ఒకరితో డేటాను ఎన్క్రిప్ట్ చేయడానికి కోసం పబ్లిక్ కీలు వాడతారు, మరియు స్వంత ప్రైవేట్ కీతో స్వీకరించిన డేటాను డీక్రిప్ట్ చేస్తారు.
|
|
|
|
|
|

|
|
|
|
|
|
X.509 సర్టిఫికేట్లు ఉపయోగించే ఒక ప్రధాన లాభం ఏమిటంటే వాటిని పలు డివైసుల మధ్య పంచుకోవచ్చు. మీరు ఒక సర్టిఫికేట్ సృష్టించి, దాన్ని IoT హబ్లో అప్లోడ్ చేసి, అన్ని డివైసుల కోసం ఉపయోగించవచ్చు. ప్రతీ డివైస్ IoT హబ్ నుండి స్వీకరించే సందేశాలను డీక్రిప్ట్ చేయడానికి ప్రైవేట్ కీ మాత్రమే తెలుసుకోవాలి.
|
|
|
|
|
|
మీ డివైస్ IoT హబ్ కు పంపే సందేశాలను గుప్తీకరించడానికి ఉపయోగించే సర్టిఫికేట్ మైక్రోసాఫ్ట్ ద్వారా ప్రచురించబడినది. ఇది అనేక Azure సర్వీసులు ఉపయోగించే అదే సర్టిఫికేట్, మరియు SDKలలో కూడా కొన్నిసార్లు బిల్ట్-ఇన్ గా ఉంటుంది.
|
|
|
|
|
|
> 💁 గుర్తుంచుకోండి, పబ్లిక్ కీ అన్నది అదే — పబ్లిక్. Azure పబ్లిక్ కీ కేవలం Azure కి పంపే డేటాను గుప్తీకరించడానికి మాత్రమే ఉపయోగపడుతుంది, డీక్రిప్ట్ చేయడానికి కాదు, అందువలన అది అన్ని చోట్ల పంచుకోవచ్చు, ఇన్మెద్ సోర్స్ కోడ్ లో కూడా. ఉదాహరణకు, మీరు దీన్ని [Azure IoT C SDK సోర్స్ కోడ్](https://github.com/Azure/azure-iot-sdk-c/blob/master/certs/certs.c) లో చూడవచ్చు.
|
|
|
|
|
|
✅ X.509 సర్టిఫికేట్లలో చాలా సాంకేతిక పదజాలం (జార్గాన్) ఉంటుంది. మీరు ఎదుర్కొనే కొన్ని పదజాల నిర్వచనాలను [The layman’s guide to X.509 certificate jargon](https://techcommunity.microsoft.com/t5/internet-of-things/the-layman-s-guide-to-x-509-certificate-jargon/ba-p/2203540?WT.mc_id=academic-17441-jabenn) లో చదవవచ్చు.
|
|
|
|
|
|
## X.509 సర్టిఫికేట్ సృష్టించడం మరియు ఉపయోగించడం
|
|
|
|
|
|
X.509 సర్టిఫికేట్ సృష్టించే దశలు ఇవి:
|
|
|
|
|
|
1. పబ్లిక్/ప్రైవేట్ కీ జతను సృష్టించండి. పబ్లిక్/ప్రైవేట్ కీ జతను సృష్టించడానికి అత్యంత విస్తృతంగా ఉపయోగించే ఆల్గోరిథం [Rivest–Shamir–Adleman](https://wikipedia.org/wiki/RSA_(cryptosystem))(RSA) అని పిలవబడుతుంది.
|
|
|
|
|
|
1. సంతకం కొరకు పబ్లిక్ కీ ని సంబంధిత డేటాతో పుచ్చుకోండి, అది CA ద్వారా లేదా స్వయంసంతకం చేయడం ద్వారా కావచ్చు
|
|
|
|
|
|
Azure CLI లో కొత్త డివైస్ ఐడెంటిటీని IoT హబ్ లో సృష్టించడానికి కమాండ్లు ఉంటాయి, ఇవి ఆటోమేటిక్గా పబ్లిక్/ప్రైవేట్ కీ జతను మరియు స్వయంసంతకం చేసిన సర్టిఫికెట్ను సృష్టిస్తాయి.
|
|
|
|
|
|
> 💁 మీరు Azure CLI ఉపయోగించకుండా దశల్ని వివరంగా చూడాలంటే, మీరు [Microsoft IoT Hub డాక్యుమెంటేషన్ లో OpenSSL ఉపయోగించి స్వయంసంతకం సర్టిఫికేట్లు సృష్టించడం ట్యుటోరియల్](https://docs.microsoft.com/azure/iot-hub/tutorial-x509-self-sign?WT.mc_id=academic-17441-jabenn) చూడవచ్చు.
|
|
|
|
|
|
### వ్యాస్యం - X.509 సర్టిఫికేట్ ఉపయోగించి డివైస్ ఐడెంటిటీ సృష్టించండి
|
|
|
|
|
|
1. క్రింది కమాండ్ను నడపండి, కొత్త డివైస్ ఐడెంటిటీని నమోదు చేయడానికి, కీలు మరియు సర్టిఫికేట్లను ఆటోమేటిక్గా సృష్టిస్తూ:
|
|
|
|
|
|
```sh
|
|
|
az iot hub device-identity create --device-id soil-moisture-sensor-x509 \
|
|
|
--am x509_thumbprint \
|
|
|
--output-dir . \
|
|
|
--hub-name <hub_name>
|
|
|
```
|
|
|
|
|
|
`<hub_name>` ని మీరు ఉపయోగించిన IoT హబ్ పేరుతో మార్చండి.
|
|
|
|
|
|
ఇది `soil-moisture-sensor-x509` అనే ID తో ఒక డివైస్ ను సృష్టిస్తుంది, గత పాఠంలో సృష్టించిన డివైస్ ఐడెంటిటీ నుండి అర్థం చేసుకోవడం కోసం. ఈ కమాండు ప్రస్తుత డైరెక్టరీలో 2 ఫైళ్ళను సృష్టిస్తుంది:
|
|
|
|
|
|
* `soil-moisture-sensor-x509-key.pem` - ఈ ఫైల్ డివైస్కు ప్రైవేట్ కీని కలిగి ఉంటుంది.
|
|
|
* `soil-moisture-sensor-x509-cert.pem` - ఇది డివైస్ కోసం X.509 సర్టిఫికేట్ ఫైల్.
|
|
|
|
|
|
ఈ ఫైళ్ళను సురక్షితం గా ఉంచండి! ప్రైవేట్ కీ ఫైల్ పబ్లిక్ సోర్స్ కోడ్ కంట్రోల్ లో చేర్చకూడదు.
|
|
|
|
|
|
### వ్యాస్యం - మీ డివైస్ కోడ్లో X.509 సర్టిఫికేట్ ఉపయోగించండి
|
|
|
|
|
|
ఈ మార్గదర్శకాలను అనుసరించి, మీ IoT డివైస్ను X.509 సర్టిఫికేట్ ఉపయోగించి క్లౌడ్కు కనెక్ట్ చేయండి:
|
|
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-x509.md)
|
|
|
* [సింగిల్-బోర్డ్ కంప్యూటర్ - Raspberry Pi/వర్చువల్ IoT డివైస్](single-board-computer-x509.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 సవాలు
|
|
|
|
|
|
Azure సర్వీసులు, ఉదాహరణకు రీసోర్స్ గ్రూప్లు మరియు IoT హబ్లను సృష్టించడానికి, నిర్వహించడానికి, తొలగించడానికి అనేక మార్గాలు ఉన్నాయి. ఒక మార్గం [Azure పోర్టల్](https://portal.azure.com?WT.mc_id=academic-17441-jabenn) — ఇది GUI కలిగిన వెబ్ ఆధారిత ఇంటర్ఫేస్, మీరు Azure సర్వీసులను నిర్వహించడానికి ఉపయోగించవచ్చు.
|
|
|
|
|
|
[portal.azure.com](https://portal.azure.com?WT.mc_id=academic-17441-jabenn) కి వెళ్ళి పోర్టల్ని పరిశీలించండి. మీరు పోర్టల్ ఉపయోగించి IoT హబ్ సృష్టించి, ఆపై దానిని తొలగించగలరో చూసి తెలుసుకోండి.
|
|
|
|
|
|
**సూచి** - పోర్టల్ ద్వారా సర్వీసులు సృష్టించే సమయంలో ముందుగా రీసోర్స్ గ్రూప్ సృష్టించాల్సిన అవసరం లేదు, సర్వీసు సృష్టిస్తున్నప్పుడు అది కూడా సృష్టించవచ్చు. మీరు పనులు పూర్తయ్యాక ఆ రీసోర్స్ గ్రూప్ను తప్పకుండా తొలగించండి!
|
|
|
|
|
|
Azure పోర్టల్ పై అనేక డాక్యుమెంటేషన్, ట్యుటోరియల్స్ మరియు మార్గదర్శకాలు [Azure portal documentation](https://docs.microsoft.com/azure/azure-portal/?WT.mc_id=academic-17441-jabenn) లో మీరు చూడవచ్చు.
|
|
|
|
|
|
## పాఠం తర్వాత క్విజ్
|
|
|
|
|
|
[పాఠం తర్వాత క్విజ్](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/20)
|
|
|
|
|
|
## సమీక్ష & స్వీయ అధ్యయనం
|
|
|
|
|
|
* [సంఖ్యల రహస్య రచనల చరిత్ర Wikipedia పేజీ](https://wikipedia.org/wiki/History_of_cryptography) చదవండి.
|
|
|
* [X.509 గురించిన Wikipedia పేజీ](https://wikipedia.org/wiki/X.509) చదవండి.
|
|
|
|
|
|
## అసైన్మెంట్
|
|
|
|
|
|
[కొత్త IoT డివైస్ నిర్మించండి](assignment.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
|
**అస్పష్టత**:
|
|
|
ఈ పత్రాన్ని AI అనువాద సేవ అయిన [Co-op Translator](https://github.com/Azure/co-op-translator) ద్వారా అనువదించబడింది. మేము నిర్దిష్టత కోసం ప్రయత్నిస్తుండగా, స్వయంచాలక అనువాదాల్లో పొరపాట్లు లేదా లోపాలు ఉండవచ్చు అని దయచేసి గమనించండి. అసలు పత్రం స్థానిక భాషలోనే అధికారిక ఆధారంగా పరిగణించాలి. కీలక సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదాన్ని సూచించబడుతుంది. ఈ అనువాదం వాడకంపై వచ్చే ఏమైనా అపవాదాలు లేదా అర్థం లోపాలు గురించి మేము బాధ్యత వహించము.
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |