Jetpack Security API Kullanımı

Bir sistem tasarlanırken göz önünde bulundurulması gereken en önemli konulardan biri veri güvenliğidir. Sistemde kullanılan veriler, ticari değeri yüksek ya da mahrem olabilir. Bu yüzden yazılımları oluştururken her zaman güncel güvenlik önlemlerini kullanarak, verilerin korunması önemlidir.

Bu makalemde, Android uygulamalarda dosyaları ve SharedPreferences nesnelerini şifrelemeyi sağlayan Jetpack Security(Jetsec) kütüphanesinin kullanımını örnekleyeceğim.

Jetpack Security kütüphanesi, AndroidX yapısını kullanmaktadır. Eğer halen projelerinizi AndroidX yapısına geçirmediyseniz, AndroidX Kütüphanesine Geciş adlı makalemden faydalanabilirsiniz.

Örnek projemde, şifrelenmiş bir dosya oluşturup, Edittext den alınan değeri  dosyaya şifreli bir şekilde yazdıracağım. Read file tıkladığında, şifreli metni ekranda gösterilmesini sağladım. Diğer bir yandan, “Shared Preferences Şifreleme” butonuna tıkladığında Edittext den alınan değeri, SharedPreferences nesnesi ile birlikte şifreleyip, kullanıcın okuyabileceği şekilde ekrana yansıttım.

jetpack-security

Jetsec verilerinizi nasıl şifreler?

Jetsec tüm alt verileri şifreleyen ve birtakım şifreleme operasyonlarından geçiren master key kullanır. Jetsec size default olarak MasterKeys class’ının içerisinde bir obje sağlar. MasterKeys class’ı AES256-GCM algoritmasıyla şifrelenen ve saklanan AndroidKeyStore verileri kullanır.

Dosyaları Şifreleme

Jetsec, EncryptedFile adında bir sınıf barındırmaktadır. İlk önce MasterKeys sınıfı ile şifreleme algoritmasını oluşturmanız gerekir. masterKeyAlias ve oluşturacağınız dosyayı EncryptedFile sınıfına tanımlayarak, dosya şifreleme işlemine başlanır. Örnek kod; projede saveFileEncryption metodunda bulunmaktadır.

SharedPreferences’ı Şifrelemek

Eğer uygulamanızda key-value şeklindeki veriyi şifrelemek istiyorsanız, Jetsec’de EncyptedSharedPreferences sınıfını kullanabilirsiniz. EncyptedSharedPreferences; SharedPreferences sınıfından türediği için, SharedPreferences ile benzer şekilde kullanılır. Key ve value değerlerinin her ikisi de şifrelenir. AES256-SIV-CMAC kullanılarak şifrelenir.Örnek kod; projede sharedPreferencesEncryption metodunda bulunmaktadır.

1-Gerekli Kütüphanelerin Eklenmesi

Jetpack kütüphanesinde AndroidX namespace barınmaktadır. Jetsec, AndroidX kütüphanesinde bulunduğundan dolayı, projedeki tüm kütüphane tanımlamaları androidx ile başlamalıdır.

Android Studio Ide ile oluşturduğum projemin app dizinin altındaki build.gradle dosyasını açıyoruz. Dependencies kod bloklarının arasına aşağıdaki kodları yerleştirerek Jetpack Security (Jetsec) kütüphanesini yüklüyoruz.

3-Java kodlama ile işlevsellik oluşturma

Java kod açıklamaları, yorum tagları içinde bulunmaktadır.

 

4-Arayüz Kodlaması

Örneğimizdeki görüntüyü elde etmek içim, 1 tane xml dosyasında kodlama yapmamız gerekmektedir.

Örneklediğim projemin kodlarını indirmek isterseniz; yapmanız gereken tek şey aşağıya koyduğum KODLARI İNDİR resmine tıklamak.

download

Kategori Genel
Etiketler