Posted by kecoak on Jan 5, 2011

A5 Cracking – What to crack?

Ini gambaran tentang teknologi otentikasi dan enkripsi GSM (2G) yang menjadi latar belakang aktivitas GSM Cracking. Umumnya bentuk implementasi sifatnya dibatasi dalam ruang lingkup tertentu seperti hasil riset organisasi, perusahaan atau komunitas tertentu dan tidak di share, namun konsep dasar yang menjadi pengetahuan umum adalah sama dalam hal A5 Cracking. Konsep dasar itulah yang tertuang dalam tulisan ini.

Hal pertama yang mejadi concern dalam hubungan nya dengan security pada teknologi GSM saat awal-awal implementasi adalah otentikasi, yang berarti bagaimana caranya agar network (operator) bisa menentukan apakah suatu subscriber legal atau tidak. Legal dalam arti subscriber itu memang subscriber operator yang bersangkutan (mis: subscriber tsel hanya boleh pakai jaringan tsel).

Setiap subscriber dibedakan berdasarkan IMSI (International Mobile Subscriber Identity), klo di dunia IP seperti alamat Mac Address. Informasi IMSI ini dimasukan kedalam simcard subscriber dan juga kedalam database operator (HLR – Home Location Register). Untuk kebutuhan otentikasi, dimasukan juga kedalam simcard dan HLR suatu data key yang juga unik untuk setiap subscriber, disebut Ki. Jadi untuk setiap subscriber yang nantinya akan menggunakan network suatu operator harus memiliki 2 informasi, IMSI dan Ki, dimana nilainya sama antara yg tersimpan di simcard (subscriber) dan tersimpan di HLR (operator).

Dalam dunia telekomunikasi umumnya terbagi menjadi 2 bagian besar, yaitu bagian core network dan bagian transmisi, biasa disebut NSS (untuk core network) dan BSS (untuk transmisi). Jenis-jenis perangkat pada network di implementasikan berbeda oleh setiap vendor, misal: ada yang menyatukan bagian HLR dengan bagian AC, ada yang menyatukan bagian HLR dengan MSC+AC, dsb.

Dalam dunia GSM digunakan algoritma A3 dan A8 sebagai bagian dari proses otentikasi, dan implementasi algoritma ini oleh operator disimpan pada perangkat AC (Authentication Center) Core Network. Algoritma ini sifatnya (seharusnya) exclusive, dalam arti hanya orang-orang tertentu atau bagian tertentu dari vendor penyedia jasa telekomunikasi yang menyimpan dan dapat mengakses informasi detail tentang algoritma tersebut. Vendor disini contohnya adalah ericsson, alcatel-lucent, nokia siemens networks, huawei, zte, dll.

Untuk subscriber, algoritma A3 dan A8 disimpan dalam SIM Card. Singkatnya, ketika operator memproduksi suatu simcard, maka data-data yang dimasukan kedalam simcard tersebut antara lain: IMSI, Ki, A3, A8. Implementasi algoritma yang digunakan (A3 dan A8) merupakan implementasi yang sama seperti yang disimpan dalam AC operator bersangkutan.

Ada satu lagi algoritma yang akan digunakan dalam komunikasi GSM, yaitu A5. Algoritma ini disimpan dalam BTS (operator) dan juga dalam Mobile Equipment (ME) alias handphone yang digunakan oleh subscriber.

Gambar dibawah ini menunjukan summary algoritma – algoritma yang digunakan pada GSM (2G):

Ketika subscriber terhubung dengan network (switch-on hape nya, atau pertama kali aktifin simcard) suatu operator ada yang disebut istilah LocUp (Location Update). Hape akan membaca informasi IMSI yang tersimpan dalam simcard dan meneruskan nya ke BTS -> BSC -> MSC/VLR -> HLR.

