Mobil Finans Uygulamalarında Http/3: Daha Hızlı Daha Güvenli

Engin Gömenç
Fiba Tech Lab
Published in
6 min readMay 16, 2024

Hyper Text Transfer Protocol /3 (HTTP/3), daha önceki versiyonlarına ve HTTP/2'ye göre erişimde büyük gelişmeler sunuyor. QUICK UDP Internet Connections (QUIC) Ağ Protokolü üzerine kurulu olan bu yeni model, performans artışı , gecikme süresinde azalma, güvenlik ve ağ dalgalanmalarında iyileşme sunar ve bu kavramları daha etkin bir şekilde ele almak gibi önemli özelliklere odaklanır.

Şekil-1 HTTP Protokolü ve Evrimi-[a]
Şekil-2 Http Protokolü ve Versiyonlara Ait Özellikler-[b]

QUIC , Google mühendisleri tarafında 2012 yılında geliştirildikten sonra bu protokolü kullanan http/3 ile birlikte 2015 yılından bu yana yapılmış en kapsamlı yükseltme olarak litaratüre geçecek. [1]

QUIC, Aktarım Kontrol Protokol (TCP)’üne göre daha düşük gecikme süresi ve daha yüksek verim sunan Kullanıcı Veri İletisi Protokol (UDP)’ünü aktarım protokolü olarak kullanıyor. QUIC, istemci ve sunucu arasında güvenli iletişim sağlamak için Aktarım Katmanı Güvenliği (TLS) 1.3'ü temel alan şifreleme protokolünü içerir. Bu protokol, üçüncü tarafların internet trafiğini ele geçirmesini ve manipüle etmesini zorlaştırarak iletişimin güvenliğini sağlar. UDP’nin hızını ve verimliliğini, TLS’in güvenliğini ve HTTP/2’nin mirasını kullanarak , modern internet için güvenilir ve yüksek performanslı bir aktarım protokolü oluşturmaktadır.

Şekil-3 QUIC Protokolü Aktarım Katmanları-[c]

Öncelikle TCP , TCP+TLS ve QUIC arasında bir IP paketine ait haberleşmede oluşan paket trafiğini aşağıda görebiliriz. QUIC ve http/3’e ait veri ve hız avantajı açıkça görülmektedir.

Şekil-4-[d] TCP ve QUIC İle IP Haberleşme Farkı

Http/2, istemci ve sunucu arasında tek bir tünel (Pipeline) içerisinden ilk giren ilk çıkar mantığı ile veriyi aktarır. QUIC, aynı yapıda birden çok veriyi eş zamanlı olarak aktarır.

Şekil-5 Http/2 ve QUIC Veri İletimi-[e]

TCP ve UDP kavramına kısaca değinmek gerekirse;

Transmission Control Protocol (TCP): Temel olarak internet protokolünün merkezinde bulunur, internet üzerindeki trafiğin büyük çoğunluğundan sorumludur. 3 aşamalı el sıkışma algoritmasını kullanır ve güvenilir veri iletimine dayalı bir protokoldür. Ayrıca içinde hata kontrol mekanizmasını barındırır.

Şekil-6 TCP (3Way-HandShake) Trafik Analizi

User Datagram Protocol (UDP): UDP, tıpkı TCP gibi bir aktarım protokolüdür ve IP ile birlikte internet üzerinde veri iletimi için kullanılan bir protokolün parçasıdır. Bu Protokol özelinde güvenilir bir iletim mekanizması kullanılmaz ayrıca hata kontrol mekanizması trafik akışı içerisinde yer almaz. Dolayısıyla iletilen paketin ulaşıp ulaşmadığı kontrolü bu protokolde yer almaz.

Şekil-7 UDP Trafik Analizi

Her iki protokolünde dezavantajları ve avantajları bulunmakla birlikte, QUIC Protokolü’nde bu yapıların harmanlanmış olması, bize oldukça geniş bir yelpazede avantajlar sunmaktadır.

Http/3 bize güvenlik ve hız anlamında ne gibi yenilikler sunuyor göz atmak gerekirse;

- Güvenlik Algoritmalarındaki Yenilikler;

