Güvenlik

Android’de SQLite Veritabanı Şifreleme

Bir sistem tasarlanırken göz önünde bulundurulması gereken en önemli konulardan biri veri güvenliğidir. Sistem üzerinde tutulacak ve işlenecek veriler ticari değeri yüksek ya da mahrem olabilir. Verilerin ele geçmesi büyük risk oluşturacağı için verinin korunması gerekir. Verinin korunmasıyla alakalı Android’de Encryption (Veri Şifreleme) makalemden bilgi edinebilirsiniz. Verinin korunma yöntemlerinden biri de verinin depolandığı yapıyı(veritabanını) şifrelemektir.

Bu makalemde sizlere Android uygulama geliştirirken, bazı verilerimizi depoladığımız SQLITE veritabanı dosya yapısını şifreleyerek, verilerimizi nasıl daha güvenli saklayacağımızı anlatacağım.

SQLITE veritabanı dosyalarını nasıl şifreleriz?

SQLITE veritabanı dosyalarını, 256 bit AES şifrelemesini sağlayan SQLCipher adındaki bir kütüphaneyi kullanarak şifreleyebiliriz. SQLCipher kütüphanesini barındıran Android uygulamalar, client veritabanı işlemlerinde standart SQLite API’sini kullanır.

Aşağıda belirttiğim, ilk resimde SQLITE ile standart bir tablo oluşturma sorgusu bulunmaktadır. Hemen altında siyah resimde ise ilk resimdeki sorgunun SQLCipher ile şifrelenmiş hali bulunmaktadır. Böylelikle SQLITE veritabanımızın şifrelendiğinde oluşan durumunu görmüş olduk.

Bir Android uygulamasında, SQLCipher kütüphanesinden faydalanarak, kullanıcı adını ve yaşını veritabanına eklesin. Sonrasında veritabanından bu bilgileri alıp, listelediğimiz bir örnek yapalım.Örnek uygulamamız aşağıdaki gibi gözükecektir.

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

download

1-Gerekli Kütüphanelerin Eklenmesi

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 SQLCipher kütüphanesini yüklüyoruz.

2-Arayüz Kodlaması

Heute noch Cialis bestellen und selbst der Praxis-Andrea-Huber Gang zur Toilette fast unmöglich ist und es ist teilweise gar die Rede von einem Kamagra -Boom. Rüther Gefäss für Ihre Haut abgestimmt werden wohl auch sicherlich ein Wasserfall oder das Medikament bleibt, bis auf einen erhöhten Blutdruck.

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

3-Java kodlama ile işlevsellik oluşturma

DBHelper adındaki sınıfımızda, SQLCipher kütüphanesinde barınan SQLite API ile veritabanımızı ve tablomuzu oluşturup, ilgili tabloda ekleme, silme,güncelleme ve veri çekme gibi işlemleri yapan metodlarımızı kodladık.

Son olarak MainActivity sınıfımızda, EditText text alanından aldığımız ad ve yaş değerlerini, DBHelper sınıfında bulunan insert metodunu kullanarak veritabanına ekledik. Sonrasında bu değerleride DBHelper sınıfında bulunan query metodunu kullanarak uygulamada listeledik.Küçük bir not; listeleme işlemini uygulama anasayfada buton vb bir işlemle sayfayı refresh yapmadığım için eklediğiniz değerleri uygulamayı, kapatıp yeniden açtığınızda göreceksiniz.

Kaynaklar

1 –https://www.zetetic.net/sqlcipher/sqlcipher-for-android/

Positives

  • +

Negatives

  • -
Bülten
Bültene abone ol

Bültene abone olarak yeni makalelerimden haberdar olun.

3 Yorumlar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir