Skip to main content
Mobil Güvenlik

Mobil Uygulamalarda Güvenlik Mimarisinin İnşası: Güvenli Veri Akışı ve Kimlik Doğrulama

Mart 08, 2026 5 dk okuma 16 views Raw
Gece Yarısı Siyahı Samsung Galaxy S9
İçindekiler

Mobil uygulamalar, kullanıcı verilerinin toplanması, işlenmesi ve aktarılması bakımından büyük sorumluluk taşır. Bu sorumluluğun yerine getirilebilmesi için güvenlik mimarisi baştan tasarlanmalı; veri akışı, kimlik doğrulama, yetkilendirme ve güvenli depolama bir bütün olarak ele alınmalıdır. Bu yazıda güvenli veri akışını sağlamak, kimlik doğrulamayı doğru kurmak ve mobil uygulama mimarisini dayanıklı hâle getirmek için pratik yaklaşım ve tavsiyeleri paylaşıyoruz.

Güvenlik Mimarisine Giriş: Neden Baştan Tasarım Önemli?

Güvenlik, sonradan eklenen bir özellik değil, mimarinin temel taşlarından biridir. Erken safhada güvenlik gereksinimlerini belirlemek, kodun, altyapının ve süreçlerin bütün halinde güvenli olmasını sağlar. Başından planlanmayan güvenlik en çok uygulama büyüdüğünde maliyetli ve riskli hale gelir.

Temel İlkeler

Güvenli bir mobil mimariye yaklaşırken şu temel ilkeleri göz önünde bulundurun:

  • En Az Ayrıcalık (Least Privilege): Kullanıcılar ve servisler yalnızca ihtiyaç duydukları kaynaklara erişmeli.
  • Savunma Derinliği (Defense in Depth): Bir katman kırıldığında diğerlerinin koruması devam etmelidir.
  • Sıfır Güven (Zero Trust): Ağ içi trafiğe varsayılan olarak güvenme; her isteği doğrula.
  • Güvenli Varsayılanlar (Secure by Default): Kurulum ve yapılandırmalarda güvenli seçenekler önde olmalı.

Güvenli Veri Akışı (Secure Data Flow)

Veri, uygulamada dolaşırken gizliliği ve bütünlüğü korunmalıdır. Veri akışını güvenceye almak için dikkat edilmesi gereken noktalar:

1. Uçtan Uca Şifreleme

Tüm ağ trafiği TLS 1.2/1.3 ile şifrelenmelidir. Özellikle hassas veriler için ek katmanlar uygulanabilir; örneğin uç uç şifreleme veya uygulama seviyesinde veri şifreleme. Sunucu tarafında güçlü, güncel cipher setleri kullanılmalı ve eski protokoller devre dışı bırakılmalıdır.

2. Sertifika Yönetimi ve Pinleme

Sertifika pinleme (certificate pinning), sahte sunucuların MITM saldırılarıyla trafiği yakalamasını zorlaştırır. Ancak pin yönetimi dikkat gerektirir — sertifika yenilemeleri ve acil durumlar için yedek planı olmalı. Pinleri uygulamaya gömmek yerine güvenli yapılandırma mekanizmalarıyla yönetmek daha esnektir.

3. Veri Maskelenmesi ve Minimal Veri Prensibi

Ağ üzerinde taşınan ve sunucuda tutulan verilerden sadece gerekli olanlar aktarılmalı. Hassas alanlar (ör. kredi kartı numaraları, kimlik numaraları) maskelenmeli veya tokenizasyon ile işlenmelidir.

4. Arka Uç Güvenliği ve Doğrulama

Sunucu tarafında gelen her isteğin kimlik ve yetki doğrulaması yapılmalı. İstemci tarafındaki kontroller asla tek güvenlik bariyeri olarak kabul edilmemeli; sunucu tarafında validasyon, rate limiting ve anomali tespiti uygulanmalıdır.

Kimlik Doğrulama Stratejileri

Kimlik doğrulama (authentication) ve yetkilendirme (authorization) mobil güvenliğin merkezindedir. Modern yaklaşımlar esnek, güvenli ve kullanıcı dostu olmalıdır.

1. OAuth 2.0 ve OpenID Connect

OAuth 2.0, yetkilendirme için endüstri standardıdır; OpenID Connect (OIDC) ise kimlik doğrulama katmanını sağlar. Mobil uygulamalarda Authorization Code Flow with PKCE önerilir. PKCE (Proof Key for Code Exchange) mobil cihazlarda istemci sırrı saklama zorunluluğunu ortadan kaldırır ve yetki kodu ele geçirilse bile saldırganın token almasını engeller.

2. Access ve Refresh Token Yönetimi

Kısa ömürlü access token'lar ve uzun ömürlü refresh token'lar kombinasyonu yaygındır. Mobilde refresh token'lar dikkatli saklanmalı, sunucu tarafında refresh token'lar için revocation mekanizması bulunmalıdır. Refresh token çalınması durumunda hızlıca iptal edebilmek için revocation endpoint ve token binding kullanımı değerlendirilebilir.

3. Çok Faktörlü Kimlik Doğrulama (MFA)