TCP, veri iletimi yoluyla veri yükü şifrelemesine olanak sağlarken, aktarılan veri içeriğinde şifrelenmemiş veri olabileceğini de gözardı etmemek gerekir. HTTP/3, uçtan uca veri şifrelemesi sunar ve güvenliği en üst seviyeye çıkarmak için İleri Şifreleme Standardı (AES) algoritmasının en son sürümü de dahil olmak üzere daha güvenli şifreleme algoritmaları kullanır. Bu da saldırılara karşı TLS’in önceki sürümlerinde kullanılan algoritmalardan daha dirençli olduğu anlamına gelir (TLS1.3). Http/3, bu şifreleme işlemlerini kullanarak IP sahtekarlığı saldırılarını önlemeye yardımcı olur. [2]

- Performans Kavramındaki Yenilikler;

Http/3 ün kullanmakta olduğu TLS 1.3 versiyonu ayrıca, istemci ve sunucunun daha hızlı bir şekilde güvenli bir bağlantı kurmasını sağlayan Sıfır Gidiş-Dönüş Süresi (0-RTT) adı verilen ve performans iyileştirmesine katkı sağlayan bir özelliği de içinde barındırır. İstemci ve sunucu, bağlantı öncesinde birbirleriyle paylaştıkları bir Ön Paylaşımlı Anahtar (PSK) kullanarak güvenli bir bağlantı kurarlar. Bu da 3 Aşamalı El Sıkışma (3-Way-Handshake) İşlemi gerçekleştirmeden önce iletişime geçmelerine olanak sağlar. [3]

- Peki, tüm bu tasarlanan yeniliklerin Mobil Finans Uygulamalarına bir etkisi olur mu?

İnternet üzerinde arama motorlarında kısa bir araştırma ile günümüzde insan popülasyonundan daha fazla mobil cihazın olduğunu görebiliyoruz.

Şekil-8 Dünyada Yıllara Göre Mobil Cihaz Kullanımı-[f]

Bunun yanı sıra, Finans uygulamalarının da günümüzde oldukça yaygın kullanıldığını görüyoruz. Banka, şube ve ofislerine gitmeden ev ve işyerlerimizde hatta halka açık alanlarda bankacılık işlemlerini mobil cihazlarımızdan mobil uygulamalar aracılığıyla basit ve hızlı şekilde yapabiliyoruz. Fakat tabi ki bu deneyim her zaman kullanıcı açısından mükemmel olmuyor.

Mobil finans uygulamalarında kullanıcılarının karşılaştığı bir gerçek var ki, bağlantı hızındaki yavaşlamalar, mobil hat veya Wi-Fi üzerinde yaşanan kopmalar o esnada uygulama üzerinde yapılan işlemlerde hata alınmasına hatta kimi zaman bu hataların maddi kayıplara yol açmasına neden olabiliyor. Tüm bunlara ek olarak dolaşımda olan kullanıcılar bir ağdan diğer ağa bağlantı esnasında da veri kaybına tahammül etmek istemiyor. Son yıllarda çoğu mobil finans uygulaması roamingi destekliyor fakat bu destek uygulamaların Ortadaki Adam (MITM) ataklarına karşı korumasız hale getiriyor.

Şekil-9 Mobil Cihaz Üzerinden MITM Saldırı Örneği-[g]

HTTP/3, UDP ve QUIC kullanarak, TCP bağlantılarının düşük performans gösterdiği yüksek paket kaybı ve düşük bant genişliği olan mobil bağlantılar gibi ortamlarda bile performansı etkilemeden iyi çalışacak şekilde tasarlanmıştır.

Http/3 ayrıca, bağlantının alt protokol katmanlarında değişiklikler olduğunda bile (örneğin, bir mobil istemcinin IP adresi değiştiğinde) paketlerin her zaman doğru sunuculara teslim edilmesini sağlamak için Bağlantı Kimliği (Connection ID) özelliğini kullanır. Bu, bağlantının IP adresleri ve diğer ağ bileşenleri arasında sorunsuz bir şekilde taşınmasını sağlar. Bununla birlikte bağlantıya ait ana veri de şifrelenmiş olduğu için, istismarcıların iki parti arasındaki iletişime sızma ihtimalini en düşük seviyeye indirir. [4]

Mobil performansı örneklemek gerekirse, Wi-Fi’a bağlı bir kullanıcı tarafından sunucudan başlatılan bir indirme işlemi, bir ağ değişikliği meydana geldiğinde (Bağlantı , Wi-Fi da kesinti yaşayıp mobil veriye döndüğünde) bağlantının yeniden kurulmasına gerek kalmadan, hücresel ağ bağlantısından işleme devam edebilir. Daha az ek yük, daha fazla verimlilik.

