Bilgi Kasası (Android Uygulama)

Selamun Aleyküm arkadaşlar. Son 2 yıldır Python/Kivy ile Dart/Flutter teknolojilerini kullanarak çeşitli denemeler yapıyordum. Kivy gerçekten çok keyif aldığım bir kütüphane. Arada boş zamanlarımda hobi olarak geliştirdiğim mobil uygulamamı tanıtmak istedim.

Amaç

Şifre ya da çeşitli bilgilerin saklanabileceği

  • güvenli,
  • reklamsız,
  • ücretsiz,
  • internet erişimsiz,
  • telefondaki alakasız verilere erişim izni istemeyen,

arayüzü basit bir mobil uygulama geliştirerek toplum yararına kullanıma sunmak.

Problem Durumu ve Temel Motivasyon

Babam ve annem sürekli e devlet şifrelerini, TC kimlik nolarını, e-mail adreslerini ve bunların şifrelerini, mobil bankacılık uygulamaları vb. birçok bilgi ve şifrelerini unutuyorlardı. Unutmamak için ya telefon rehberine, ya mesajlara, ya da notlar uygulamasına yazıyorlardı. Fakat her seferinde nereye yazdıklarını da unutuyorlardı. Her unuttuklarında bana telefon açıp “şu şeyin şifresi neydi? şuna nasıl girecektik?” diye soruyorlardı. Piyasada çok fazla ve gayet iyi şifre yönetim araçları var fakat kodlarını bilmiyorum ve baksam da anlayacak vaktim yok. Reklamlı, ücretli ya da bazen çeşitli verilere erişim izni istiyor. Ayrıca bir şeyler üretmek için bahane de lazım bana :grin:

Hem onların işine yaraması amacıyla hem de boş vaktimi keyifli bir şeyle doldurmak adına bu uygulamayı yaptım. Anne ve babamın telefonuna uygulamayı yükledim, gereken bilgileri ekledim. Şimdi onlara yardımcı olmam gerektiğinde gerekli bilgiyi nerede bulmam gerektiğini biliyorum. Ayrıca babam da kullanmayı öğrendi zaten. Beğendi ve teşekkür etti açıkçası :laughing:

Geliştirici Ekip

Ben ve Ankara’da grafik tasarımcı olan kardeşim Muhammet Taha KIRAT ile geliştirdik. Kardeşim figma vb. uygulamalarla uygun renk kombinasyonu UI/UX konusunda tasarımlar yaparak çok yardımcı oldu.

Gerçi Kivy ile kardeşimin tasarımına elimden geldiğince uyacak bir arayüz kodlamaya çalışsam da pek onun istediği kadar modern ve şık durmadı fakat benim açımdan bir Kivy projesine göre gayet iyi sayılır.

Yükleme Kaynağı

Şu an için sadece kişisel web sitemden apk olarak indirip yüklenebilir. Dart/Flutter kullanarak üzerinde çalıştığım kapsamlı bir projem daha var. Onu da bitirdiğimde Google geliştirici hesabı açıp bununla birlikte playstore’a koyacağım inşallah. Şimdilik askıya aldım bu işlemi çok acelem yok. Çünkü şifre yönetim uygulamaları çok zaten, piyasada olmayan bir şey değil.

Bilgi Kasası uygulama sayfası

Direkt indirme bağlantısı

Geliştirme Sürecinde Faydalanılan Kaynaklar

Kivy’de kardeşimin yaptığı tasarımlara uymak adına bayağı kastım açıkçası. Bildiğiniz gibi Kivy’nin çizdiği widget’lar çirkin ve demode görünüyor. KivyMD kullanmadım, merak edip test ettiğimde ağır çalıştığını tespit etmiştim. Kivy dili ile Material Design’i taklit etmeye çalıştım. Kendi butonlarımı, kendi arayüzümü kendim Kivy dilinde yazdım. Uygulama ekranlarını, gerekli metotları vs. kendim yaptım. Amele angarya iş gibi oldu ama hobi işte. :grin:

Uygulamayı Yapay Zeka’ya yazdırmadım. Zaten öyle olsaydı bir iki günde bitirirdi belki. Ben bir buçuk ayda falan boş zamanlarımda ufak ufak ilerleyerek bitirebildim. Kivy dökümantasyonunda anlamadığım kısımlar olduğunda açıklamasını istedim. Yine Android keystore mevzusunu anlamak için android dökümantasyonunda ilgili kısımları okudum ve yapay zeka’dan da öğrenmeye çalıştım. Android Keystore kullanmak için Kivy yetersiz olunca Java ile aracı olması adına PyJnius kullanmak gerekti. Bu konuda da yapay zekadan faydalandım.

Teşekkürler

  • Üzerimde emeği olan tüm büyüklerime, her kademede bana emek veren tüm öğretmenlerime,
  • Uygulama arayüzünde destek olan kardeşim Muhammet Taha KIRAT’a
  • Tecrübelerinden, bilgilerinden faydalandığım siz forum.yazbel.com daimi üyelerine

teşekkür ediyorum.

Diğer Kivy Projelerim

Sesver

Uygulamadan Görüntüler

6 Beğeni

Tebrik ederim. Çok güzel görünüyor.

