Soru & Cevap

Android Kod Güvenliği?

29.01.2014 - 04:13

Merhaba arkadaşlar Benim Bir sorum olacak. benim uygulamam uzak sunucudaki Veri Tabanına bağlanıyor Bağlanarak işlemler yapıyor.

Dolayısıyla Kod Güvenliği Çok Önemli ConnectionString bilgisini Öğrenen kişi Malumunuz veri Tabanında istediğini Yapabilir. Bunu engellemek için c# da webservices kullanmıştım fakat android de .net webservices ile bağlantı ile internette buldugum makaleler hiç birinde SoapHeader (Kullanıcı adı Şifre tarzında Bir engel koymuştum) ı nasıl gecebileceği Yazmıyor.Androidin kod güvenliği Ne kadar iyi  connection string i ele gecirebilir mi? veya .net WebService deki SoapHeader engelin, androidde Nasıl Aşabilirim?

327 Görüntülenme

4 Cevap

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

Profile picture for user otabakoglu
otabakoglu
02.11.2014 - 11:10

Bu çok büyük bir sıkıntı aslında apk sı ele geçirilen -ki bunu ele geçirmek çok kolay- programın tüm kodlarına ve grafiklerine erişim sağlanabiliyor. ve programlar editlenip tekrar piyasaya sürülebilir. bunun yanında bağlantı cümleleri, web servislere erişim ve daha önemli bilgiler ele geçirilebilir. kodları çözmek 5 dk nızı almıyor zaten.

picture-3606-1408610132.jpg
cgural
29.01.2014 - 05:52

Bankalar, sosyal ağ uygulamaları... Mahrem bilgiler üzerine işlem yapan uygulamalar kullanıcıyı servise doğrulatmak ve belli işlemler için yetki vermek için OAuth2 gibi yetkilendirme standartlarını kullanırlar. Tabi kendi doğrulama ve yetkilendirme düzenlerini de kurabilirler. Mobil cihazlarımızın eşsiz kimliği, telefon numarası, IMEI, IP, geçici anahtar oluşturma gibi birçok değişken var.

E-posta gönderirken güvenlik açısından OpenPGP kullandıysanız, bu OAuth2 standardındaki doğrulama-yetkilendirme de aynı mantıkla işliyor. Ancak web servisinizi de buna uygun hale getirmek gerekecektir. O tarafta hiç tecrübe edinmedim. Sadece OAuth2 kullanan sosyal ağ siteleriyle bir-iki denemem olmuştu.

Bu gibi işlemler için Google'ın bir temel kütüphanesi var (Java için): https://code.google.com/p/google-oauth-java-client/

ilker
29.01.2014 - 09:00
Peki Siz Ne Öneriyor sunuz sizce veri tabanı bağlantı çümleciğini nasıl kullancıcıdan saklamalıyım. Siz e posta falandan bahsetmişsiniz fakat ben e posta değil Sadece Veri tabanı MSSQL bağlantı cümlesini Korumak istiyorum Zaten Diğer Güvenlik İşlemlerini MSSQL Hallediyor Diye Düşünüyorum.
ilker
29.01.2014 - 09:02
cümleciği nasıl kullanıcıdan Saklamalıyım cümlesindeki kullanıcı programı decompile vs. yapan kişi.
Caner Güral
30.01.2014 - 10:44
E-postada OpenPGP örneğini yapısal olarak Oauth'u açıklamak için söylemiştim. Madem cihaz üzerinde APK ile birlikte gelen gizli bir bilgi saklamak istemiyorsunz, bunu kullanıcıya sonradan gönderin, derim. Yerinizde olsam kullanıcının cihazındaki bir değişkene (IMEI gibi) bağımlı şekilde bir değer üretip önce bunu sunucuya gönderir, sonra sadece bu değerle şifrelediğim kullanıcı adı ve parola bilgisini sunucudan geri döndürürdüm. Bu değer sunucu ile istemci arasındaki bağlantıya has özel bir değer olacak tabi. Kullanıcı da bu değeri alıp çözdükten (sunucudaki şifreleme işleminin tersi) sonra bu sefer veri tabanına bağlanırdı. Gizlemekse bu da gizlemek...
ilker
01.02.2014 - 03:33
Şifreleme İşlemlerin de sıkıntı yok. zaten kendimce Bir şifreleme İşlemi yapmıştım sıkıntı şu apk yı acacak kişi kod kısmında zaten o yazdıgım şifreÇözme işleminide Görecek bundan dolayıda connection stringi webserver a attım web serverdan şifreli olarak geliyor sonra uygulama içerisinde şifre cözülerek işleme alınıyor. ama bu şifreleme kod kısmı acıga cıkarsa Belli olcak bunun içinde c# kod karıştırma programları var bunu en azından bir nebze engelliyolar android de böylebir program var mı?
picture-3606-1408610132.jpg
cgural
29.01.2014 - 05:38

Bu soruda iki şeyi sormuşsunuz aslında: Android üzerinde .NET ile üretilmiş Web Service'lerin Basic Authentication ile kullanımının nasıl olacağı ve Android'te kaynak kodun güvenliği konusu.

Şu örneklerde .NET kullanılarak oluşturulmuş web service'lere ksoap2 kütüphanesiyle bağlanıp, SoapObject sınıfı üzerinden header bilgisi yoluyla nasıl kullanıcı adı ve parola ekleneceği yer alıyor:

http://stackoverflow.com/a/7576428

http://stackoverflow.com/questions/7860887/how-to-call-a-local-web-service-from-an-android-mobile-application

Kodun güvenliğinden önce burada SOAP'a ve de Basic Authentication'a değinmek gerek. Çünkü kullanıcı adı ve parola bilgisi Android uygulaması içinden ters mühendislikle çıkarılabilir olsa bile bundan daha kolayı HTTP üzerinden düz bir şekilde iletilen bilginin gözlenebilmesidir. Nasıl bir güvenlik senaryosu uygulayacağınız, web servisinizi dışarı nasıl açacağınıza, kullanıcıya has özel bilgileri nasıl taşıyacağınıza vs. göre değişmelidir.

Profile picture for user ilker_cimenci
ilker_cimenci
29.01.2014 - 05:24

İnternette yaptıgım araştırma lar sonucu .apk uzantılı dosyaların acılarak kodların görülebildiğini anladım. fakat bu faceebook tweter bazı bankalar telefonda uygulamları var bunlarda kendi veritabanlarına bağlanıyorlar. bunların kodlarıda acılabildiğine göre bunlar nasıl bu conncetionstring lerini(veritabanı bağlantı cümlesi, kullanıcı adı şifre vs.) koruyabiliyorlar.nasıl bir onlem alıyorlarki veri tabanlarını ele geçirebilen yok.?