
tl; dr: Saya sedang menjajaki kemungkinan untuk mencocokkan akun dengan nomor telepon di segmen Telegram Rusia.
Ada banyak orang di dunia ini yang ingin tidak menyebutkan nama pengguna yang sewenang-wenang. Ini bisa menjadi kapitalis yang tidak menghindari spam, layanan khusus, scammer dan hanya penguntit. Layanan sosial mencoba untuk melakukan manuver antara keinginan untuk menarik audiens sebanyak mungkin melalui impor kontak dan batasan akses ke informasi tersebut. Mereka bermanuver dengan cara yang berbeda, beberapa memposisikan diri mereka semasyarakat mungkin, sementara yang lain lebih menghargai privasi. Yang terakhir menjadi sasaran serangan dari pendukung privasi maksimal.
Secara default, di Telegram, seperti di kurang pesan pribadi, Anda bisa mendapatkan akun pengguna, mengetahui nomornya. Pada saat yang sama, pemilik nomor dapat membatasi kesempatan ini hanya untuk kontak timbal balik, untuk ini ada opsi khusus. Secara default, ini dimatikan, yang berarti kami memiliki Telegram penuh orang-orang yang ceroboh dan sengaja. Fitur tersebut tampaknya karena menguras basis pengguna. Saya memutuskan untuk mencari tahu berapa biayanya untuk membuat database serupa, dan apakah saya bisa membuatnya.
Saya membatasi minat saya hanya untuk pengguna Rusia. Basis rentang angka, ternyata, diterbitkanRossvyaz, yang semakin menyederhanakan tugas saya dengan menghilangkan kebutuhan untuk membuang situs dengan informasi semacam itu. Secara total, pada 7 September, operator diberi hampir enam ratus juta nomor, atau lebih tepatnya, 598035003.
Saya mengambil beberapa kartu SIM, `telethon` (modul-Python dengan implementasi MTProto yang lengkap) dan mencoba membuat database seperti itu di rumah.
Berbagi kontak dan menambahkan ke grup
Masih ingat kisah deanon Hong Kong? Bot menambahkan pengguna ke grup dengan nomor telepon, dengan demikian menerima akun yang ditautkan ke telepon. Di artikel yang sama, seorang jurnalis ZDNet menghubungi perwakilan Telegram. Yang terakhir mengatakan bahwa impor massal akan penuh masalah.
Kami mencurigai bahwa beberapa penyerang yang disponsori pemerintah telah mengeksploitasi bug ini dan menggunakannya untuk menargetkan pengunjuk rasa Hong Kong, dalam beberapa kasus memposting bahaya langsung bagi kehidupan para pengunjuk rasa
Jadi saya memutuskan untuk mencari-cari terlebih dahulu melalui kontak. Antarmuka klien Telegram resmi memungkinkan Anda untuk hanya berbagi pengguna yang nomornya dapat Anda lihat dengan satu atau lain cara. Namun, `telethon` memungkinkan Anda berbagi kontak dengan nomor arbitrer. Dilihat dari API-nya, fungsi sharing adalah mengirimkan file dengan tipe tertentu . Untuk verifikasi awal, saya membuat sketsa skrip yang mengirim kontak tertentu ke akun utama saya tanpa pertanyaan lebih lanjut.
Untuk memeriksa skrip, saya membuka akun "bersih" (selanjutnya disebut Bot), dan mengirim tiga nomor ke akun lain (selanjutnya disebut Penerima): Pasha, Dasha, dan milik saya sendiri. Setiap orang memiliki Telegram. Pasha membagikan teleponnya dengan semua orang. Dasha menambahkan penerima ke kontaknya. Saya menambahkan nomor saya dua kali: pertama dengan menambahkan Bot ke kontak saya, kemudian saya menghapus bot dan menambahkan diri saya ke kontak Bot.

Hasilnya dapat diinterpretasikan dari gambar: kontak biasanya hanya ditemukan jika ponsel tersedia untuk bot. Lebih buruk lagi dengan tambahan obrolan . Saya bahkan tidak dapat menambahkan akun dengan telepon yang dikenal ke Bot jika mereka mematikan fitur ini di pengaturan. Selain itu, Bot dapat dengan cepat diblokir jika pengguna mulai melaporkan spam. Jadi saya tidak akan deanon siapa pun, saatnya melupakan ide ini.
Sinkronisasi
Sinkronisasi kontak, seperti yang saya katakan, berpotensi menyebabkan pembatasan akun. Tapi seperti apa bentuknya? Saya menulis skrip lain yang mengambil nomor acak dari database dan menambahkannya ke kontak. Setelah itu, skrip mem-parsing kontak, menambahkan pengenal akun yang ditemukan di daftar kembali ke database, menandai sisanya dengan nol dan menghapus kontak dari daftar.
Kemudian saya menjalankan 5.000 nomor acak, menurut rumor, ini adalah batasan yang berfungsi di Telegram. Saya tidak menemukan pengenal apa pun di keluaran, kecuali untuk Bot itu sendiri. Sekarang, untuk menghilangkan kemungkinan kesalahan dalam kode dan trik Telegram, saya menambahkan nomor Dasha secara manual ke nomor acak, menonaktifkan penghapusan kontak dari daftar, mengurangi ukuran sampel menjadi 3.000 nomor dan menjalankannya lagi. Dasha tidak ada dalam daftar atau dalam database. Upaya untuk menambahkan petunjuk Dasha secara manual bahwa batas Telegram telah berfungsi.

