Soru & Cevap

Sqlite Veri Güvenliği

16.11.2017 - 12:58

Merhaba arkadaşlar. Ben android studio'da parola yöneticisi uygulaması yapıyorum. Neredeyse yarısından fazlası bitti. Ama daha android studio'da acemiyim. Javada da öyle. Yeni yeni öğreniyorum. Hem öğreneyim hem de uygulama yapayım diye başladım ama bazı konularda sıkıntı çekiyorum. Size iki tane sorum olacak. 

Uygulamada kullanıcılar kendi parolalarını kaydedecek ve bu parolalar kendi telefonlarında sqlite ile kayıt edilecek. sunucu tabanlı kayıt olmayacak. sadece google drive ile yedekleme olacak. Ben kullanıcının veri güvenliğini nasıl sağlarım? Yani sqlite'ki verileri nasıl şifreleyebilirim? bunun için kullanılacak bir yöntem var mı? veri güvenliği ile ilgili tavsiyeleriniz var mı?

Diğer sorum ise uygulamada bir şekilde kullanıcının parolaları başkası tarafından ele geçirilirse benim bundan başım ağrır mı? Başım ağrımasın diye nasıl önlem alabilirim? Uygulamadan ötürü doğacak zararlardan sorumluluğu nasıl üstümden atabilirim ?
Cevaplarınız için şimdiden teşekkürler

147 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user nzmoter
nzmoter
16.11.2017 - 02:41

Uygulama açıldığında login sayfası yaparsanız yeterli olacaktır.Kullanıcı her uygulamayı açtığında kullanıcı adı şifre sorsun ki güvenlik sağlansın.Kullanım Şartları ve Gizlilik Poltikası sayfası yaparsınız kullanıcı kabul ederse kullanabilir.Detaylar size bağlı..

Osman Çavuş
17.11.2017 - 12:14
Teşekkür ederim kardeşim
Profile picture for user ali_ay
ali_ay
16.11.2017 - 02:13

Merhaba,

Yanlış anlamadıysam kullanıcıların diğer hesaplarında kullandıkları parolaları yazdığın uygulama içerisinde saklamayı düşünüyorsun.

Bence riskli bir kategoriden başlamışsın. Ben de çok profesyonel değilim bu konuda senin gibi yeni başlayanlardanım :) ama yapmak istediğin proje fazla risk taşıyor. Çünkü normalde kullanıcının kullandığı bir uygulama hacklense sadece o uygulamanın parolası ele geçirilecek, hesabı hackleyen kişinin diğer uygulama parolaları ya da cihazdaki başka işlemler yapabilmesi için başka adımlar uygulaması gerekecek. Ama senin projende olası bir açık bulunursa kullanıcının kaydettiği bütün parolalar ele geçirilmiş olacak.

Her ne kadar riskli bir konu olsa da söz konusu programlamaysa imkansız diye bir şey yoktur :)

Profesyonel olmasam da bir önerim var

Parolaları veritabanına kaydetmeden önce şifreleme algoritmalarından geçirerek çıkan hash'i kaydedebilirsin. Mesela Message Digest Algorithm (MD5) bu iş için ideal gibi ama yukarıda da dediğim gibi söz konusu programlamaysa imkansız diye bir şey yoktur. Brute force uygulanarak md5 için de çözüm bulunabiliyor. O yüzden benim tavsiyem parolanın md5 hash ini almadan önce kendi algoritmandan geçirmen olacaktır.

Basitçe örnek vermek gerekirse;

Kullanıcının parolası  :  benimParolam1

Bu parolayı doğrudan md5 e sokmak yerine önce kendi işlemlerinden geçirebilirsin. Mesela parolanın son üç harfini başa, baştaki üç harfini de sona geçirip sonra son 5 harfini tekrar en başa geçirebilirsin.

Böylelikle ortaya çıkacak metin :  am1imParolben   ==>  sonra son 5 harfini de başa alalım : olbenam1imPar

En son olarak da bulduğun metni md5 ' e sokabilirsin çıkan hash i kaydedebilirsin. Böylelikle veritabanına herhangi bir şekilde sızma olsa da buldukları sonuc "olbenam1imPar" olacağı için doğrudan parolayı ele geçirememiş olacaklar.

 

Yardımcı olabildim mi bilemiyorum ama dediğim gibi ben de profesyonel değilim dilim döndüğünce anlatmaya çalıştım :)

Son olarak şifreleme algoritmalarıyla ilgili birkaç bağlantı paylaşıyorum işinize yarayabilir.

http://www.savaskartal.com/2010/04/14/sifreleme-algoritmalari/

https://tr.linkedin.com/pulse/kriptografide-%C5%9Fifreleme-teknikleri-nihal-kindap

https://prezi.com/btryd9_mrk9d/sifreleme-algoritmalari/

 

 

 

 

 

 

 

Osman Çavuş
17.11.2017 - 12:13
Kardeşim uzun ve açıklayıcı anlatımın için çok teşekkür ederim. Baya yardımcı oldun. Ben en iyisi dediğin gibi parolayı birden çok algoritmadan geçirip öyle kayıt yapayım