Ben de şifre konusunda kapalı kaynaklı uygulamalara güvenemediğim için kullanmıyor, kendimce bir uygulama geliştirmeyi düşünüyordum.

Kodu GitHub veya benzer platformda paylaşmayı ve diğer kullanıcıların da katkı sağlamasını düşünüyor musunuz?

1 Beğeni

Ben de açık kaynaklı düşünmüştüm zaten. :grinning_face:

Kodlar gitlab hesabımda. Github’dan taşınıyorum. Uygulamayı playstore’a attığımda yayımlayacağım. Biraz çeki düzen verilmesi lazım.

Açık konuşmak gerekirse git kullanımını pek bilmiyorum. Bu işi biraz oturtmam lazım.

Yorumunuz için çok teşekkür ederim.

Emeğinize sağlık. İcatlar ihtiyaçlardan doğar. Başlamak geliştirmenin ilk aşamasıdır zamanla daha da gelişir.

Parola yöneticisi, kilitli ajanda yada benzerlerini kullanmıyorum. Silahla, kartuş/şarjör ü aynı yere koymak gibi bir şey. Farklı yerlerde tutmak daha güvenli. Ama iki aşamalı doğrulama ile parola çaldırmak çok da sorun olmayabilir. Yani ihtiyaç olan bir uygulama.

Katkısı olur mu bilmem;

SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management | CSRC

Free Cloud Security - AWS

ISO/IEC 27001:2022 - Information security management systems

shenril/owasp-asvs-checklist: OWASP ASVS checklist for audits

Standart ve checklistlere göz atarak, daha güvenli hale getirebilirsiniz.

Emeğinize sağlık.

2 Beğeni

Yorumunuz için teşekkürler, linkleri inceledim. İlk bakışta biraz ağır geldi. Konuya dalıp etraflıca okumam lazım, şimdilik linklerdeki bilgilere translate yardımı ile göz gezdirip genel bir inceleme yaptım. Veri güvenliği için dünyada kabul gören belirli standartları takip etmenin önemine vurgu yapıyor. Gayet makul bir yaklaşım, olması gereken bu.

Anne ve babam’a uygulama yapma ihtiyacı ilk ortaya çıktığında forumda bir konu açmıştım. O sıralar kullanıcının uygulamayı açılış şifresi ile açacağı ve db’de şifrelenmeden saklanan verileri görebileceği bir uygulama yapmaya başlamıştım. Esasında anne ve babam için de yeterliydi. @aib ile konuştuktan sonra önerilerini biraz inceleyip araştırma yapınca işi askıya aldım. Araya başka şeyler girdi bir süre uğraşamadım. Birkaç ay önce bu iş için yeniden başladığımda başkalarına da faydası olabilir diye daha sağlam bir şey yapayım dedim.

Bilgi Kasası’nda Şu Anda Uygulanan Güvenlik Önlemleri

  • Kullanıcının eklediği kıymetli bilgi/şifre AES-256 ile şifrelenerek veri tabanında saklanıyor.
  • Bilgi AES-256 ile şifrelenirken ve şifre çözülürken kullanılan sarmalayıcı anahtar Android Keystore teknolojisi [1] ile üretilip saklanıyor. Android dökümantasyonuna göre Keystore hem donanımsal hem de yazılımsal olarak korunan özel bir alan [2].
  • Uygulama giriş şifresi (master password) python hashlib kütüphanesindeki pbkdf2_hmac ile hash’leniyor. Kaba kuvvet saldırılarına karşı dirençli olması için kasıtlı yavaşlatma söz konusu [3].
  • Tüm bunların dışında Android çalışma prensibinde uygulamalar Sandbox mantığıyla kendilerine özel alanda çalışabilir, diğer uygulamaların çalıştığı alana erişim yetkisi yoktur [4].

İleriki Aşamada Yapılabiliecekler

Keystore’da saklanan anahtarı açmak için kullanıcının girdiği masterpassword’u kullansam daha iyi olabilir. Bir ara böyle birşey okumuştum o sıra kafam karıştığı için dedim sonra bu işe bakayım :laughing:

Parmak izi ya da yüz tanıma gibi biometrik şifreleme eklenebilir. (Kivy ile bu iş zor olabilir. Native olmadığı için bu tarz donanımlara erişimde sıkıntılar yaşatıyor)

Sizin (@semtex) önerilerinizi de okuyarak yeni şeyler öğrenip güvenliği daha üst seviyeye taşıyabilirim.

Kaynaklar

  1. https://developer.android.com/privacy-and-security/keystore?hl=tr
  2. https://source.android.com/docs/security/features/trusty?hl=tr
  3. hashlib — Secure hashes and message digests — Python 3.14.4 documentation
  4. https://developer.android.com/training/data-storage?authuser=1&hl=tr
1 Beğeni

Ben de sizin gibi düşünüyorum. Anne baba not alsın diye yapıldıysa çok güvenlik sorun değil. Ama madem el almışsınız. Şifreleme önemli diye hatırlattım.

Standartlar ve checklistler gözünüzü korkutmasın. Basit isterler sunar. Sadece bir şeyleri gözden kaçırmadığınızdan emin olmanızı sağlar. Sanıldığı kadar zorlayıcı değildir.

Bu konularda da gelişime açık olduğunuzu düşündüğümden hatırlattım.

Kolay gelisin.

2 Beğeni