Serangan jaringan mim. Deteksi serangan man-in-the-middle (serangan MitM)

Di mana penyerang, setelah terhubung ke saluran antar pihak, mengganggu protokol transmisi, menghapus atau mendistorsi informasi.

YouTube ensiklopedis

    1 / 3

    ✪ No. 4 BAGAIMANA MENJADI HACKER? "Serangan Broker"! |PERETASAN dari A sampai Z|

    ✪ Serangan MiTM di iOS. Teknik dan konsekuensi

    ✪ Garis Waktu Bitcoin Serangan Peretas dan Exchange Hacks di Pasar Cryptocurrency (2012 - 2018)

    Subtitle

Prinsip serangan

Serangan biasanya dimulai dengan penyadapan pada saluran komunikasi dan diakhiri dengan upaya kriptanalis untuk mengganti pesan yang disadap dan mengekstraknya. informasi berguna, arahkan ke sumber daya eksternal.

Misalkan objek A berencana mengirimkan sejumlah informasi ke objek B. Objek C memiliki pengetahuan tentang struktur dan properti metode transmisi data yang digunakan, serta fakta rencana transmisi informasi aktual yang direncanakan untuk disadap oleh C. Untuk melakukan serangan, C “muncul” ke objek A sebagai B, dan ke objek B sebagai A. Objek A, secara keliru percaya bahwa ia mengirimkan informasi ke B, mengirimkannya ke objek C. Objek C, setelah menerima informasi, dan melakukan beberapa tindakan dengannya (misalnya, menyalin atau memodifikasi untuk tujuan mereka sendiri) meneruskan data ke penerima itu sendiri - B; objek B, pada gilirannya, percaya bahwa informasi tersebut diterima langsung dari A.

Contoh serangan

Injeksi kode berbahaya

Serangan man-in-the-middle memungkinkan kriptanalis memasukkan kodenya ke dalamnya email, pernyataan SQL dan halaman web (yaitu mengizinkan injeksi SQL, injeksi HTML/skrip, atau serangan XSS), dan bahkan memodifikasi biner yang diunggah pengguna untuk mendapatkan akses ke akun pengguna atau mengubah perilaku program yang diunduh oleh pengguna dari Internet.

Serangan Turunkan Versi

Istilah “Serangan Downgrade” mengacu pada serangan di mana cryptanalyst memaksa pengguna untuk menggunakan fungsi yang kurang aman, protokol yang masih didukung karena alasan kompatibilitas. Jenis serangan ini dapat dilakukan pada protokol SSH, IPsec dan PPTP.

Untuk melindungi dari Serangan Downgrade, protokol yang tidak aman harus dinonaktifkan setidaknya di satu sisi; Mendukung dan menggunakan protokol aman secara default saja tidak cukup!

SSH V1, bukan SSH V2

Penyerang mungkin mencoba mengubah parameter koneksi antara server dan klien ketika koneksi dibuat di antara keduanya. Menurut ceramah yang diberikan pada Konferensi Blackhat Eropa 2003, seorang cryptanalyst dapat "memaksa" klien untuk memulai sesi SSH1 dengan mengubah nomor versi "1.99" untuk sesi SSH menjadi "1.51" dan bukan SSH2, yang berarti menggunakan SSH V1 . Protokol SSH-1 memiliki kerentanan yang dapat dieksploitasi oleh kriptanalis.

IPSec

Dalam skenario serangan ini, cryptanalyst menyesatkan korbannya dengan berpikir bahwa sesi IPsec tidak dapat dimulai di ujung lain (server). Hal ini mengakibatkan pesan diteruskan secara eksplisit jika mesin host berjalan dalam mode rollback.

PPTP

Pada tahap negosiasi parameter sesi PPTP, penyerang dapat memaksa korban untuk menggunakan otentikasi PAP yang kurang aman, MSCHAP V1 (yaitu, “memutar kembali” dari MSCHAP V2 ke versi 1), atau tidak menggunakan enkripsi sama sekali.

Penyerang dapat memaksa korbannya untuk mengulangi tahap negosiasi parameter sesi PPTP (mengirim paket Terminate-Ack), mencuri kata sandi dari terowongan yang ada dan mengulangi serangan.

Sarana komunikasi publik tanpa melindungi keandalan, kerahasiaan, ketersediaan dan integritas informasi