Hampir semuanya tampak baik-baik saja. Untuk memastikan, saya menghapus akun saya dan mendaftarkannya lagi, mengurangi jumlah ponsel menjadi 3000, termasuk Dasha, dan menjalankan skrip lagi. Hasilnya serupa. Tampaknya batasan tersebut tidak memengaruhi akun, tetapi nomor telepon tempat kontak disinkronkan. Semuanya tampak baik-baik saja, dan Telegram memang memberikan tingkat perlindungan brute force yang wajar.
Atau tidak?
Setidaknya ada dua layanan yang disebutkan di Internet yang diduga memindai berbagai nomor. Salah satunya saya periksa, berfungsi dengan buruk. Misalkan yang kedua tidak berbohong dan mereka benar-benar berhasil. Mari kita asumsikan bahwa mereka tidak perlu memproses semua 600 juta angka dan mereka tahu dari suatu tempat 150 juta angka yang benar-benar aktif (sedikit lebih dari satu angka per kapita di Federasi Rusia). Berapa biaya untuk memindai semua orang dalam enam bulan, mengamati semua batasan dari messenger? Dan dalam tiga bulan? Dan dalam sebulan? Dan dalam satu hari?
Misalkan Anda dapat memindai 5.000 kontak dari satu nomor di hari pertama dan 100 lagi di hari berikutnya . Dalam enam bulan, dari setiap nomor, Anda dapat menghitung 23.000 kontak
(180*100+5000); untuk mencari, Anda membutuhkan sekitar 6.500 nomor(150000000/23000)... Tidak banyak, bukan? Jika setiap kartu SIM berharga 150 rubel (yang mahal!), Maka biaya pembeliannya akan kurang dari satu juta rubel. Jumlah angkat bahkan untuk bisnis kecil! Untuk kartu SIM, Anda bahkan tidak perlu menyimpan banyak peralatan, Anda masuk dan menjalankan skrip sekali sehari.
Tapi mari kita hitung sampai maksimal. Mari kita ambil keseluruhan 600 juta angka dan kurangi kerangka waktu menjadi satu bulan. Ternyata Anda membutuhkan 75 ribu kartu SIM, yang harganya hanya sekitar sepuluh kali lipat.
(600000000/(5000+30*100)*150=11250000)... Anda harus mencoba menemukan sebanyak mungkin kartu SIM, tetapi Anda dapat mengurangi biayanya dalam jumlah yang banyak. Secara potensial, Anda dapat menggunakan layanan yang memungkinkan Anda mendaftarkan akun masing-masing dari 3,5 rubel, dan pelanggar terburuk dapat menyebarkan Trojan untuk mencuri SMS. Maka akan jauh lebih murah. Pengembangan tampaknya tidak terlalu rumit, dan klien hosting juga seharusnya tidak menjadi masalah besar. Anda mungkin harus menggunakan banyak proxy, tetapi ini tidak pasti.
Saya tidak dapat mengumpulkan database karena batasan Telegram, dan itu bagus. Artinya, ada ambang masuk tertentu untuk tindakan tersebut. Saya menempatkan skrip yang tidak berguna di git... Tetapi tidak ada yang sangat sulit untuk dilakukan dengan beberapa sumber daya. Apalagi jika Anda membatasi minat ke wilayah tertentu, misalnya, di Daerah Otonomi Yahudi ada kurang dari satu juta nomor yang ada di pool, dan di Bashkortostan ada 12,5 juta.
Saya menyarankan agar tim Telegram memberi tahu pengguna tentang kemungkinan menyembunyikan telepon. Dan saya ingatkan Anda bahwa anonimitas dalam layanan sosial itu bersyarat. Jika Anda tidak ingin jatuh di bawah deanon besar-besaran, sembunyikan nomor telepon Telegram Anda untuk semua orang kecuali kontak Anda.
