it-swarm-id.com

Seberapa sulit untuk mencegat SMS (otentikasi dua faktor)?

Banyak mekanisme otentikasi dua faktor menggunakan SMS untuk mengirimkan frasa sandi sekali pakai kepada pengguna. Jadi seberapa aman itu? Apakah sulit untuk mencegat SMS = pesan yang mengandung frasa sandi? Apakah jaringan seluler menggunakan jenis enkripsi apa pun pada SMS?

Saya menemukan artikel yang menarik mengenai otentikasi dua faktor dan cara-cara penyerangannya:

http://www.schneier.com/blog/archives/2012/02/the_failure_of_2.html

121

[~ # ~] gsm [~ # ~] mencakup beberapa perlindungan melalui kriptografi. Ponsel dan penyedia (mis. Stasiun pangkalan yang merupakan bagian dari jaringan penyedia) mengautentikasi satu sama lain secara relatif ke rahasia bersama, yang diketahui oleh penyedia dan disimpan dalam kartu SIM pengguna. Beberapa algoritma yang dikenal dengan nama kode "A3" dan "A8" terlibat dalam otentikasi. Kemudian data (seperti yang dikirim melalui tautan radio) dienkripsi dengan algoritma yang disebut "A5" dan kunci yang berasal dari A3/A8 dan rahasia bersama.

Ada beberapa algoritma aktual yang bersembunyi di bawah nama "A5". Algoritma mana yang digunakan tergantung pada penyedia, yang, pada gilirannya, dibatasi oleh peraturan lokal dan apa yang bisa dilisensikan dari konsorsium GSM. Juga, penyerang aktif (dengan stasiun pangkalan palsu) berpotensi dapat memaksa ponsel untuk menggunakan varian lain, berbeda dari apa yang akan digunakan sebaliknya, dan tidak ada banyak telepon yang akan memperingatkan pengguna tentang hal itu (dan bahkan lebih sedikit pengguna siapa yang akan peduli).

  • A5/0 berarti "tidak ada enkripsi". Data dikirim tidak terenkripsi. Di beberapa negara, ini adalah satu-satunya mode yang diizinkan (saya pikir India adalah negara seperti itu).
  • A5/1 adalah algoritma "kuat" lama, yang digunakan di Eropa dan Amerika Utara.
  • A5/2 adalah algoritme "lemah" lama, yang secara nominal dimaksudkan untuk "negara-negara yang berteman baik tetapi kami tidak sepenuhnya percaya" (itu tidak dijabarkan seperti itu dalam spesifikasi GSM, tapi itulah idenya).
  • A5/3 adalah algoritma yang lebih baru untuk GPRS/UMTS.

A5/3 adalah cipher blok yang juga dikenal sebagai [~ # ~] kasumi [~ # ~] . Ini menawarkan keamanan yang layak. Ini memiliki beberapa kekurangan yang akan membuatnya "rusak secara akademis", tetapi tidak ada yang benar-benar berlaku dalam praktiknya.

A5/2 memang lemah, seperti yang dijelaskan dalam laporan ini . Serangan membutuhkan sepersekian detik, tunduk pada perhitungan awal yang membutuhkan waktu kurang dari satu jam pada PC dan membutuhkan penyimpanan beberapa gigabytes (tidak banyak). Ada detail teknis, sebagian besar karena protokol GSM itu sendiri kompleks, tetapi orang dapat berasumsi bahwa lapisan A5/2 mudah pecah.

A5/1 lebih kuat, tetapi tidak terlalu kuat. Ini menggunakan kunci 64-bit, tetapi struktur algoritma lebih lemah dan memungkinkan untuk serangan dengan kompleksitas tentang 242.7 operasi dasar (lihat artikel ini yang saya tulis 12 tahun lalu). Ada beberapa publikasi yang mengubah kompleksitas ini, sebagian besar dengan melakukan perhitungan awal dan menunggu keadaan internal algoritma untuk mencapai struktur tertentu; meskipun publikasi tersebut mengiklankan angka kompleksitas yang sedikit lebih rendah (sekitar 240), mereka memiliki kelemahan yang membuatnya sulit untuk diterapkan, seperti membutuhkan ribuan bit plaintext yang dikenal. Dengan hanya 64 bit plaintext yang diketahui, kompleksitas mentahnya adalah 242.7. Saya belum mencoba mengimplementasikannya selama satu dekade, jadi dapat dibayangkan bahwa PC modern akan menjalankannya lebih cepat daripada workstation yang saya gunakan saat itu; sebagai perkiraan kasar, PC quad core dengan kode yang dioptimalkan secara menyeluruh harus dapat memecahkannya dalam satu jam.

Ukuran status internal A5/1, dan cara A5/1 diterapkan untuk mengenkripsi data, juga membuatnya rentan terhadap pertukaran waktu-memori, seperti tabel pelangi . Sekali lagi, lihat artikel Barkan-Biham-Keller. Ini mengasumsikan bahwa penyerang menjalankan sekali perhitungan yang benar-benar masif, dan menyimpan terabyte data; setelah itu, fase serangan online bisa sangat cepat. Detailnya sangat sedikit, tergantung pada berapa banyak ruang penyimpanan yang Anda miliki, berapa banyak daya CPU yang tersedia untuk fase online, dan berapa lama Anda siap menunggu hasilnya. Fase perhitungan awal sangat besar tetapi bisa dilakukan secara teknologi (seribu PC sudah cukup); ada proyek terbuka terdistribusi untuk itu tapi saya tidak tahu seberapa jauh mereka berjalan.

Intersepsi SMS masih merupakan skenario tertentu. Ini bukan percakapan suara penuh; jumlah sebenarnya dari data yang dipertukarkan kecil, dan koneksi berakhir setelah waktu yang cukup singkat. Ini dapat membatasi penerapan serangan yang disebutkan di atas. Selain itu, serangannya harus cepat: tujuan serangannya adalah untuk mengambil kata sandi rahasia yang dikirim sebagai SMS, sehingga penyerang dapat menggunakannya sebelum pengguna normal. Penyerang harus cepat:

  • Server biasanya menerapkan batas waktu singkat pada kata sandi itu, seperti beberapa menit. SMS transmisi seharusnya hanya beberapa detik.
  • Pengguna tidak sabar (pengguna tidak pernah). Jika dia tidak mendapatkan SMS dalam lima menit, dia mungkin akan meminta yang baru, dan sistem otentikasi dua faktor yang dipikirkan dengan baik di server kemudian akan membatalkan kata sandi satu kali sebelumnya.

Hal-hal yang lebih mudah bagi penyerang jika dia telah melanggar faktor otentikasi pertama (itu sebabnya kami menggunakan otentikasi dua faktor: karena satu saja tidak cukup). Dalam hal itu, penyerang dapat memulai permintaan otentikasi sementara pengguna target sangat tidak menyadarinya, dan dengan demikian tidak mungkin untuk meningkatkan alarm jika ia gagal menerima SMS, atau, akhirnya, jika ia menerima _ yang tidak diinginkan SMS (penyerang dapat melakukan serangan pada malam hari; pengguna yang diserang akan menemukan _ yang tidak berdasar SMS hanya di pagi hari, ketika dia bangun, memberikan beberapa jam bagi penyerang untuk melakukan kejahatannya).

Enkripsi GSM hanya untuk tautan radio. Dalam semua hal di atas, kami berkonsentrasi pada penyerang yang menguping data yang dikirim antara ponsel dan ponsel. stasiun pangkalan. Peralatan radio yang dibutuhkan tampaknya tersedia di luar rak , dan mudah dipahami bahwa skenario ini berlaku dalam praktik. Namun, SMS tidak hanya melakukan perjalanan dari stasiun pangkalan ke ponsel. Perjalanan lengkapnya dimulai di fasilitas server, kemudian melalui Internet, dan kemudian jaringan penyedia, hingga mencapai stasiun pangkalan - dan hanya pada saat itu ia dienkripsi dengan varian A5 apa pun yang digunakan.

Bagaimana data diamankan dalam jaringan penyedia, dan antara penyedia dan server yang ingin SMS dikirim, berada di luar ruang lingkup spesifikasi GSM. Jadi apapun yang terjadi. Bagaimanapun, jika penyerang adalah penyedia, Anda kalah. Lembaga penegak hukum, ketika mereka ingin menguping orang, biasanya melakukannya dengan meminta dengan baik kepada penyedia, yang selalu patuh. Inilah mengapa kartel narkoba, terutama di Meksiko dan Kolombia, cenderung membangun jaringan sel mereka sendiri .

104
Thomas Pornin

Jaringan GSM dienkripsi . Tapi itu tidak membuatnya menjadi anti peluru tentu saja. Itu bisa dikompromikan. Namun, serangan Rook (dan kemudian lebih rinci Thomas Pornin) dijelaskan sangat lokal dan membutuhkan upaya yang signifikan untuk mencapai. Mereka bukan tidak mungkin, tetapi sangat sulit. Ini memerlukan pemutusan jaringan GSM di dekat ponsel pada saat yang sama SMS dikirim. Ada juga potensi seseorang di operator jaringan untuk menyadap SMS. Jika kita berbicara tentang skenario keamanan-nasional/spionase, di mana orang tertentu menjadi sasaran dan penyerang memiliki cara yang sangat canggih dan banyak uang untuk dibelanjakan, maka itu sangat mungkin terjadi. .

Bahkan jika ini SMS serangan berhasil, mungkin juga memerlukan memperoleh nama pengguna dan kata sandi (dengan asumsi SMS bukan satu-satunya metode otentikasi, tetapi lebih ke-2) komponen) .Ada alternatif lain, di mana pengguna menginisialisasi pesan SMS ke server, dan server dapat memeriksa apakah cocok dengan token/token yang diminta. Server juga dapat memverifikasi ID pemanggil pengirim asli) Tentu saja ini juga memiliki keterbatasan, tetapi jika dilakukan dengan benar dapat memberikan sedikit lebih banyak perlindungan secara teoritis.