Sarana komunikasi yang paling umum dalam kelompok ini adalah jaringan sosial, pelayanan publik Surel dan sistem pesan instan. Pemilik sumber daya yang menyediakan layanan komunikasi memiliki kendali penuh atas pertukaran informasi antar koresponden dan, atas kebijakannya sendiri, dapat dengan bebas melakukan serangan kapan saja.

Berbeda dengan skenario sebelumnya yang didasarkan pada aspek teknis dan teknologi komunikasi, dalam hal ini serangan didasarkan pada aspek mental, yaitu menanamkan konsep mengabaikan persyaratan keamanan informasi di benak pengguna.

Akankah enkripsi membantu?

Mari kita pertimbangkan kasus transaksi HTTP standar. Dalam hal ini, penyerang dapat dengan mudah membagi koneksi TCP asli menjadi dua koneksi baru: satu antara dirinya dan klien, yang lain antara dirinya dan server. Hal ini cukup mudah dilakukan, karena sangat jarang koneksi antara klien dan server bersifat langsung, dan dalam banyak kasus keduanya terhubung melalui sejumlah server perantara. Serangan MITM dapat dilakukan pada salah satu server ini.

Namun, jika klien dan server berkomunikasi menggunakan HTTPS, protokol yang mendukung enkripsi, serangan man-in-the-middle juga dapat dilakukan. Jenis koneksi ini menggunakan TLS atau SSL untuk mengenkripsi permintaan, yang tampaknya membuat saluran terlindungi dari serangan sniffing dan MITM. Seorang penyerang dapat membuat dua sesi SSL independen untuk setiap koneksi TCP. Klien membuat koneksi SSL dengan penyerang, yang kemudian membuat koneksi dengan server. Dalam kasus seperti itu, browser biasanya memperingatkan bahwa sertifikat tersebut tidak ditandatangani oleh otoritas sertifikasi tepercaya, namun pengguna biasa browser yang sudah ketinggalan zaman dapat dengan mudah mengabaikan peringatan ini. Selain itu, penyerang mungkin memiliki sertifikat yang ditandatangani oleh otoritas sertifikasi root (misalnya, sertifikat tersebut terkadang digunakan untuk DLP) dan tidak menghasilkan peringatan. Selain itu, ada sejumlah serangan terhadap HTTPS. Dengan demikian, protokol HTTPS tidak dapat dianggap terlindungi dari serangan MITM bagi pengguna biasa. [ ] Ada sejumlah tindakan yang mencegah beberapa serangan MITM pada situs https, khususnya HSTS, yang melarang penggunaan koneksi http dari situs, penyematan Sertifikat, dan Penyematan Kunci Publik HTTP, yang melarang penggantian sertifikat.

Deteksi serangan MITM

Untuk mendeteksi serangan man-in-the-middle, Anda perlu menganalisis lalu lintas jaringan. Misalnya, untuk mendeteksi serangan SSL, Anda harus memperhatikan parameter berikut:

  • Alamat IP server
  • server DNS
  • X.509 - sertifikat server
    • Apakah sertifikatnya ditandatangani sendiri?
    • Apakah sertifikat ditandatangani oleh otoritas sertifikasi?
    • Apakah sertifikatnya sudah dicabut?
    • Apakah sertifikatnya baru saja berubah?
    • Apakah klien lain di Internet menerima sertifikat yang sama?

Implementasi serangan MITM

Program yang terdaftar dapat digunakan untuk melakukan serangan man-in-the-middle, serta untuk mendeteksinya dan menguji kerentanan sistem.

Lihat juga

  • Aspidistra (Bahasa Inggris) - Pemancar radio Inggris yang digunakan selama "invasi" Perang Dunia Kedua, varian dari serangan MITM.
  • Konspirasi Babington (Bahasa Inggris) - konspirasi melawan Elizabeth I, di mana Walsingham menyadap korespondensi.

Serangan lainnya

  • “Man-in-the-Browser” adalah jenis serangan di mana penyerang dapat langsung mengubah parameter transaksi dan mengubah halaman secara transparan bagi korbannya.
  • Serangan pertemuan di tengah adalah serangan kriptografi yang, seperti serangan ulang tahun, mengeksploitasi trade-off antara waktu dan memori.
  • “Serangan meleset di tengah ” - metode yang efektif yang disebut pembacaan sandi diferensial yang mustahil.
  • Serangan relai adalah varian serangan MITM yang didasarkan pada penerusan pesan yang dicegat ke penerima yang valid, namun tidak ke penerima pesan yang dimaksudkan.