BTS merupakan perangkat yang berhubungan langsung dengan hape yang digunakan secara wireless, jadi hape akan berkomunikasi melalui freq tertentu (mis: GSM-900 MHz atau GSM-1800 MHz) dengan BTS. BTS seperti Access Point (AP) yang jumlahnya banyak, BTS-BTS tersebut akan terhubung dengan BSC (bisa dibayangkan BSC seperti suatu switch). Dari BSC, data akan diteruskan ke MSC/VLR (bisa dibayangkan MSC/VLR seperti router). Dari MSC/VLR data akan diteruskan ke HLR (bisa dibayangkan HLR seperti Database Server).

Jadi pada tahap ini, HLR akan mendapatkan informasi bahwa suatu simcard dengan identitas IMSI tertentu sedang meminta untuk konek ke network operator. HLR akan mencari informasi Ki sesuai dengan IMSI yang diterima. Data Ki tersebut akan di kirimkan ke bagian AC (Authentication Center).

AC akan menghasilkan 3 buah output yang biasa disebut Authentication Triplet, yaitu RAND + SRES + Kc.

  • RAND: merupakan suatu informasi random yang dihasilkan dari Random Number Generator.
  • SRES: merupakan hasil output dari algoritma A3 yang mengambil data RAND + Ki  sebagai inputan nya.
  • Kc: merupakan hasil output dari algoritma A8 yang mengambil data RAND + Ki sebagai inputan nya.

Authentication Triplet yang dihasilkan oleh AC akan dikirimkan ke MSC/VLR.

Pada fase ini, MSC/VLR (ditulis spt itu krn biasanya MSC dan VLR berada pada mesin yang sama) akan mulai menentukan apakah suatu subscriber boleh atau tidak mengakses network tersebut.

Untuk menentukan suatu subscriber sah atau tidak, maka MSC/VLR akan mengirimkan data RAND kepada subscriber. Subscriber menerima melalui handphone nya, untuk kemudian data RAND tersebut + data Ki yang disimpan pada simcard dijadikan input pada algoritma A3 yang juga tersimpan dalam simcard. Output dari algoritma A3 tersebut berupa SRES, SRES ini akan dikirimkan kembali oleh handphone pada operator. Skenario ini dibuat dengan pemikiran bahwa untuk menjaga keamanan data key subscriber GSM, informasi IMSI dan Ki tidak seharusnya dikirimkan antara operator dan subscriber. Jadi yang dikirimkan untuk proses otentikasi hanya hasil hash nya aja.

MSC/VLR akan membandingkan data SRES yang didapatkan dari AC dengan data SRES yang didapatkan dari subscriber. Jika sama, maka subscriber tersebut akan diperbolehkan LocUp dan terintegrasi dengan network operator. Pada tahap ini bisa dikatakan bahwa proses otentikasi telah berhasil.

Setelah subscriber dinyatakan sah, maka MSC/VLR akan mengirimkan data terakhir ke BTS (BTS yang melayani subscriber tersebut) yang sebelumnya diberikan oleh AC, yaitu Kc.

Selain masalah otentikasi, security pada GSM juga memikirkan skenario enkripsi (ciphering) data yang dikirimkan antara handphone subscriber dengan BTS operator. Sebelumnya dikatakan bahwa algoritma A5 disimpan pada BTS dan handphone, algoritma inilah yang akan meng-handle proses enkripsi/chipering data antara handphone dan BTS.

Algoritma ini membutuhkan semacam ‘key’, maka Kc (data terakhir dari AC) akan digunakan sebagai ‘key’.

Jadi jika kita perhatikan ketika subscriber melakukan proses LocUp sebelum dinyatakan sah sebagai subscriber suatu operator, data-data yang dikirimkan antara handphone dan BTS tidak dilindungi oleh enkripsi. Setelah proses LocUp selesai, maka handphone akan menggunakan data RAND yang sebelumnya dikirimkan oleh MSC/VLR dan data Ki yang tersimpan dalam simcard sebagai input algoritma A8 yang tersimpan pada simcard. Outputnya adalah Kc.

Pada tahap ini kita bisa lihat bahwa informasi Kc yang terdapat pada handphone dan informasi Kc yang disimpan pada BTS akan sama.

