Güvenli Web Service Bağlantısı Nasıl Kurulmalı ?
Herkese merhaba, sorum kabaca şu şekilde ; androidden web servisini güvenli kılmanın yolu nedir? decompiile edip web servis linkini bulsalar dahi web servisi kullanmalarını istemiyorum bunun önüne nasıl geçilir?
Biraz daha detaylı anlatacak olursam, bir web servisim(.net) ve bir android uygulamam var. Android uygulamasının web servisi kullanmasını istiyorum fakat android uygulamaları decompile edilince tüm bilgiler çıkıyor (string değişkenler kodlar vs). Bu işlem yapılıp web servis linkim bulunur ise web servisi kendi programlarında veya dışarıdan bi şekilde kullanabilirler.Yani benim derdim web servisi güvenli kılmak, benim uygulamamın dışında kullanılamaması.
Aklıma gelen yöntemler ve bunları eleme nedenlerim de şu şekilde;
1.Verileri şifreli gönderip serverda çözmeye kalksak android decompile edilince şifreleme algoritması da ortaya çıkacak, kişi kendi istediklerini aynı algoirtmayla şifreleyip gönderebilir.
2. Web servisten token istemek, belli süreli token alıp işlem yapmak da mümkün fakat bu sefer de kişi kendisi bir token alır tokena verdiğim limitler kadar kullanır ama yine kullanabilir olmuş oluyor ben hiç kullanmasını istemiyorum benim uygulamam dışında.
3. Androidden sabit bir kod gönderip web serviste kontrol etmek, bu sabit kodu decompile edilince ortaya çıkmayacak bir şekilde saklamak gerekiyor bunun da yöntemini bulabilmiş değilim. En son uygulamanın imzasını sha1 veya md5 şeklinde runtime'da çekip servise göndermeyi kararlaştırmıştım ancak apk dosyalarının imza verilerine de erişilebiliyormuş, bu da gizli bir kod olmaktan çıktığı için kişi servise bunu bulup göndererek işlem yapabilir.
Sorunumu çözebilecek şeyler;
Şöyle bir yazı buldum : http://android-developers.blogspot.in/2013/01/verifying-back-end-calls-from-android.html
Google apileri kullanılarak web servis gelen çağrının benim uygulamamdan mı geliyor yoksa harici bir gönderici mi, bunun kontrolünü yapabiliyor. Yani benim anladığım bu.Fakat bunu nasıl kullanacağımı çözebilmiş değilim. Bu konuda türkçe kaynak veya örnek bir yapım videosu bulamadım. Bir ipucu buldum fakat devamını getiremiyorum. Bu sorunu çözebilecek farklı önerileri veya son belirttiğim durumla ilgili bilgisi olanların cevaplarını bekliyorum.
Teşekkürler