Meraih hasil yang diinginkan Hampir selalu ada beberapa cara. Hal ini juga berlaku pada bidang keamanan informasi. Terkadang, untuk mencapai suatu tujuan, Anda dapat menggunakan kekerasan, mencari lubang dan mengembangkan eksploitasi sendiri, atau mendengarkan apa yang dikirimkan melalui jaringan. Selain itu, opsi terakhir seringkali merupakan pilihan terbaik. Itulah sebabnya hari ini kita akan membahas tentang alat yang akan membantu kita menangkap informasi berharga lalu lintas jaringan, menarik serangan MITM untuk ini.

MITMf

Mari kita mulai dengan salah satu kandidat yang paling menarik. Ini adalah keseluruhan kerangka untuk melakukan serangan man-in-the-middle, yang dibangun berdasarkan sergio-proxy. Baru-baru ini termasuk dalam Kali Linux. Untuk menginstalnya sendiri, cukup clone repositori dan jalankan beberapa perintah:

# setup.sh # pip install -r persyaratan.txt

Ini memiliki arsitektur yang dapat diperluas melalui plugin. Di antara yang utama adalah sebagai berikut:

  • Spoof - memungkinkan Anda mengalihkan lalu lintas menggunakan spoofing ARP/DHCP, pengalihan ICMP, dan mengubah kueri DNS;
  • Sniffer - plugin ini melacak upaya login untuk berbagai protokol;
  • BeEFAutorun - memungkinkan Anda meluncurkan modul BeEF secara otomatis berdasarkan jenis OS dan browser klien;
  • AppCachePoison - melakukan serangan keracunan cache;
  • SessionHijacking - membajak sesi dan menyimpan cookie yang dihasilkan di profil Firefly;
  • BrowserProfiler - mencoba mendapatkan daftar plugin yang digunakan oleh browser;
  • FilePwn - memungkinkan Anda mengganti pesan yang dikirim melalui file HTTP menggunakan Pabrik Pintu Belakang dan BDFProxy;
  • Suntikkan - memasukkan konten arbitrer ke dalam halaman HTML;
  • jskeylogger - menyematkan keylogger JavaScript ke halaman klien.

Jika fungsi ini tampaknya tidak mencukupi bagi Anda, Anda selalu dapat menambahkan fungsi Anda sendiri dengan menerapkan ekstensi yang sesuai.

Pengendara Dempul

Utilitas lain yang patut diperhatikan. Benar, tidak seperti semua alat lain yang dipertimbangkan saat ini, alat ini memiliki spesialisasi yang sangat sempit. Seperti yang dikatakan oleh penulis proyek itu sendiri, dia terinspirasi untuk membuat utilitas semacam itu oleh fakta bahwa selama pengujian penetrasi, data yang paling penting terletak di server Linux/UNIX, yang mana administrator terhubung melalui SSH/Telnet/rlogin. Selain itu, dalam banyak kasus, mendapatkan akses ke mesin administrator jauh lebih mudah daripada ke server target. Setelah menembus mesin administrator sistem, yang tersisa hanyalah memastikan bahwa PuTTY berjalan dan, dengan menggunakan alat ini, membangun jembatan belakang ke penyerang.


Utilitas ini memungkinkan Anda tidak hanya menangkap “komunikasi” antara admin dan server jarak jauh (termasuk kata sandi), tetapi juga menjalankan perintah shell sewenang-wenang dalam sesi tertentu. Selain itu, semua ini akan terjadi secara transparan bagi pengguna (administrator). Jika Anda tertarik dengan detail teknis, misalnya bagaimana PutTY diimplementasikan ke dalam proses, saya sarankan Anda membaca presentasi penulis.


Utilitas yang cukup tua, lahir lebih dari delapan tahun lalu. Ditujukan untuk sesi kloning dengan mencuri cookie. Untuk pembajakan sesi, ia memiliki keterampilan deteksi host dasar (jika terhubung ke jaringan terbuka jaringan nirkabel atau hub) dan melakukan keracunan ARP. Satu-satunya masalah adalah saat ini, tidak seperti delapan tahun lalu, hampir semua perusahaan besar seperti Yahoo atau Facebook menggunakan enkripsi SSL, sehingga alat ini sama sekali tidak berguna. Meskipun demikian, masih ada cukup sumber daya di Internet yang tidak menggunakan SSL, jadi masih terlalu dini untuk menghapus utilitas tersebut. Keuntungannya termasuk fakta bahwa ia secara otomatis terintegrasi ke dalam Firefox dan membuat profil terpisah untuk setiap sesi yang disadap. Sumber tersedia di repositori, dan Anda dapat membuatnya sendiri menggunakan urutan perintah berikut:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip pencuri sesi