Jika, seperti dalam kebanyakan kasus, idenya adalah untuk meningkatkan keamanan dengan menawarkan otentikasi 2 faktor, kemudian menambahkan SMS ke dalam campuran secara dramatis memperbaikinya di atas nama pengguna/kata sandi standar. Fakta bahwa Anda menggunakan dua saluran komunikasi terpisah (TCP/IP dan GSM) membuatnya lebih aman. Sebagai perkiraan pribadi yang sangat kasar, saya akan mengatakan SMS token kurang lebih setara dengan token berbasis perangkat keras, keamanan bijaksana, tentu saja tuhan (atau iblis) ada di detailnya.

14
Yoav Aner

Sementara diskusi tentang enkripsi menarik, saya pikir pertanyaan kuncinya adalah: apakah operator cenderung peduli tentang keamanan? Saya khawatir jawabannya adalah "tidak". Apa insentif mereka untuk mengeluarkan uang untuk mengamankan sistem SMS? Apakah mereka bahkan mengelolanya atau tidak menggunakan sumber daya? Jaminan keamanan apa yang mereka tawarkan? Seberapa besar Anda mempercayai orang-orang yang mengelola server?

Lebih lanjut, ini tentang ini: Jika Anda memiliki 100 juta pelanggan dan Anda membuatnya sedikit lebih sulit untuk mengatur ulang kata sandi Anda, panggilan helpdesk Anda akan meningkat. Inilah mengapa sangat mudah mengambil alih akun seseorang.