Mobil bankacılık uygulamasını kullanan bir kullanıcıya uyarlandığında mobil cihazından finansal bir işlem yapan kullanıcının yaşadığı ağ kesintisi anlık yapılan işlemlerde (forex,fx,borsa,fon vb.) tekrar bağlantı sağlanması esnasında tüm bağlantının yeni baştan kurulmasıyla finansal kayıp yaşayacaktır.

Açık Kaynak Kütüphaneler de artık http/3 desteğini vermeye başladı. Aşağıda şirketler ve http/3 desteğine ilişkin tabloyu görebiliriz.

Şekil-10 Http/3 Desteği Sunan Açık Kaynak Kütüphaneler-[h]

Şu an en yaygın olarak mobil uygulama geliştirme dili olarak aşağıdaki diller kullanılıyor. Fakat henüz bu dillerin doğrudan http/3 desteği bulunmuyor. Bu kodlama dilleri ile uyumlu kütüphaneler kullanılarak mobil uygulamalarda da http/3 desteği sağlanabilir. [5]

Kotlin (Android)

Java (Android)

Objective-C (iOS)

Flutter (Hibrit)

Swift (iOS)

React Native (Hibrit)

Örnek olarak java, OkHttp, Apache HttpClient ve HttpURLConnection gibi kütüphaneleri kullanıyor bu kütüphaneler http/3 desteğine geçtikçe java üzerinde http/3 desteği sağlanabilir.

React Native örneği vermek gerekirse, React’ın doğrudan http/3 desteği bulunmuyor fakat uyumlu bir http istemcisi seçip kod içinde kullanarak http/3’ü destekler hale getirebilir ve http/3 kullanır hale getirebilirsiniz.

Swift için, Apple’ın popüler kütüphanelerinden NSURLSession veya uyumlu farklı bir istemci kullanarak Swift ile yazılmış MacOS ve IOS uygulamaları da http/3 destekler hale getirilebilir. [6]

Özetle;

Yakın gelecekte tüm uygulamaların http/3 dönüşümüne hep birlikte tanık olacağız. Dolayısıyla şimdiden yazılım geliştiricilerin özellikle mobil uygulamalarda kodlarını bu yönde güncellemeleri ve kendi bilgi birikimlerine bu yönde şekil vermeleri oldukça önemli. Özellikle finans kurumlarında kullanılan mobil uygulamaların ise çok daha hızlı bir şekilde entegrasyonu, ilgili kurumu rakipleri karşısında muhakkak hız, stabilite ve güvenlik anlamında öne geçirecektir.

Kaynakça:

[1] https://www.azion.com/en/blog/benefits-http3-edge-applications/

[2] https://www.cloudflare.com/learning/performance/what-is-http3/

[3] https://www.globalsign.com/en-sg/blog/what-is-http3-protocol

[4] https://www.azion.com/en/blog/benefits-http3-edge-applications/

[5] https://nativapps.com/en/top-programming-languages-for-mobile-app-development/

[6] https://medium.com/the-react-native-log/using-cronet-in-your-mobile-app-7dda3a89c132 , https://thenewstack.io/how-to-get-started-with-http3/ , https://forums.developer.apple.com/forums/thread/682990 , https://github.com/square/okhttp/issues/907

[4] https://www.azion.com/en/blog/benefits-http3-edge-applications/

Şekiller Kaynakça:

Şekil-1 [a]— https://www.linkedin.com/pulse/http-10-vs-11-20-30-swadhin-pattnaik/

Şekil-2[b]- https://gcore.com/learning/what-is-http-/#:~:text=HTTP%2F3%20is%20a%20significant,better%20handling%20of%20network%20fluctuations.

Şekil-3[c] https://www.cdnetworks.com/media-delivery-blog/what-is-quic/

Şekil-4[d] https://blog.chromium.org/2015/04/a-quic-update-on-googles-experimental.html

Şekil-5[e] https://www.debugbear.com/blog/http3-quic-protocol-guide

Şekil-8[f] https://www.weforum.org/agenda/2023/04/charted-there-are-more-phones-than-people-in-the-world/

Şekil-9[g] https://www.researchgate.net/figure/A-man-in-the-middle-attack-A-man-in-the-middle-attack-is-able-to-intercept-network_fig1_282243564

Şekil-10[h] https://en.wikipedia.org/wiki/HTTP/3

--

--