ProxyFuzz

ProzyFuzz tidak ada hubungannya langsung dengan melakukan serangan MITM. Seperti yang bisa Anda tebak dari namanya, alat ini dirancang untuk fuzzing. Ini adalah fuzzer jaringan non-deterministik kecil, yang diimplementasikan dengan Python, yang secara acak mengubah konten paket lalu lintas jaringan. Mendukung protokol TCP dan UDP. Anda dapat mengonfigurasinya untuk mengaburkan satu sisi saja. Berguna ketika Anda perlu memeriksa sesuatu dengan cepat aplikasi jaringan(atau protokol) dan mengembangkan PoC. Contoh penggunaan:

Proksi pythonfuzz -l -R -P

Daftar opsinya meliputi:

  • w - menentukan jumlah permintaan yang dikirim sebelum fuzzing dimulai;
  • c - hanya mengaburkan klien (jika tidak, kedua sisi);
  • s - hanya mengaburkan server (jika tidak, kedua sisi);
  • u - Protokol UDP (jika tidak, TCP digunakan).

Sang Perantara

Sebuah utilitas untuk melakukan serangan MITM pada berbagai protokol yang dipresentasikan pada konferensi DEF CON. Versi alfa mendukung protokol HTTP dan memiliki tiga plugin keren:

  • plugin-beef.py - memasukkan Browser Exploitation Framework (BeEF) ke dalam permintaan HTTP apa pun yang berasal dari jaringan lokal;
  • plugin-metasploit.py - menyematkan IFRAME ke dalam permintaan tidak terenkripsi (HTTP), yang memuat eksploitasi browser dari Metasploit;
  • plugin-keylogger.py - menyematkan event handler JavaScript onKeyPress untuk semua bidang teks yang akan dikirimkan melalui HTTPS, menyebabkan browser mengirimkan kata sandi yang dimasukkan pengguna karakter demi karakter ke server penyerang sebelum seluruh formulir dikirimkan.

Middler tidak hanya secara otomatis menganalisis lalu lintas jaringan dan menemukan cookie di dalamnya, tetapi juga secara mandiri memintanya dari klien, yaitu prosesnya diotomatiskan secara maksimal. Program ini menjamin pengumpulan semua akun yang tidak dilindungi di jaringan komputer (atau hotspot publik) yang lalu lintasnya dapat diakses. Agar program berfungsi dengan benar, paket-paket berikut harus diinstal pada sistem: Scapy, libpcap, readline, libdnet, python-netfilter. Sayangnya, repositori sudah lama tidak diperbarui, jadi Anda harus menambahkan sendiri fungsionalitas baru.

Utilitas konsol yang memungkinkan Anda memeriksa dan mengubah lalu lintas HTTP secara interaktif. Berkat keterampilan tersebut, utilitas ini digunakan tidak hanya oleh pentester/peretas, tetapi juga oleh pengembang biasa yang menggunakannya, misalnya, untuk men-debug aplikasi web. Dengan bantuannya, Anda bisa mendapatkan informasi rinci tentang permintaan apa yang dibuat aplikasi dan tanggapan apa yang diterimanya. Selain itu, mitmproxy dapat membantu mempelajari kekhasan fungsi beberapa REST API, terutama yang tidak terdokumentasi dengan baik.

Instalasinya sangat sederhana:

$ sudo bakat instal mitmproxy

$ pip instal mitmproxy

$easy_install mitmproxy

Perlu dicatat bahwa mitmproxy juga memungkinkan Anda mencegat lalu lintas HTTPS dengan mengeluarkan sertifikat yang ditandatangani sendiri kepada klien. Contoh yang baik Anda dapat mempelajari cara mengonfigurasi intersepsi dan modifikasi lalu lintas.


Pencegat-NG

Aneh rasanya jika alat musik legendaris ini tidak masuk dalam review kami. Bahkan jika Anda belum pernah menggunakannya, Anda mungkin pernah mendengarnya (dan Anda harus mengenalnya lebih baik) - ini cukup sering muncul di halaman majalah. Saya tidak akan sepenuhnya menjelaskan fungsinya - pertama, kami tertarik pada MITM, dan kedua, deskripsi seperti itu akan mencakup keseluruhan artikel.

Kelanjutan hanya tersedia untuk anggota

Opsi 1. Bergabunglah dengan komunitas “situs” untuk membaca semua materi di situs