Selain itu, seperti yang Anda lihat dengan kerangka Otoritas Sertifikat, infrastruktur SMS akan menjadi target serangan.

Baru-baru ini saya menulis posting blog tentang merangkum poin-poin ini dengan tautan: http://www.wikidsystems.com/WiKIDBlog/fraudsters-defeat-poor-risk-management-not-two-factor-authentication . Dari sudut pandang manajemen risiko, SMS auth lebih baik daripada kata sandi, tapi jangan terlalu lama mengandalkannya. Serangan saat ini menargetkan lembaga keuangan, tetapi saat biaya serangan turun, akan ada lebih.

9
nowen

Sistem keamanan multi-faktor tidak berguna jika layanan memiliki kerentanan umum seperti XSS, SQL Injection atau perlindungan lapisan transport tidak memadai . Kelemahan ini dapat menyebabkan kompromi akun atau informasi terlepas dari sistem otentikasi yang Anda gunakan.

Yang dikatakan jika Anda secara fisik dekat dengan korban, Anda dapat melakukan serangan yang sangat jahat. Misalnya jika korban Anda menggunakan operator GSM maka penyerang dapat memecah GSM dengan rainbowtable dan memotong pesan SMS. Jika Anda mengontrol jaringan korban Anda, maka Anda bisa gunakan alat seperti SSLStrip atau SSLSniff untuk menyerang portal masuk HTTP.

