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/tr/2-farm/lessons/6-keep-your-plant-secure
co-op-translator[bot] 2b06550c85
🌐 Update translations via Co-op Translator (#553)
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#553) 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#553) 4 weeks ago
single-board-computer-x509.md 🌐 Update translations via Co-op Translator (#553) 4 weeks ago
wio-terminal-x509.md 🌐 Update translations via Co-op Translator (#553) 4 weeks ago

README.md

Bitkinizi Güvende Tutun

Bu dersin bir skeç notu

Skeç notu: Nitya Narasimhan. Daha büyük bir versiyon için resme tıklayın.

Ders Öncesi Test

Ders öncesi test

Giriş

Son birkaç derste bir toprak izleme IoT cihazı oluşturup bunu buluta bağladınız. Peki ya rakip bir çiftçi için çalışan hackerlar IoT cihazlarınızın kontrolünü ele geçirirse? Ya sürekli yüksek toprak nemi ölçümleri gönderip bitkilerinizin hiç sulanmamasına neden olurlarsa? Ya da sulama sisteminizi sürekli açık tutarak bitkilerinizi aşırı sulamadan öldürüp size su faturası olarak küçük bir servete mal olurlarsa?

Bu derste IoT cihazlarını güvence altına almayı öğreneceksiniz. Ayrıca, bu proje için son ders olduğu için, bulut kaynaklarınızı temizlemeyi ve olası maliyetleri azaltmayı da öğreneceksiniz.

Bu derste şunları ele alacağız:

🗑 Bu proje için son ders olduğundan, bu dersi ve ödevi tamamladıktan sonra bulut hizmetlerinizi temizlemeyi unutmayın. Ödevi tamamlamak için bu hizmetlere ihtiyacınız olacak, bu yüzden önce ödevi tamamladığınızdan emin olun.

Gerekirse projenizi temizleme rehberine başvurabilirsiniz.

Neden IoT cihazlarını güvence altına almanız gerekiyor?

IoT güvenliği, yalnızca beklenen cihazların bulut IoT hizmetinize bağlanmasını ve telemetri göndermesini, yalnızca bulut hizmetinizin cihazlarınıza komut gönderebilmesini sağlamayı içerir. IoT verileri, tıbbi veya kişisel veriler gibi hassas bilgiler içerebilir, bu nedenle tüm uygulamanızın bu verilerin sızdırılmasını önlemek için güvenliği dikkate alması gerekir.

IoT uygulamanız güvenli değilse, bir dizi riskle karşı karşıya kalabilirsiniz:

  • Sahte bir cihaz yanlış veri gönderebilir ve uygulamanızın yanlış tepki vermesine neden olabilir. Örneğin, sürekli yüksek toprak nemi ölçümleri göndererek sulama sisteminizin hiç çalışmamasına ve bitkilerinizin susuzluktan ölmesine neden olabilirler.
  • Yetkisiz kullanıcılar, IoT cihazlarından kişisel veya iş açısından kritik verileri okuyabilir.
  • Hackerlar, cihazı veya bağlı donanımı zarar verecek şekilde kontrol etmek için komutlar gönderebilir.
  • IoT cihazına bağlanarak, hackerlar başka ağlara erişim sağlayabilir ve özel sistemlere ulaşabilir.
  • Kötü niyetli kullanıcılar kişisel verilere erişebilir ve bu verileri şantaj için kullanabilir.

Bunlar gerçek dünya senaryolarıdır ve sürekli olarak meydana gelir. Daha önceki derslerde bazı örnekler verilmişti, ancak işte birkaç tane daha:

Bir araştırma yapın: IoT hackleri ve IoT verilerinin ihlalleriyle ilgili daha fazla örnek arayın, özellikle internet bağlantılı diş fırçaları veya tartılar gibi kişisel eşyalarla ilgili olanları. Bu hacklerin mağdurlar veya müşteriler üzerindeki etkilerini düşünün.

💁 Güvenlik çok geniş bir konudur ve bu ders yalnızca cihazınızı buluta bağlama ile ilgili bazı temel konulara değinecektir. Veri değişikliklerini izleme, cihazları doğrudan hackleme veya cihaz yapılandırmalarındaki değişiklikler gibi konular ele alınmayacaktır. IoT hackleme o kadar büyük bir tehdit ki, Azure Defender for IoT gibi araçlar geliştirilmiştir. Bu araçlar, bilgisayarınızda bulunan antivirüs ve güvenlik araçlarına benzer, ancak küçük, düşük güçlü IoT cihazları için tasarlanmıştır.

Kriptografi

Bir cihaz bir IoT hizmetine bağlandığında, kendini tanımlamak için bir kimlik kullanır. Sorun şu ki, bu kimlik kopyalanabilir - bir hacker, gerçek bir cihazla aynı kimliği kullanan ancak sahte veri gönderen kötü niyetli bir cihaz kurabilir.

Hem geçerli hem de kötü niyetli cihazlar aynı kimliği kullanarak telemetri gönderebilir

Bunun çözümü, gönderilen verileri yalnızca cihaz ve bulut tarafından bilinen bir değer kullanarak şifrelenmiş bir formata dönüştürmektir. Bu işleme şifreleme denir ve verileri şifrelemek için kullanılan değere şifreleme anahtarı denir.

Şifreleme kullanılırsa, yalnızca şifrelenmiş mesajlar kabul edilir, diğerleri reddedilir

Bulut hizmeti, verileri şifre çözme adı verilen bir işlemle okunabilir bir formata dönüştürebilir. Bu işlem ya aynı şifreleme anahtarını ya da bir şifre çözme anahtarını kullanır. Şifrelenmiş mesaj anahtar tarafından çözülemezse, cihaz hacklenmiştir ve mesaj reddedilir.

Bu şifreleme ve şifre çözme tekniğine kriptografi denir.

Erken Dönem Kriptografi

En eski kriptografi türleri, 3.500 yıl öncesine dayanan yerine koyma şifreleriydi. Yerine koyma şifreleri, bir harfi başka bir harfle değiştirmeyi içerir. Örneğin, Sezar şifresi, alfabeyi belirli bir miktar kaydırmayı içerir ve yalnızca şifreli mesajın göndericisi ve alıcısı kaç harf kaydırılacağını bilir.

Vigenère şifresi bunu bir adım ileri götürerek metni şifrelemek için kelimeler kullanır, böylece orijinal metindeki her harf farklı bir miktar kaydırılır.

Kriptografi, eski Mezopotamya'da bir çömlekçinin sır tarifini korumaktan, Hindistan'da gizli aşk notları yazmaya veya eski Mısır'da büyü formüllerini gizli tutmaya kadar geniş bir yelpazede kullanılmıştır.

Modern Kriptografi

Modern kriptografi çok daha gelişmiştir ve erken yöntemlere göre kırılması daha zordur. Modern kriptografi, verileri şifrelemek için karmaşık matematik kullanır ve kaba kuvvet saldırılarını imkansız hale getirecek kadar çok olası anahtar içerir.

Kriptografi, güvenli iletişim için birçok farklı şekilde kullanılır. Eğer bu sayfayı GitHub'da okuyorsanız, web sitesi adresinin HTTPS ile başladığını fark edebilirsiniz, bu da tarayıcınız ile GitHub'ın web sunucuları arasındaki iletişimin şifrelenmiş olduğu anlamına gelir. Eğer biri tarayıcınız ile GitHub arasındaki internet trafiğini okuyabilseydi, verileri okuyamazdı çünkü şifrelenmiştir. Bilgisayarınız, sabit diskinizdeki tüm verileri bile şifreleyebilir, böylece biri çalsa bile şifreniz olmadan verilerinizi okuyamaz.

🎓 HTTPS, HyperText Transfer Protocol Secure anlamına gelir.

Ne yazık ki, her şey güvenli değildir. Bazı cihazların hiç güvenliği yoktur, bazıları kolayca kırılabilir anahtarlarla korunur veya bazen aynı türdeki tüm cihazlar aynı anahtarı kullanır. Çok kişisel IoT cihazlarının, WiFi veya Bluetooth üzerinden bağlanmak için aynı şifreye sahip olduğu durumlar olmuştur. Eğer kendi cihazınıza bağlanabiliyorsanız, başkasının cihazına da bağlanabilirsiniz. Bağlandıktan sonra çok özel verilere erişebilir veya cihazlarını kontrol edebilirsiniz.

💁 Modern kriptografinin karmaşıklığına ve şifre kırmanın milyarlarca yıl sürebileceği iddialarına rağmen, kuantum bilgisayarların yükselişi, bilinen tüm şifrelemelerin çok kısa bir sürede kırılma olasılığını ortaya çıkarmıştır!

Simetrik ve Asimetrik Anahtarlar

Şifreleme iki türde gelir - simetrik ve asimetrik.

Simetrik şifreleme, verileri şifrelemek ve şifresini çözmek için aynı anahtarı kullanır. Hem gönderici hem de alıcı aynı anahtarı bilmelidir. Bu, en az güvenli türdür çünkü anahtar bir şekilde paylaşılmalıdır. Gönderici, alıcıya şifrelenmiş bir mesaj göndermek için önce anahtarı göndermek zorunda kalabilir.

Simetrik anahtar şifreleme, bir mesajı şifrelemek ve şifresini çözmek için aynı anahtarı kullanır

Eğer anahtar aktarım sırasında çalınırsa veya gönderici ya da alıcı hacklenir ve anahtar bulunursa, şifreleme kırılabilir.

Simetrik anahtar şifreleme, yalnızca bir hacker anahtarı ele geçirmezse güvenlidir - eğer ele geçirirse mesajı yakalayıp şifresini çözebilir

Asimetrik şifreleme, bir şifreleme anahtarı ve bir şifre çözme anahtarı olmak üzere 2 anahtar kullanır, bunlara genel/özel anahtar çifti denir. Genel anahtar mesajı şifrelemek için kullanılır ancak şifresini çözmek için kullanılamaz, özel anahtar ise mesajın şifresini çözmek için kullanılır ancak şifrelemek için kullanılamaz.

Asimetrik şifreleme, şifrelemek ve şifresini çözmek için farklı anahtarlar kullanır. Şifreleme anahtarı, mesaj gönderenlere gönderilir, böylece mesajı alıcıya göndermeden önce şifreleyebilirler

Alıcı, genel anahtarını paylaşır ve gönderici bunu mesajı şifrelemek için kullanır. Mesaj gönderildikten sonra, alıcı özel anahtarıyla şifresini çözer. Asimetrik şifreleme daha güvenlidir çünkü özel anahtar alıcı tarafından gizli tutulur ve asla paylaşılmaz. Genel anahtarı herkes alabilir çünkü yalnızca mesajları şifrelemek için kullanılabilir.

Simetrik şifreleme, asimetrik şifrelemeden daha hızlıdır, asimetrik ise daha güvenlidir. Bazı sistemler her ikisini birden kullanır - simetrik anahtarı şifrelemek ve paylaşmak için asimetrik şifreleme kullanır, ardından tüm verileri şifrelemek için simetrik anahtarı kullanır. Bu, gönderici ve alıcı arasında simetrik anahtarı paylaşmayı daha güvenli hale getirir ve verileri şifrelerken ve şifresini çözerken daha hızlıdır.

IoT Cihazlarınızı Güvence Altına Alın

IoT cihazları, simetrik veya asimetrik şifreleme kullanılarak güvence altına alınabilir. Simetrik şifreleme daha kolaydır, ancak daha az güvenlidir.

Simetrik Anahtarlar

IoT cihazınızı IoT Hub ile etkileşim kuracak şekilde ayarladığınızda, bir bağlantı dizesi kullandınız. Örnek bir bağlantı dizesi şu şekildedir:

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

Bu bağlantı dizesi, noktalı virgüllerle ayrılmış üç bölümden oluşur ve her bölüm bir anahtar ve bir değerden oluşur:

Anahtar Değer ıklama
HostName soil-moisture-sensor.azure-devices.net IoT Hub'ın URL'si
DeviceId soil-moisture-sensor Cihazın benzersiz kimliği
SharedAccessKey Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0= Cihaz ve IoT Hub tarafından bilinen bir simetrik anahtar

Bu bağlantı dizesinin son kısmı olan SharedAccessKey, cihaz ve IoT Hub tarafından bilinen simetrik anahtardır. Bu anahtar, cihazdan buluta veya buluttan cihaza asla gönderilmez. Bunun yerine, gönderilen veya alınan verileri şifrelemek için kullanılır.

Bir deney yapın. IoT cihazınıza bağlanırken bağlantı dizesinin SharedAccessKey kısmını değiştirirseniz ne olacağını düşünüyorsunuz? Deneyin.

Cihaz ilk bağlanmaya çalıştığında, bir paylaşılan erişim imzası (SAS) belirteci gönderir. Bu belirteç, IoT Hub'ın URL'sini, erişim imzasının sona ereceği bir zaman damgasını (genellikle mevcut zamandan itibaren 1 gün) ve bir imzayı içerir. Bu imza, URL ve sona erme zamanının bağlantı dizesindeki paylaşılan erişim anahtarı ile şifrelenmiş halidir.

IoT Hub, bu imzayı paylaşılan erişim anahtarı ile çözer ve çözülen değer URL ve sona erme zamanı ile eşleşirse, cihazın bağlanmasına izin verir. Ayrıca, mevcut zamanın sona erme zamanından önce olduğunu doğrular, böylece kötü niyetli bir cihaz gerçek bir cihazın SAS belirtecini yakalayıp kullanamaz.

Bu, göndericinin doğru cihaz olduğunu doğrulamak için zarif bir yöntemdir. Hem şifrelenmiş hem de şifrelenmemiş bir formda bilinen bazı veriler göndererek, sunucu şifrelenmiş verileri çözdüğünde, sonucun gönderilen şifrelenmemiş sürümle eşleştiğinden emin olabilir. Eğer eşleşirse, bu, hem göndericinin hem de alıcının aynı simetrik şifreleme anahtarına sahip olduğu anlamına gelir. 💁 IoT cihazınızın bağlantı süresi dolduğu için doğru zamanı bilmesi gerekir, genellikle bir NTP sunucusundan okunur. Zaman doğru değilse, bağlantı başarısız olur. Bağlantı kurulduktan sonra, cihazdan IoT Hub'a veya IoT Hub'dan cihaza gönderilen tüm veriler paylaşılan erişim anahtarı ile şifrelenir.

Sizce birden fazla cihaz aynı bağlantı dizesini paylaşırsa ne olur?

💁 Bu anahtarı kodda saklamak kötü bir güvenlik uygulamasıdır. Eğer bir hacker kaynak kodunuza erişirse, anahtarınızı ele geçirebilir. Ayrıca, kodu yayınlarken her cihaz için güncellenmiş bir anahtarla yeniden derleme yapmanız gerektiğinden bu daha zor hale gelir. Bu anahtarı bir donanım güvenlik modülünden yüklemek daha iyidir - IoT cihazında şifrelenmiş değerleri saklayan ve kodunuz tarafından okunabilen bir çip.

IoT öğrenirken, daha önceki bir derste yaptığınız gibi, anahtarı koda koymak genellikle daha kolaydır, ancak bu anahtarın halka açık kaynak kodu kontrolüne eklenmediğinden emin olmalısınız.

Cihazların 2 anahtarı ve buna karşılık gelen 2 bağlantı dizesi vardır. Bu, anahtarları döndürmenize olanak tanır - yani, birinci anahtar tehlikeye girerse diğerine geçebilir ve birinci anahtarı yeniden oluşturabilirsiniz.

X.509 sertifikaları

Asimetrik şifreleme kullanırken, bir genel/özel anahtar çifti ile genel anahtarınızı size veri göndermek isteyen herkese sağlamanız gerekir. Sorun şu ki, anahtarınızı alan kişi bunun gerçekten sizin genel anahtarınız olduğundan, başka birinin sizin gibi davranmadığından nasıl emin olabilir? Bir anahtar sağlamak yerine, bunun yerine genel anahtarınızı, güvenilir bir üçüncü taraf tarafından doğrulanmış bir sertifika içinde sağlayabilirsiniz. Bu sertifikaya X.509 sertifikası denir.

X.509 sertifikaları, genel/özel anahtar çiftinin genel anahtar kısmını içeren dijital belgelerdir. Genellikle Sertifika otoriteleri (CAs) adı verilen güvenilir kuruluşlardan biri tarafından verilir ve CA tarafından dijital olarak imzalanır, böylece anahtarın geçerli olduğu ve size ait olduğu belirtilir. Sertifikaya ve genel anahtarın sertifikada belirtilen kişiden geldiğine güvenirsiniz, çünkü CA'ya güvenirsiniz; tıpkı bir pasaporta veya ehliyete, onu veren ülkeye güvendiğiniz için güvenmeniz gibi. Sertifikalar ücretlidir, bu nedenle test amaçlı olarak kendiniz bir sertifika oluşturabilir ve bunu kendiniz imzalayabilirsiniz.

💁 Üretim sürümleri için asla kendi kendine imzalanmış bir sertifika kullanmamalısınız.

Bu sertifikalarda, genel anahtarın kimden geldiği, sertifikayı veren CA'nın detayları, ne kadar süreyle geçerli olduğu ve genel anahtarın kendisi gibi bir dizi alan bulunur. Bir sertifikayı kullanmadan önce, orijinal CA tarafından imzalandığını kontrol ederek doğrulamak iyi bir uygulamadır.

Sertifikadaki alanların tam listesini Microsoft'un X.509 Genel Anahtar Sertifikalarını Anlama eğitimi sayfasında okuyabilirsiniz.

X.509 sertifikaları kullanırken, hem gönderici hem de alıcı kendi genel ve özel anahtarlarına, ayrıca genel anahtarı içeren X.509 sertifikalarına sahip olacaktır. Daha sonra X.509 sertifikalarını bir şekilde değiş tokuş ederler, birbirlerinin genel anahtarlarını gönderilen verileri şifrelemek için ve kendi özel anahtarlarını alınan verileri çözmek için kullanırlar.

Bir genel anahtar paylaşmak yerine, bir sertifika paylaşabilirsiniz. Sertifikayı kullanan kişi, sertifikayı imzalayan sertifika otoritesine danışarak bunun sizden geldiğini doğrulayabilir.

X.509 sertifikalarının büyük bir avantajı, cihazlar arasında paylaşılabilmeleridir. Bir sertifika oluşturabilir, bunu IoT Hub'a yükleyebilir ve tüm cihazlarınız için kullanabilirsiniz. Her cihazın, IoT Hub'dan aldığı mesajları çözmek için yalnızca özel anahtarı bilmesi yeterlidir.

Cihazınızın IoT Hub'a gönderdiği mesajları şifrelemek için kullandığı sertifika Microsoft tarafından yayınlanır. Bu, birçok Azure hizmetinin kullandığı aynı sertifikadır ve bazen SDK'lara yerleştirilmiştir.

💁 Unutmayın, bir genel anahtar tam olarak budur - genel. Azure genel anahtarı yalnızca Azure'a gönderilen verileri şifrelemek için kullanılabilir, çözmek için değil, bu nedenle her yerde paylaşılabilir, kaynak kodunda bile. Örneğin, Azure IoT C SDK kaynak kodunda görebilirsiniz.

X.509 sertifikalarıyla ilgili çok fazla teknik terim vardır. Karşılaşabileceğiniz bazı terimlerin tanımlarını X.509 sertifika jargonuna dair basit bir rehber sayfasında okuyabilirsiniz.

X.509 sertifikası oluşturma ve kullanma

Bir X.509 sertifikası oluşturma adımları şunlardır:

  1. Bir genel/özel anahtar çifti oluşturun. Genel/özel anahtar çifti oluşturmak için en yaygın kullanılan algoritmalardan biri RivestShamirAdleman(RSA) olarak adlandırılır.

  2. Genel anahtarı, ilgili verilerle birlikte imzalanması için bir CA'ya veya kendi kendine imzalama yoluyla gönderin.

Azure CLI, IoT Hub'da yeni bir cihaz kimliği oluşturmak ve otomatik olarak genel/özel anahtar çifti oluşturmak ve kendi kendine imzalanmış bir sertifika oluşturmak için komutlara sahiptir.

💁 Azure CLI kullanmak yerine adımları ayrıntılı olarak görmek isterseniz, Microsoft IoT Hub belgelerindeki OpenSSL kullanarak kendi kendine imzalanmış sertifikalar oluşturma eğitimi sayfasında bulabilirsiniz.

Görev - X.509 sertifikası kullanarak bir cihaz kimliği oluşturun

  1. Yeni cihaz kimliğini kaydetmek, anahtarları ve sertifikaları otomatik olarak oluşturmak için aşağıdaki komutu çalıştırın:

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

    <hub_name> kısmını IoT Hub için kullandığınız adla değiştirin.

    Bu, önceki derste oluşturduğunuz cihaz kimliğinden ayırt etmek için soil-moisture-sensor-x509 kimliğine sahip bir cihaz oluşturacaktır. Bu komut ayrıca mevcut dizinde 2 dosya oluşturacaktır:

    • soil-moisture-sensor-x509-key.pem - bu dosya cihazın özel anahtarını içerir.
    • soil-moisture-sensor-x509-cert.pem - bu cihaz için X.509 sertifika dosyasıdır.

    Bu dosyaları güvende tutun! Özel anahtar dosyası halka açık kaynak kodu kontrolüne eklenmemelidir.

Görev - Cihaz kodunuzda X.509 sertifikasını kullanın

IoT cihazınızı X.509 sertifikası kullanarak buluta bağlamak için ilgili kılavuzu takip edin:


🚀 Zorluk

Kaynak Grupları ve IoT Hub'lar gibi Azure hizmetlerini oluşturmanın, yönetmenin ve silmenin birden fazla yolu vardır. Bunlardan biri, Azure hizmetlerinizi yönetmek için bir GUI sağlayan Azure Portal adlı web tabanlı bir arayüzdür.

portal.azure.com adresine gidin ve portalı inceleyin. Portalı kullanarak bir IoT Hub oluşturup silebilir misiniz?

İpucu - Portal üzerinden hizmet oluştururken, önceden bir Kaynak Grubu oluşturmanıza gerek yoktur, hizmeti oluştururken bir tane oluşturabilirsiniz. İşiniz bittiğinde sildiğinizden emin olun!

Azure Portal hakkında bol miktarda belge, eğitim ve kılavuz bulabilirsiniz: Azure portal belgeleri.

Ders sonrası sınav

Ders sonrası sınav

İnceleme ve Kendi Kendine Çalışma

Ödev

Yeni bir IoT cihazı oluşturun


Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluğu sağlamak için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.