Keanggotaan dalam komunitas dalam periode yang ditentukan akan memberi Anda akses ke SEMUA materi Peretas, meningkatkan diskon kumulatif pribadi Anda dan memungkinkan Anda mengumpulkan peringkat Skor Xakep profesional!

Serangan man in the middle (Serangan MitM) adalah istilah dalam kriptografi yang mengacu pada situasi di mana penyerang dapat membaca dan memodifikasi pesan yang dipertukarkan antar koresponden sesuka hati, dan tidak ada yang dapat menebak identitasnya di saluran .

Suatu metode penyusupan saluran komunikasi, di mana penyerang, setelah terhubung ke saluran antar pihak, secara aktif mengganggu protokol transmisi, menghapus, mendistorsi informasi, atau memaksakan informasi palsu.

Prinsip serangan:

Misalkan objek "A" berencana mengirimkan beberapa informasi ke objek "B". Objek "C" memiliki pengetahuan tentang struktur dan properti metode transmisi data yang digunakan, serta fakta rencana transmisi informasi aktual yang direncanakan "C" untuk disadap.

Untuk melakukan serangan, "C" muncul sebagai objek "A" sebagai "B" dan objek "B" sebagai "A". Objek "A", secara keliru percaya bahwa ia mengirimkan informasi ke "B", mengirimkannya ke objek "C".

Objek "C", setelah menerima informasi dan melakukan beberapa tindakan dengannya (misalnya, menyalin atau memodifikasinya untuk tujuannya sendiri), mengirimkan data ke penerima itu sendiri - "B"; objek "B", pada gilirannya, percaya bahwa informasi tersebut diterima langsung dari "A".

Contoh serangan MitM:

Katakanlah Alice mengalami masalah keuangan dan, dengan menggunakan program pesan instan, memutuskan untuk meminta sejumlah uang kepada John dengan mengirimkan pesan:
Alice: John, hai!
Alice: Tolong kirimkan saya kunci enkripsi, saya punya permintaan kecil!
Yohanes: Halo! Tunggu sebentar!

Namun, saat ini, Tuan X, yang saat menganalisis lalu lintas menggunakan sniffer, memperhatikan pesan ini, dan kata “kunci enkripsi” membangkitkan rasa ingin tahu. Itu sebabnya dia memutuskan untuk mencegat pesan-pesan berikut dan menggantinya dengan data yang dia butuhkan, dan ketika dia menerima pesan berikut:
Yohanes: Ini kunci saya: 1111_D

Dia mengubah kunci John menjadi miliknya, dan mengirim pesan ke Alice:
Yohanes: Ini kunci saya: 6666_M

Alice, tidak sadar dan mengira itu adalah kunci John, menggunakan kunci pribadi 6666_M, mengirimkan pesan terenkripsi ke John:
Alice: John, saya mempunyai masalah dan saya sangat membutuhkan uang, silakan transfer $300 ke rekening saya: Z12345. Terima kasih. hal. Kunci saya: 2222_A

Setelah menerima pesan tersebut, Tuan X mendekripsinya menggunakan kuncinya, membacanya, dan, dengan gembira, mengubah nomor akun Alice dan kunci enkripsi menjadi miliknya, mengenkripsi pesan tersebut dengan kunci tersebut. 1111_D, dan mengirimi John pesan:
Alice: John, saya mempunyai masalah dan saya sangat membutuhkan uang, silakan transfer $300 ke rekening saya: Z67890. Terima kasih. hal. Kunci saya: 6666_A

Setelah menerima pesan tersebut, John mendekripsinya menggunakan kunci 1111_D, dan tanpa ragu-ragu, akan mentransfer uang ke rekening Z67890...

Dan dengan demikian, Tuan X, dengan menggunakan serangan man-in-the-middle, memperoleh $300, namun Alice sekarang harus menjelaskan bahwa dia tidak menerima uang tersebut... Dan John? John harus membuktikan kepada Alice bahwa dia mengirim mereka...

Penerapan:

Jenis serangan ini digunakan di beberapa produk perangkat lunak untuk penyadapan jaringan, misalnya:
NetStumbler- sebuah program yang dengannya Anda dapat mengumpulkan banyak data berguna tentang jaringan nirkabel dan memecahkan beberapa masalah yang terkait dengan pengoperasiannya. NetStumbler memungkinkan Anda menentukan jangkauan jaringan dan membantu Anda mengarahkan antena secara akurat untuk komunikasi jarak jauh. Untuk setiap titik akses yang ditemukan, Anda dapat mengetahui alamat MAC, rasio signal-to-noise, nama layanan dan tingkat keamanannya. Jika lalu lintas tidak dienkripsi, maka kemampuan program untuk mendeteksi koneksi tidak sah akan berguna.

