Bu yazımda birini aradığınızda arka tarafta ne gibi işlemler döndüğünü a’dan z’ye açıklama gayretinde bulundum. Yazının içeriğine değinip cağrı süreçlerini anlatmaya başlayalım. Ardından, part 2'de bir çağrının nasıl dinlenebileceğiyle ilgili hususlara değineceğim.
CID (Cell ID), hücre kimliği anlamına gelmektedir. "Hücre" sözcüğünün bize pek bir şey çağrıştırmadığının farkındayım. Bu sebeple öncelikle "hücre"nin tanımlamasını yapalım. (Hücre olarak kullanılan terim "Cell id"dir ve yazımızın devamında bu hususa "Cell ID" veya "CID" şeklinde değineceğiz).
CID, kısaca bir baz istasyonunun sinyal cinsinden kapsadığı coğrafi konumu ifade etmektedir. Bir baz istasyonunun CID kapsamından çıktığınız takdirde başka bir baz istasyonunun CID kapsamına girmiş olursunuz. Zaten bunun tersi bir durumda yani herhangi bir kapsamı olmayan bir konumdaysanız, bir baz istasyonuna bağlanamayacağınızdan mütevellit hattınız hiç çekmeyecektir.
Aşağıdaki şemada 3 adet baz istasyonunun kapsadığı alan ve ilgili cihazın bağlı olduğu baz istasyonunun (Cell0) kapsama alanından yani CID'sinden çıkış yaptığı anda Cell2 adlı baz istasyonunun CID kapsamına gireceği görülmektedir:
Bu noktada yukarıda da anlattığım gibi ilgili kapsam içerisindeki baz istasyonuna bağlanılır. Aynı konumda ve aynı kapsamda birden fazla baz istasyonu varsa en güçlü bağlantıyı hangisi sağlıyorsa onunla iletişim sağlanır.
Şu ana kadar öğrendiklerimize bakıldığında ofansif tarafta bu bilgileri kullanabileceğimiz bir örnek senaryo oluşturalım:
Eğer biz sahte bir istasyon oluşturmak istiyorsak, bunun ilgili cihazın kapsamı içerisinde bulunan baz istasyonlarından daha iyi bir sinyal gücünde olması gerekir. Böylece ilgili cihaz, baz istasyonu ihtiyacını giderebilmek adına bizi tercih edebilir. Bizi tercih ettiği noktada ise artık o cihaza gelen ve o cihazdan çıkan tüm bilgileri alabiliyor oluruz. Bir nevi MITM (Man-in-the-Middle) ve evil twin saldırıları gibi bir yapıdadır denebilir.
Fake bir istasyon oluşturma hususlarına değinmeden önce, normal bir baz istasyonuna bağlanan bir cihazın bağlantı sağlandığı takdirde baz tarafında neler olduğunu anlatmak istiyorum.
Bir cihazın baz istasyonuna bağlanabilmesi adına öncelikle bir CID kapsamında olması gerekir. Ve CID kapsamında olduğu anda baz istasyonları ilgili cihazın sinyal isteğini duyar ve istenen bağlantı sağlanıp o cihaza uygun sinyaller yönlendirilmiş olur. Yani cihazımızın sürekli olarak bir yayında bulunduğunu ve bu yayın sonucunda baz istasyonlarının onun bağlantı talebine cevap vermesi gibi bir durumu düşünmemiz yanlış olmaz.
Şu ana kadar senaryomuzda cihazımız CID kapsamına girdi ve uygun bir baz istasyonuyla iletişime geçti. Şimdi ise bu iletişime geçme süreçlerine değinelim.
Baz istasyonlarinin bagli olan bir cihaza ozel sinyalleri yonlendirebilmesi icin o cihazi tanimlayabildigi bir degere ihtiyac duyar. Bu noktada da devreye IMEI ve IMSI degerleri girer. Bu degerler sayesinde kimlik dogrulama islemi yapilir ve o cihaza ozel olan sinyaller bu degerler uzerinden yonlendirilir.
IMEI çoğunuzun yabancı olmadığı bir tanım olabilir. IMEI cihazlarınızı tanımlayan belirli bir formattaki numaralardır. Baz istasyonu tarafından gerçekleştirilen bir doğrulama işlemi aşağıdaki adımları içerir:
Örnek bir IMEI kontrol isteği aşağıdaki gibidir:
GSM Header: 03ABCD
IMEI: 354489026954123
IMEI üzerinde gerçekleştirilen doğrulama işlemleri bu şekildeydi. Şimdi ise IMSI üzerinde gerçekleştirilen doğrulama işlemlerine göz atalım.
IMSI bir mobil abonenin (Turkcell, Vodafone vb.) benzersiz tanımlayıcısıdır ve bu değer SIM kartın içerisinde tutulur. IMSI doğrulama, baz istasyonu ve mobil ağ arasında gerçekleşir. IMSI doğrulama işlemi aşağıdaki adımları içermektedir:
SIM kartından IMSI Okuma: Baz istasyonu, cihaza bağlı olan SIM karttan IMSI numarasını okur. Bunun için uygun bir istek gönderilir.
Örnek IMSI Okuma İsteği:
APDU Komutu: 00A40004023F00
Yukarıdaki örnekte, APDU (Application Protocol Data Unit) komutu kullanılarak IMSI okuma isteği gönderildiği varsayılmıştır. Bu komut, SIM karttan IMSI numarasını okumak için kullanılır. (Gerçek bir IMSI okuma isteği daha karmaşık olabilir ve kullanılan protokole ve SIM kartın özelliklerine bağlı olarak değişebilir.)
NOT: IMSI doğrulama isteği, mobil ağın abonelerin kimliklerini doğrulamak ve yetkisiz erişimleri engellemek için kullandığı önemli bir güvenlik mekanizmasıdır. Abonenin IMSI numarası, SIM kart tarafından sağlanır ve mobil ağ tarafından doğrulanır. Bu süreç, güvenli bir abonelik yönetimi ve hizmet sağlanması için kritik bir adımdır.
Kanal tahsisi, telekomünikasyon sistemlerinde baz istasyonları tarafından cihazlara iletişim için kullanılacak uygun bir kanalın atanması işlemidir. Bu süreç, sesli veya veri iletimi için kullanılan frekans bantının veya zaman diliminin belirlenmesini içerir.
Bir baz istasyonu, çevresindeki cihazlara hizmet verebilmek için belirli bir frekans bandı veya zaman dilimi aralığına sahiptir. İletişim ihtiyaçlarına bağlı olarak, baz istasyonu bu bandın içinden uygun bir kanalı seçer ve cihaza tahsis eder. Kanal seçimi, baz istasyonunun yoğunluğu, iletişim kalitesi, frekans planlaması ve diğer faktörler dikkate alınarak yapılır.
Kanal tahsisi, baz istasyonunun yönetiminde gerçekleşir ve istasyonlar arasında koordinasyon gerektirebilir. Baz istasyonları, kanal tahsisi sürecini optimize etmek için frekans planlaması ve yönetim algoritmalarını kullanır. Bu algoritmalar, iletişim trafiğini dengelemek, çakışmaları önlemek ve bant genişliğini verimli bir şekilde kullanmak için tasarlanmıştır.
Sonuç olarak, kanal tahsisi telekomünikasyon sistemlerinde önemli bir adımdır. Doğru kanal tahsisi, iletişim kalitesini artırır, çakışmaları önler ve etkin bir iletişim sağlar.
Güvenlik protokolleri, telekomünikasyon sistemlerinde iletişimin güvenliğini sağlamak amacıyla kullanılan protokol ve algoritmalardır. Baz istasyonları, iletişimin gizliliğini ve bütünlüğünü korumak için güvenlik protokollerini uygular. İşte güvenlik protokollerinin temel bileşenleri:
Iletişim sırasında A5 sifrelemesinin nasıl çalıstığına dair örnek bir senaryo oluşturalım ve neler olduğunu görelim:
Senaryo: A ve B kullanıcılarımız, güvenli bir şekilde birbirleriyle iletişim kurmak istiyorlar. İletişimleri, baz istasyonu üzerinden gerçekleşiyor ve A5 algoritması kullanılarak şifreleniyor.
from Crypto.Cipher import ARC4
def a5_encrypt(key, plaintext):
cipher = ARC4.new(key)
ciphertext = cipher.encrypt(plaintext)
return ciphertext
def a5_decrypt(key, ciphertext):
cipher = ARC4.new(key)
plaintext = cipher.decrypt(ciphertext)
return plaintext
# Anahtar oluşturma
key = b"0123456789ABCDEF" # 16 byte anahtar (128 bit)
# İletilecek veri
veri = b"Merhaba, nasılsınız?"
# Cihaz A, veriyi şifreleyerek gönderiyor
sifreli_veri = a5_encrypt(key, veri)
print("Cihaz A'dan Şifrelenmiş Veri:", sifreli_veri)
# Cihaz B, alınan şifreli veriyi çözüyor
cozulmus_veri = a5_decrypt(key, sifreli_veri)
print("Cihaz B'de Çözülmüş Veri:", cozulmus_veri.decode())
A5 algoritması (ARC4) kullanılarak şifreleme ve çözme işlemleri gerçekleştirilmektedir. İki cihaz arasında güvenli bir iletişim sağlamak için aynı anahtar kullanılır. Cihaz A, veriyi şifreler ve şifreli veriyi cihaz B'ye gönderir. Cihaz B, aldığı şifreli veriyi çözerek orijinal metni elde eder.
Bu sadece bir örnek olup, gerçek uygulamalar için daha karmaşık güvenlik protokollerini ve algoritmalarını dikkate almanız önemlidir. Ayrıca, güvenli anahtar paylaşımı ve anahtar yönetimi gibi diğer güvenlik önlemlerini de göz önünde bulundurmanız gerekebilir.
Çağrı yönlendirme, telekomünikasyon sistemlerinde bir çağrının hedef cihaza doğru yönlendirilmesini sağlayan bir işlemdir. Bu işleme örnek olarak; Bir numarayı aradığınızda “cağrı yönlendiriliyor” gibi bir çıktı alırsınız. İşte bu çıktının verilme sebebi hedef cihaza yönlendiriliyor olmanızdır.
İletişim kurmak isteyen bir kullanıcı, hedef cihazı aradığında, çağrı isteği önce bulunduğu konumdaki en yakın baz istasyonuna iletilir. Ardından baz istasyonu, çağrının hedef cihazın bulunduğu baz istasyonuna yönlendirilmesini sağlar. Tabii bu tek bir yönlendirmedir hedefin daha uzak olduğu durumlarda yönlendirme işlemi birden fazla baz istasyonu arasında gerçekleşir. İletişimin hedef cihaza doğru yönlendirilmesi ve istenilen cihaza ulaşması sonucunda da çağrı isteği tamamlanmış olur ve bu noktada iletişim başlar.