MFA, özellikle finansal veya hassas uygulamalarda zorunlu hale getirilmelidir. SMS bazlı MFA zayıf kabul edilir; tercihen TOTP, push tabanlı doğrulama veya FIDO2/WebAuthn gibi daha güçlü yöntemler kullanılmalıdır.

4. Biometrik Kimlik Doğrulama

Biometrik doğrulama (parmak izi, yüz tanıma) cihaz seviyesinde kimlik doğrulama için kullanışlıdır ancak sunucuya biyometrik veriler gönderilmemelidir. Cihazın güvenli depolama (Keychain/Keystore) ile entegrasyonu önemlidir.

Güvenli Depolama ve Cihaz Güvenliği

Mobil cihazlar üzerinde veri depolanması her zaman risk taşır. Aşağıdaki yaklaşımlar uygulamalarda kullanılmalıdır:

1. Platforma Özgü Güvenli Depolama

iOS için Keychain, Android için Keystore kullanın. Bu mekanizmalar donanım destekli güvenlik sağlar ve uygulama verilerini korur. SharedPreferences veya dosya tabanlı depolama şifrelenmeden hassas veri için kullanılmamalıdır; Android'de EncryptedSharedPreferences tercih edilmelidir.

2. Şifreleme ve Anahtar Yönetimi

Anahtar yönetimi merkezi ve güvenli olmalı. Mümkünse Hardware Security Module (HSM) veya bulut bazlı Key Management Service (KMS) kullanın. Anahtar değişimi, rotasyon ve imha süreçleri tanımlanmalı.

3. Cihaz Güvenliği ve Root/Jailbreak Tespiti

Rootlanmış veya jailbreak yapılmış cihazlarda uygulama davranışlarını kısıtlayın veya hassas işlemleri engelleyin. Ancak root/jailbreak tespiti kolayca atlatılabilir; bu nedenle sunucu tarafı kontrolleri de uygulanmalıdır.

Güvenlik Operasyonları: İzleme, Kayıt ve Olay Yönetimi

Güvenlik mimarisi sadece koddan ibaret değildir; sürekli izleme ve hızlı müdahale süreçleri de gerektirir.

1. Güvenli Loglama

Loglar düzenli, merkezi bir yere (SIEM) gönderilmeli; ancak loglarda hassas veri bulunmamalıdır. Log seviyeleri ve saklama politikaları belirlenmelidir.

2. Anomali Tespiti ve Otomatik Müdahale

Anormal davranışları (farklı coğrafi bölgelerden hızlı token kullanımı, sıra dışı rate limit ihlalleri) tespit eden mekanizmalar kurun ve gerektiğinde otomatik token invalidation ya da hesap kilitleme gibi aksiyonlar alın.

3. Penetrasyon Testleri ve Sürekli Güvenlik Testleri

Düzenli SAST/DAST testleri, bağımsız penetrasyon testleri ve mobil uygulama güvenliği değerlendirmeleri gerçekleştirin. CI/CD hattınıza güvenlik tarayıcıları entegre edin (Dependency scanning, secret scanning, SCA).

Uygulama İçi En İyi Uygulama Kontrolleri

  • Girdi doğrulama ve parametrik sorgular kullanın (SQL injection önleme).
  • Hassas verileri loglamayın veya maskeleyin.
  • Üçüncü parti kütüphaneleri düzenli olarak güncelleyin.
  • Proguard/R8 gibi araçlarla kodu obfuscate edin, fakat güvenliğe güvenlik sağlar gibi düşünmeyin.

Örnek Güvenli Veri Akışı (Kısa Senaryo)

Kullanıcı uygulamadan giriş yapar (OIDC Authorization Code + PKCE). Uygulama, yetki kodunu alır ve PKCE verifier ile backend'e gönderir. Backend, yetki kodunu token endpoint'e gönderir ve access + refresh token alır. Access token kısa ömürlüdür; API çağrılarında Authorization header ile gönderilir. Refresh token yalnızca belirlenmiş endpoint üzerinden ve cihaz bağlamı doğrulanarak yenilenir. Tüm iletişim TLS ile korunur, sunucu tarafı rate limiting, anomaly detection ve token revocation uygular.

Sonuç ve Öneriler

Mobil uygulama güvenliği, çok katmanlı bir yaklaşım gerektirir. Güvenli bir mimari kurarken kimlik doğrulama protokollerini (OAuth2/OIDC + PKCE), güvenli depolama mekanizmalarını (Keychain/Keystore), güçlü TLS yapılandırmasını ve sunucu tarafı kontrollerini birlikte düşünün. Düzenli test, izleme ve hızlı müdahale süreçleri olmadan hiçbir güvenlik mimarisi tam sayılmaz. Sen Ekolsoft olarak mobil projelerinizde bu prensipleri uygulayarak hem kullanıcı güvenini hem de uyumluluğu artırabilirsiniz.

Uygulamanız için detaylı güvenlik mimarisi, tehdit modelleme veya kod incelemesi hizmeti isterseniz bizimle iletişime geçin. Güvenlik, süreklilik gerektiren bir yolculuktur; birlikte daha güvenli ürünler inşa edebiliriz.

Bu yazıyı paylaş