mengendus- adalah seperangkat program untuk audit jaringan dan pengujian penetrasi, menyediakan pemantauan jaringan pasif untuk mencari data yang diinginkan (kata sandi, alamat email, file, dll.), mencegat lalu lintas jaringan yang biasanya tidak dapat diakses untuk analisis (misalnya, di jaringan yang diaktifkan), serta kemampuan untuk mengatur serangan MITM untuk mencegat sesi SSH dan HTTPS dengan mengeksploitasi kelemahan PKI.

Kain & Habel - program gratis, yang memungkinkan Anda memulihkan kata sandi yang hilang sistem operasi keluarga Windows. Beberapa mode pemulihan didukung: peretasan brute force, pemilihan kamus, melihat kata sandi yang disembunyikan oleh tanda bintang, dll. Ada juga opsi untuk mengidentifikasi kata sandi dengan mencegat paket informasi dan analisis selanjutnya, merekam percakapan jaringan, analisis cache, dan lain-lain.

Tutup lagi- adalah sniffer, pencegat paket, dan perekam untuk jaringan Ethernet lokal, yang mendukung analisis aktif dan pasif beberapa protokol, dan juga memungkinkan untuk "melempar" data Anda sendiri ke dalam koneksi yang ada dan memfilter "on the fly" tanpa mengganggu koneksi sinkronisasi. Program ini memungkinkan Anda untuk mencegat SSH1, HTTPS dan protokol aman lainnya dan menyediakan kemampuan untuk mendekripsi kata sandi untuk protokol berikut: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, SETENGAH HIDUP, GEMPA 3, MSN, YMSG.

KARMA– seperangkat utilitas untuk menilai keamanan klien nirkabel, adalah sniffer nirkabel yang, dengan mendengarkan secara pasif bingkai Permintaan Probe 802.11, memungkinkan Anda mendeteksi klien dan jaringan pilihan/tepercaya mereka. Jalur akses palsu kemudian dapat dibuat untuk salah satu jaringan yang diminta, yang dapat dihubungkan secara otomatis. Layanan palsu tingkat tinggi dapat digunakan untuk mencuri data pribadi atau mengeksploitasi kerentanan klien pada host.

AirJack- seperangkat program yang menurut para ahli di bidang peretasan WiFi, merupakan alat terbaik untuk menghasilkan berbagai frame 802.11. AirJack menyertakan sejumlah utilitas yang dirancang untuk mendeteksi ESSID tersembunyi, mengirim bingkai penghentian sesi dengan MAC palsu, melakukan serangan MitM, dan memodifikasinya.

Penetralan:

Untuk menghindari serangan jenis ini, pelanggan “A” dan “B” hanya perlu saling mentransfer tanda tangan digital kunci enkripsi publik menggunakan saluran yang andal. Kemudian, ketika membandingkan tanda tangan kunci dalam sesi enkripsi, akan dimungkinkan untuk menentukan kunci mana yang digunakan untuk mengenkripsi data, dan apakah kunci tersebut telah diganti.

MTProto menggunakan metode orisinal untuk mencapai keandalan dalam kondisi yang saat ini rentan komunikasi seluler dan kecepatan dalam mengirimkan file berukuran besar (misalnya foto, video, dan dokumen berukuran hingga 1 GB). Dokumen ini dimaksudkan untuk memperjelas detail sistem kami dan mengatasi elemen yang mungkin sulit dipahami pada pandangan pertama.

Dokumentasi protokol terperinci tersedia di halaman ini. Jika Anda memiliki pertanyaan, tulislah ke Twitter.

Catatan: Setiap pesan yang dienkripsi melalui MTProto selalu berisi data berikut, yang akan diperiksa selama dekripsi untuk membuat sistem aman dari masalah yang diketahui:

  • pengidentifikasi sesi - id sesi;
  • panjang pesan - panjang pesan;

Catatan 2: Lihat komentar tambahan mengenai penggunaan, dan diubah skema.

Mengapa Anda tidak menggunakan X [pilihan Anda]

Meskipun cara lain untuk mencapai tujuan kriptografi yang sama pasti ada, kami percaya bahwa solusi saat ini dapat diandalkan dan berhasil mencapai tujuan kedua kami, yaitu mengungguli pengirim pesan tidak aman dalam hal kecepatan dan stabilitas pengiriman.

