Android Güvenlik Kavramları
Android Güvenlik Kavramları
Hep söylendiği gibi Android, uygulamaların bir dijital sertifika ile imzalanmasını gerektirir. Bu gereksinimin faydalarından biri, bir uygulamanın orijinal yazar tarafından yayınlanmamış bir sürümle güncellenememesidir.
Örneğin, bir uygulama yayınlarsak, uygulamamızı kendi sürümünüzle güncelleyemezsiniz (tabii ki bir şekilde sertifikamızı ve onunla ilişkili şifreyi almadığınız sürece). Bununla birlikte, bir başvurunun imzalanması ne anlama geliyor? Ve bir başvuruyu imzalama süreci nedir?
Bir uygulamayı dijital sertifika ile imzalarsınız. Dijital sertifika, şirketinizin adı, adresi vb. gibi sizinle ilgili bilgileri içeren bir eserdir. Bir dijital sertifikanın birkaç önemli özelliği, imzasını ve genel/özel anahtarını içerir.
Genel/özel anahtar, anahtar çifti olarak da adlandırılır. Burada .apk dosyalarını imzalamak için dijital sertifikalar kullanmanıza rağmen, bunları başka amaçlar için de (şifreli iletişim gibi) kullanabileceğinizi unutmayın.
Güvenilir bir sertifika yetkilisinden (CA) bir dijital sertifika alabilir ve/veya kısaca tartışacağımız keytool gibi araçları kullanarak kendiniz oluşturabilirsiniz. Dijital sertifikalar anahtar depolarında saklanır. Bir anahtar deposu, her biri anahtar deposunda ona başvurmak için kullanabileceğiniz bir diğer ada sahip olan dijital sertifikaların bir listesini içerir.
Bir Android uygulamasını imzalamak üç şey gerektirir: bir dijital sertifika, bir .apk dosyası ve dijital sertifikanın imzasını .apk dosyasına nasıl uygulayacağını bilen bir yardımcı program. Göreceğiniz gibi, keytool adı verilen Java Runtime Environment (JRE) dağıtımının bir parçası olan ücretsiz bir yardımcı program kullanıyoruz.
Bu yardımcı program, bir .jar dosyasını dijital sertifikayla nasıl imzalayacağını bilen bir komut satırı aracıdır. Şimdi ilerleyelim ve bir .apk dosyasını dijital sertifika ile nasıl imzalayabileceğinizden bahsedelim.
Dağıtım için Uygulamaları İmzalama
Android uygulamasını bir cihaza yüklemek için öncelikle Android paketini (.apk dosyası) bir sertifikanın dijital imzasıyla imzalamanız gerekir. Ancak sertifika kendinden imzalı olabilir; VeriSign gibi bir sertifika yetkilisinden sertifika satın almanız gerekmez.
Uygulamanızı dağıtım için imzalamak iki adımı içerir. İlk adım, keytool (veya benzeri bir araç) kullanarak bir sertifika oluşturmaktır. İkinci adım, .apk dosyasını oluşturulan sertifikanın imzasıyla imzalamak için jarsigner aracının (veya benzeri bir aracın) kullanılmasını içerir.
Geliştirme sırasında Eclipse için ADT eklentisinin öykünücüye dağıtmadan önce .apk dosyanızı imzalamakla ilgilendiğini unutmayın. Ayrıca, geliştirme sırasında imzalamak için kullanılan varsayılan sertifika, gerçek bir cihaza üretim dağıtımı için kullanılamaz.
Keytool Kullanarak Kendinden İmzalı Sertifika Oluşturma
Keytool yardımcı programı, özel anahtarlardan oluşan bir veritabanını ve bunlara karşılık gelen X.509 sertifikalarını (dijital sertifikalar için bir standart) yönetir. Bu yardımcı program, JRE ile birlikte gelir ve JRE bin dizini altında bulunur.
Bu noktada, daha sonra bir Android .apk dosyasını imzalamak için kullanacağınız tek girişli bir anahtar deposunu nasıl oluşturacağınızı göstereceğiz.
Bir anahtar deposu girişi oluşturmak için aşağıdakileri yapın:
1. Anahtar deposunu tutmak için c:\android\release\ konumunda bir klasör oluşturun.
2. JRE bin dizinine bir komut penceresi açın ve gösterilen parametrelerle keytool yardımcı programını çalıştırın.
Komut satırında sağlamazsanız, keytool sizden listelenen parolaları isteyecektir. Listedeki komut, c:\android\release\ adresinde bir anahtar deposu veritabanı oluşturacaktır. Veritabanı, release.keystore adlı bir dosya olacaktır.
Girişin geçerliliği 14.000 gün (ya da yaklaşık 38 yıl) olacak ki bu çok uzun bir zaman. Bunun nedenini anlamalısınız.
Android dokümantasyonu, uygulamanın birçok güncellemesini içerecek olan, uygulamanın tüm ömrünü aşacak kadar uzun bir geçerlilik süresi belirtmenizi önerir. Geçerliliğin en az 25 yıl olmasını önerir. Ayrıca, uygulamayı Android Market’te yayınlamayı planlıyorsanız, sertifikanızın tarihine kadar geçerli olması gerekir.
Anahtar aracına geri dönersek, takma ad argümanı, anahtar deposu veritabanındaki girişe verilen benzersiz bir addır; daha sonra girişe başvurmak için bu adı kullanabilirsiniz. Listelemede keytool komutunu çalıştırdığınızda, keytool size birkaç soru soracak ve ardından anahtar deposu veritabanını ve girişi oluşturacaktır.
Artık .apk dosyanızı imzalamak için kullanabileceğiniz bir dijital sertifikanız var. Bir .apk dosyasını sertifikayla imzalamak için jarsigner aracını kullanırsınız. Bunu nasıl yapacağınız aşağıda açıklanmıştır.
Bilgi güvenliğinin temel öğeleri nelerdir
Gizlilik bütünlük erişilebilirlik örnekleri
Google şifre güvenliği uyarısı
Bilgi Güvenliği gizlilik ilkesi
Gizlilik Nedir bilişim
Bilgi Güvenliği 3 temel kavram
Bilgi Güvenliği erişilebilirlik ilkesi
Bilgi güvenliğinin temel unsurlarından biri değildir
Jarsigner Aracını Kullanma
Önceki bölümdeki keytool, jarsigner aracının parametrelerinden biri olan bir dijital sertifika oluşturdu. Jarsigner için diğer parametre, imzalanacak gerçek Android paketidir. Bir Android paketi oluşturmak için, Eclipse için ADT eklentisindeki “İmzasız Uygulama Paketini Dışa Aktar” yardımcı programını kullanmanız gerekir.
Yardımcı programa, Eclipse’de bir Android projesine sağ tıklayarak, Android Araçları’nı seçerek ve ardından “İmzasız Uygulama Paketini Dışa Aktar”ı seçerek erişirsiniz. “İmzasız Uygulama Paketini Dışa Aktar” yardımcı programının çalıştırılması, hata ayıklama sertifikasıyla imzalanmayacak bir .apk dosyası oluşturacaktır. Bunun nasıl çalıştığını görmek için, Android projelerinizden birinde “İmzasız Uygulama Paketini Dışa Aktar” yardımcı programını çalıştırın ve oluşturulanları depolayın.
.apk dosyasını imzalamak için, anahtar deposunun konumunu, anahtar deposu parolasını, özel anahtar parolasını, .apk dosyasının yolunu ve anahtar deposu girişi takma adını iletirsiniz. Jarsigner daha sonra .apk dosyasını anahtar deposu girişindeki imzayla imzalayacaktır.
Jarsigner aracının, JDK ile birlikte gönderilen bir yürütülebilir dosya olduğunu, bin dizininde JRE ile paketlenmediğini unutmayın. Jarsigner aracını çalıştırmak için, JDK bin dizinine bir komut penceresi açmanız veya JDK bin dizininizin sistem yolunda olduğundan emin olmanız gerekir.
Daha önce belirttiğimiz gibi Android, kötü niyetli bir programcının uygulamanızı kendi sürümüyle güncellemesini önlemek için bir uygulamanın dijital imza ile imzalanmasını gerektirir. Bunun çalışması için Android, bir uygulamadaki güncellemelerin orijinaliyle aynı imzayla imzalanmasını gerektirir. Uygulamayı farklı bir imzayla imzalarsanız, Android bunları iki farklı uygulama olarak kabul eder.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)