"Remember Me" is evil . Beberapa implementasi SMS otentikasi mutulti-factor (Seperti Google) memungkinkan Anda memberkati perangkat selama 30 hari. Ini hanya cookie tetap yang berfungsi sebagai token otentikasi selama 30 hari. Jika Anda sudah memiliki mesin korban Anda, maka Anda dapat memperoleh cookie ini dan menggunakannya untuk otentikasi. Tidak ada cara untuk mengimplementasikan fitur "Remember Me" dengan aman.

Token kriptografi berbasis perangkat keras jauh lebih sulit untuk dikompromikan. Ini benar-benar langkah dari SMS, karena ini adalah token yang Anda miliki dan harus sulit untuk dikompromikan. Ini berlaku untuk sebagian besar, kecuali tentu saja Anda menggunakan token perangkat keras RSA .

6
rook

Jawaban lain sudah menjelaskan keamanan GSM dan teknologi yang terlibat terhadap serangan teknis.

Namun, ada sejumlah serangan lain yang memotong perlindungan teknis.

The Artikel Wikipedia Jerman tentang nomor otentikasi transaksi (yang sering dikirim melalui SMS) mencantumkan beberapa serangan:

  • mencuri atau diam-diam mengakses ponsel korban
  • menginstal malware di ponsel, terutama jika itu adalah smartphone
  • serangan orang dalam di penyedia layanan seluler
  • menggunakan rekayasa sosial untuk menghindari sistem, misalnya dengan:
    • mendapatkan akses ke pesan
    • memperoleh kartu SIM baru dari penyedia layanan
    • memindahkan nomor telepon ke akun lain

Misalnya, pada 2015 ada serangkaian transfer uang palsu di Jerman, di mana penipu memperoleh kartu SIM baru dengan nama pelanggan. Serangan serupa telah terjadi sebelumnya, oleh karena itu penyedia telepon seluler telah meningkatkan otentikasi pelanggan yang memesan kartu SIM baru. Untuk menghindari hal ini, ketika memanggil penyedia telepon, penipu menyamar sebagai karyawan dari sebuah toko telepon seluler, dan mengaku mengaktifkan SIM atas nama pelanggan (Sumber [Jerman]: Perbankan Online: Neue Angriffe auf die mTAN ).

Jelas, semua perlindungan teknis tidak berguna jika penyerang berhasil mengelak dari mereka.

6
sleske

Akhir-akhir ini, Banyak aplikasi ponsel meminta akses ke SMS pesan dan pengguna mengizinkannya karena mereka tertarik dengan aplikasi tersebut. Ini membuat serangan lebih sulit daripada mencegat SMS di jaringan seluler.

3
AdnanG

Saya tahu ini tidak langsung menjawab pertanyaan Anda, tetapi saya harap ini menjawab beberapa masalah:

Jika implementasi dilakukan dengan benar, saya tidak akan terlalu khawatir tentang SMS intersepsi. Ini karena satu kali SMS autentikator menawarkan peluang besar untuk nyata -waktu waspada terhadap kemungkinan serangan. Jika autentikator disadap , sangat mungkin Anda akan segera menyadarinya dan dengan cepat dapat bereaksi.

Jika SMS dicegat selama sesi otentikasi yang Anda coba mulai, salah satu dari dua hal harus terjadi:

  • Jika Anda berhasil mengotentikasi terlebih dahulu, upaya penyerang harus gagal. Ini karena sistem harus menolak upaya penggunaan kembali autentikator. Dalam situasi ini, serangan itu digagalkan sepenuhnya.

  • Jika penyerang berhasil mengotentikasi terlebih dahulu, upaya otentikasi Anda harus gagal karena pengautentikasi ulang. Sistem juga harus memberi tahu Anda bahwa ini adalah alasan kegagalan. Pada titik ini, Anda harus mengambil tindakan apa pun yang diperlukan untuk mengamankan kembali akun Anda. Mampu melakukannya dengan cepat akan membatasi dampak potensial dari serangan.