Selanjutnya, komunikasi antara handphone dan BTS akan selalu di enkripsi menggunakan algoritma A5 serta key Kc.

Kc + data (mis: data voice atau sms) -> algoritma A5 -> encrypted data.

A5 ini berbeda dengan A3 dan A8 karena bisa di kembalikan datanya (model nya seperti encoding karena pada dasarnya yg dikirimkan adalah deretan bit-bit yang diubah oleh algoritma A5 saat dikirimkan) asalkan ‘key’ nya yg dalam hal ini Kc diketahui.

Seharusnya saat ini sudah jelas, jika kita ingin menyadap komunikasi GSM (2G) seseorang secara offline (sniff data seperti traffic sms atau voice dengan mendengarkan pada frekuensi yang tepat dari udara dan kemudian di-decrypt) maka yang dibutuhkan adalah:

  • 1) Metode untuk ‘mendengarkan’ frequensi tertentu yang digunakan oleh orang tersebut dengan suatu BTS. Hasil dari metode ini tentunya kumpulan data gak jelas karena merupakan gabungan dari data komunikasi antar beberapa orang yang menggunakan frequensi yang sama dalam bentuk ter enkripsi.
  • 2) Metode untuk memisahkan (parsing) dari kumpulan data tersebut (memisahkan informasi seperti control data, signaling bit, dengan data voice / sms). Hasil nya adalah data voice / sms yang terenkripsi.
  • 3) Metode untuk mencari ‘key’ alias Kc dari encrypted data.
  • 4) Metode untuk melakukan reverse dari encrypted data dengan menggunakan ‘key’ / Kc diatas.
  • 5) Metode untuk mengubah deretan bit hasil reverse menjadi text (sms) ataupun voice.

5 metode tersebut yang menjadi fokus riset GSM Cracking. Berikut ini intisari jawaban dari metode-metode yang dibutuhkan diatas:

  • 1) dilakukan menggunakan USRP (Universal Software Radio Peripheral, www.ettus.com) dan GNU Radio (www.gnuradio.org). Intinya adalah menggunakan perangkat USRP (based on USB) atau USRP2 (based on ethernet) untuk mengambil data dengan frequensi tertentu dari udara dan mengubahnya menjadi satu file yang bisa dibaca pada komputer.
  • 2) dilakukan menggunakan software airprobe. airprobe akan melakukan proses parsing (dari signaling data dll) untuk mendapatkan hanya ‘encrypted data’.
  • 3) dilakukan menggunakan kraken yang baru-baru ini dipresentasikan pada blackhat. Kraken akan membaca encrypted data yang dihasilkan airprobe, dan menggunakan rainbow table akan mencari nilai Kc dari encrypted data tersebut.
  • 4) dengan menggunakan Kc yang dihasilkan kraken, airprobe dapat melakukan proses reverse dari encrypted data sehingga menghasilkan bit-bit dari voice ataupun sms.
  • 5) dengan software seperti toast, traffic voice berbentuk bit-bit dapat di convert menjadi file suara yang dapat didengarkan melalui speaker.
Post a Comment

4 Responses to “A5 Cracking – What to crack?”

  1. rian says:

    ow,kalo cara kpk nyadap telpon, kyk gitu ya?,.

  2. xun says:

    salam hormat
    kk, belum jelas soal metode pertama ”maklum newbie”
    untuk mendengarkan frequensi yang digunakan orang, apa kita harus memakai hadware tertentu (perangkat USRP) atau itu bisa dilakukan dengan wifi?
    satu lagi kk
    yang dimaksud “perangkat USRP (based on USB) dan USRP2 (based on ethernet) apa ya?
    trims

  3. Kuli_Telco says:

    belajar lagi deh mas…sebelum nulis lagi artikel ttg dunia telco 😀

  4. wah ada yang kayak sim card gitu.. buat apa ya??

Leave a Reply

Your email address will not be published. Required fields are marked *