Mengapa Anda mengandalkan algoritma kripto klasik?

Kami lebih suka menggunakan algoritme terkenal yang dibuat pada masa ketika bandwidth dan kekuatan komputasi Mereka jarang bertemu berpasangan. Algoritma inilah yang mempunyai dampak signifikan terhadap pengembangan aplikasi saat ini perangkat seluler, memaksa penulisnya untuk menghilangkan kekurangan yang diketahui. Kelemahan algoritma tersebut juga diketahui dan telah dieksploitasi oleh penyerang selama beberapa dekade. Kami menggunakan algoritme ini dalam implementasi ini karena, seperti yang kami yakini, algoritme tersebut mengarah pada apa pun serangan yang diketahui menuju kegagalan. Namun, kami akan senang melihat bukti sebaliknya (sejauh ini belum ada kasus serupa) untuk memperbaiki sistem kami.

Saya seorang pakar keamanan dan saya yakin protokol Anda tidak aman.

Anda dapat ikut serta dalam kompetisi kami: Pavel Durov menawarkan $200.000 dalam bentuk Bitcoin kepada orang pertama yang meretas MTProto. Anda dapat membaca pengumuman dan FAQ Kompetisi. Jika Anda memiliki komentar lain, kami akan dengan senang hati mendengarnya di [dilindungi email].

Perlindungan terhadap serangan yang diketahui

Serangan Teks Biasa yang Diketahui

Menurut definisi, serangan teks biasa adalah jenis serangan kriptanalitik di mana penyerang memiliki versi teks terenkripsi dan teks biasa. AES IGE yang digunakan di MTProto tahan terhadap serangan semacam itu. Selain itu, plaintext di MTProto selalu berisi garam server dan ID sesi.

Serangan Teks Biasa Adaptif

Menurut definisi, serangan teks biasa adaptif adalah jenis serangan dalam kriptanalisis yang melibatkan kemampuan kriptanalis untuk memilih teks biasa dan mendapatkan teks sandi yang sesuai. MTProto menggunakan AES dalam mode IGE, yang aman terhadap serangan tersebut. IGE diketahui rentan terhadap serangan adaptif blok, namun MTProto memperbaikinya dengan cara yang dijelaskan di bawah. Setiap pesan teks biasa yang akan dienkripsi berisi data berikut, yang diverifikasi selama dekripsi:

  • garam server (64-Bit);
  • nomor urut pesan;
  • waktu pesan dikirim - waktu.

Selain itu, untuk mengganti teks biasa, Anda juga harus menggunakan kunci AES dan vektor inisialisasi yang benar, yang bergantung pada auth_key . Hal ini membuat MTProto tahan terhadap serangan teks biasa adaptif.

Serangan Ciphertext yang Cocok

Menurut definisinya, serangan ciphertext yang dipilih adalah serangan kriptografi di mana kriptanalis mengumpulkan informasi tentang cipher dengan memilih ciphertext dan memperoleh dekripsinya dengan kunci yang tidak diketahui. Dalam serangan seperti itu, penyerang dapat memasukkan satu atau lebih teks sandi yang diketahui ke dalam sistem dan mendapatkan teks biasa. Dengan menggunakan data ini, penyerang dapat mencoba memulihkan kunci yang digunakan untuk dekripsi. Di MTProto, setiap kali pesan didekripsi, pemeriksaan dilakukan untuk memastikan bahwa msg_key cocok dengan SHA-1 dari data yang didekripsi. Plaintext (data yang didekripsi) juga selalu berisi informasi tentang panjang pesan, nomor urutnya, dan garam server. Ini meniadakan serangan berdasarkan ciphertext yang dipilih.

Putar ulang serangan

Serangan memutar ulang tidak dimungkinkan karena setiap pesan teks biasa berisi garam server, pengidentifikasi pesan unik, dan nomor urut.

Serangan Manusia di Tengah (MitM).