Jika penyerang mencoba melakukan otentikasi sementara Anda tidak, Anda harus diberitahu oleh kenyataan bahwa Anda akan menerima SMS yang tidak Anda minta. Ada beberapa cara praktis yang dengannya seseorang mungkin diam-diam secara diam-diam seseorang mencegat SMS dikirim ke telepon Anda tanpa Anda juga menerimanya atau segera menyadari ada sesuatu yang salah.

Ini semua tetap diperdebatkan, jika Anda mengalami serangan Man-in-the-Browser .

Juga, karena sebagian besar SMS implementasi otentikasi menggunakan autentikasi SMS sebagai kedua faktor, saya benar-benar akan lebih peduli tentang bagaimana pertama faktor otentikasi dikompromikan.Jika tidak dilakukan melalui rekayasa sosial telanjang, itu mungkin melalui beberapa browser atau eksploitasi OS yang menghasilkan keylogger pada sistem Anda. Kemudian, kami tidak banyak langkah dari situasi Man-in-the-Browser yang secara efektif menghasilkan kompromi total terlepas dari metode otentikasi Anda.

2
Iszi

Semua orang (bahkan Schneier?) Tampaknya kehilangan bagian penting:

Jika ponsel Anda hilang/dicuri, Anda sudah bersulang , karena SIM Anda ada di dalamnya!

Mengherankan bagi saya bahwa tampaknya tidak ada yang menyadari hal ini sejauh yang saya tahu, tetapi SMS menderita kenyataan bahwa itu tidak mengharuskan Anda untuk mengakses data pada telepon Anda.

Bahkan jika telekomunikasi dienkripsi, dan bahkan jika telepon Anda terkunci dan terenkripsi, jika Anda memiliki SMS atau autentikasi berbasis panggilan diaktifkan dan telepon Anda dicuri, Anda benar-benar bersulang sampai waktu Anda berhasil menemukan cara untuk membuat penyedia Anda menonaktifkan SIM Anda ( dan melapor ke penegak hukum, dll.) Seorang penyerang benar-benar membutuhkan kurang dari 1 menit untuk mengeluarkan kartu SIM Anda dan memasukkannya ke telepon lain untuk mendapatkan pesan teks, sehingga pada saat Anda berhasil melaporkan masalah tersebut, ia hampir pasti akan telah memiliki kesempatan untuk mencoba ini selusin kali dan kemudian matikan ponsel Anda atau pasang kembali sehingga ia tidak dapat dilacak.

Keberuntungan Anda saja di sini ketika menggunakan SMS 2FA adalah jika penyerang tidak mengetahui nama pengguna Anda , atau bahwa SIM Anda terkunci dengan aman terhadap penggunaan di telepon lain:

  1. Jika ponsel Anda hidup ketika hilang atau dicuri, kemungkinan itu ditulis di suatu tempat di layar login Anda atau akan muncul sebagai pemberitahuan di beberapa titik.

  2. Jika Anda baru saja dirampok dan Anda berhasil mematikan telepon, ID atau kartu kredit Anda mungkin ada pada ponsel Anda, sehingga nama pengguna atau email Anda mungkin tidak terlalu sulit ditebak atau ditemukan di Google. Jika ponsel Anda aktif, maka (1) juga masih berisiko.

  3. Jika penyerang tahu Anda entah bagaimana, maka Anda hampir pasti bersulang.
    Seperti, katakanlah, Anda meninggalkan ponsel Anda di meja saat makan siang, dan seseorang datang untuk menukar SIM, mendapatkan SMS, dan menukar kembali. Hanya perlu beberapa menit jika tidak ada yang menonton.

Jadi, sementara Anda dapat khawatir tentang seseorang yang mencoba mencegat komunikasi Anda dengan alat seperti Stingray atau dengan menyusup ke fasilitas penyedia telepon Anda, kenyataannya adalah bahwa orang yang berada di tengah bukan risiko yang sebenarnya. untuk kebanyakan orang. Risiko sebenarnya adalah pada titik akhir - mis., Anda . Kehilangan ponsel Anda, dan verifikasi panggilan-telepon dan SMS akan sepenuhnya melawan Anda, tidak peduli seberapa kuat kata sandi atau enkripsi Anda.

1
user541686