Telegram memiliki dua mode komunikasi: obrolan biasa, yang menggunakan enkripsi klien-server, dan obrolan rahasia, yang menggunakan enkripsi ujung ke ujung dan dilindungi dari serangan man-in-the-middle. Transfer data antara klien dan server dilindungi dari serangan tersebut selama pembuatan kunci menggunakan protokol Diffie-Hellman berkat algoritma dengan kunci publik RSA, yang dibangun pada klien Telegram. Setelah ini, jika klien dari lawan bicaranya percaya perangkat lunak server, obrolan rahasia di antara mereka dilindungi oleh server dari serangan man-in-the-middle. Terutama bagi mereka yang Bukan mempercayai server, perbandingan kode rahasia tersedia di aplikasi. Kunci divisualisasikan sebagai gambar. Dengan membandingkan kunci yang divisualisasikan, pengguna dapat memverifikasi bahwa serangan man-in-the-middle tidak terjadi.

Enkripsi

Apakah Anda menggunakan IGE? Itu diretas!

Ya, kami menggunakan IGE, tetapi dalam implementasi kami semuanya baik-baik saja. Fakta bahwa kami tidak menggunakan IGE bersama dengan elemen lain dari sistem kami dengan cara yang sama seperti MAC membuat upaya untuk meretas IGE menjadi sia-sia. IGE, sama seperti mode rantai blok ciphertext (CBC) pada umumnya, rentan terhadap serangan adaptif blok. Namun serangan adaptif hanya menjadi ancaman ketika kunci yang sama digunakan dalam beberapa pesan (hal ini tidak terjadi).

Serangan adaptif bahkan secara teoritis tidak mungkin dilakukan di MTProto, karena untuk mendekripsi pesan, pesan terakhir harus diketik sepenuhnya terlebih dahulu, karena kunci pesan bergantung pada kontennya. Sedangkan untuk serangan CPA non-adaptif, IGE dilindungi dari serangan tersebut, sama seperti CBC.

Proses tiga langkah untuk memulai sesi TCP. Klien mengirimkan paket dengan flag SYN ke server. Setelah menerima paket dengan flag SYN dari klien, server merespons dengan mengirimkan paket dengan flag SYN+ACK dan memasuki status ESTABLISHED. Setelah menerima respon yang benar dari server, klien mengirimkan paket dengan flag ACK dan memasuki status ESTABLISHED

Daftar larangan

Daftar klien yang tidak mempunyai hak atas tindakan tertentu. Dengan menggunakan daftar larangan, Anda biasanya membatasi kemampuan bot ketika serangan DDoS terdeteksi. Juga dalam realitas server game di daftar ini Termasuk pemain dengan reputasi buruk yang menggunakan kode cheat atau melakukan tindakan ilegal.

Bot

Komputer yang digunakan untuk melakukan serangan DDoS lalu lintas "nyata". Dalam kebanyakan kasus, ini adalah komputer pengguna biasa, terinfeksi virus. Seringkali pengguna tidak menyadari bahwa komputernya terinfeksi dan digunakan untuk tujuan ilegal

server web

Komputer di jaringan yang menerima permintaan HTTP dari klien, biasanya browser web, dan memberikan respons HTTP kepada mereka. Biasanya, bersamaan dengan respons HTTP, server web merespons dengan halaman HTML, gambar, aliran media, atau data lainnya

layanan web

Layanan web adalah layanan yang disediakan di Internet. Saat menggunakan istilah ini, kita dapat berbicara tentang pencarian, email web, penyimpanan dokumen, file, bookmark, dll. Biasanya, layanan web dapat digunakan terlepas dari komputer, browser, atau lokasi di mana Anda mengakses Internet.

Domain

Konsep "Domain" dapat digunakan dalam berbagai konteks ketika berbicara tentang teknologi jaringan. Paling sering yang mereka maksud adalah domain Nama domain lokasi. Domain dibagi menjadi beberapa level, misalnya pada domain example.com, com adalah domain level pertama dan example adalah domain level kedua. Untuk mempermudah komunikasi, orang juga menggunakan istilah “Subdomain” yang berarti domain yang kedalamannya lebih dari dua tingkat. Misalnya, di domain mail.example.com, email adalah subdomain.

Robot pencari

Melayani mesin pencari untuk menemukan halaman baru di Internet dan mengubah halaman yang sudah ada. Prinsip pengoperasiannya mirip dengan browser. Ia menganalisis konten halaman, menyimpannya dalam beberapa bentuk khusus di server mesin pencari tempatnya, dan mengirimkan link ke halaman berikutnya.

Bandwidth

Jumlah maksimum data yang mungkin dikirimkan per unit waktu. Seringkali, penyedia Internet, yang menjanjikan kecepatan akses Internet yang lebih tinggi, tidak menepati janjinya. Dalam kebanyakan kasus, hal ini disebabkan oleh bandwidth yang terisi penuh.

Publikasi tentang topik tersebut