German ID spoofing dengan otentikasi online dan pendanaan pengungsi di Jerman


ID Jerman

Spesialis keamanan Wolfgang Ettlinger dari SEC Consult Vulnerability Lab menguraikan teknik untuk merusak data (termasuk nama dan alamat) selama pemeriksaan online ID negara Jerman.

Kartu identitas Jerman dikeluarkan sejak 1 November 2010. Setiap kartu berisi chip RFID yang menyimpan informasi tentang pemiliknya, termasuk nama, tanggal lahir, dan foto biometrik. Jika pemilik menginginkannya, ia dapat merekam pemindaian sidik jari.

Kartu baru dapat dibaca oleh mesin dan dapat digunakan sebagai dokumen perjalanan di sebagian besar negara Eropa, serta untuk otentikasi dalam layanan pemerintah online (pajak, pos) atau untuk memeriksa usia. Mereka digunakan untuk mengautentikasi pengguna di beberapa layanan online, termasuk di portal pengarsipan pajak .

Otentikasi RFID dilakukan menggunakan pembaca kartu dan aplikasi klien EID (misalnya, AusweisApp 2 ), yang berinteraksi dengan chip RFID dan server otentikasi (eID-Server atau SAML-Processor) untuk memverifikasi informasi login.



Untuk mencegah pemalsuan identitas, server otentikasi memvalidasi informasi dan kemudian menandatangani respons yang dikirim ke pelayan web dari klien sehingga layanan web dapat mempercayai legitimasi data yang diterima.

Wolfgang Ettlinger menemukan cara untuk mengelabui aplikasi web dengan mengirimkannya data yang dimodifikasi. Tangkapan layar menunjukkan bagaimana ia berhasil mengautentikasi dalam aplikasi resmi dengan nama Johann Wolfgang von Goethe, seorang penulis Jerman terkenal. Formulir menunjukkan alamat tempat penulis tinggal 50 tahun, di mana Goethe Museum berada hari ini.



Kerentanan berada di Governikus Autent SDK, komponen perangkat lunak untuk mengintegrasikan fitur otentikasi ke dalam aplikasi web. Termasuk itu mengimplementasikan fungsi verifikasi otentikasi dari klien eID. Intinya adalah bahwa verifikasi dilakukan dalam dua tahap independen . Pada tahap pertama, tanda tangan otentikasi server otentikasi diverifikasi, dan pada tahap kedua, data itu sendiri, termasuk identitas pemilik. Akibatnya, menjadi mungkin untuk mengirim dua respons SAML independen ke aplikasi: yang pertama dengan tanda tangan yang valid, dan yang kedua dengan data palsu dan tanpa tanda tangan.

Eksploit mengeksploitasi fakta bahwa Governikus Autent SDK memverifikasi tanda tangan menggunakan metode HttpRedirectUtils.checkQueryString , yang tidak mempertimbangkan menggunakan parameter yang sama beberapa kali. Jadi, setelah memeriksa parameter, contoh lain dianalisis seolah-olah mereka telah lulus tes.

Begini cara metode ini diterapkan dalam aplikasi nyata:

 // check the signature of the SAML response. There is no XML signature in this response but the // parameter are signed. if (!HttpRedirectUtils.checkQueryString(request.getQueryString(), SamlExampleHelper.SERVER_SIG_CERT)) { storeError(request, response, "Signaturprüfung der SAML-Response fehlgeschlagen!"); return; } 

Metode menerima string kueri, menguraikannya, membuat versi kanonik string kueri, dan memverifikasi tanda tangan.

Kemudian respons SAML diuraikan:

 // get the parameter value String samlResponseBasee64 = request.getParameter(HttpRedirectUtils.RESPONSE_PARAMNAME); [...] // parse the SAML Response. ParsedResponse parsed = parser.parse(samlResponse); 

Seperti yang telah disebutkan, HttpRedirectUtils.checkQueryString tidak mempertimbangkan menggunakan parameter beberapa kali, selalu menggunakan nilai terakhir dari parameter.

Untuk berhasil mengeksploitasi kerentanan, penyerang perlu string kueri yang ditandatangani oleh server otentikasi. Detail seperti waktu penandatanganan atau orang yang diminta tidak masalah. Bahkan jika string kueri valid untuk waktu yang singkat, pemeriksaan validitas dilakukan untuk data pada kartu ID. Menurut peneliti, mendapatkan permintaan yang valid tidak akan sulit jika Anda tahu ke mana harus mencari, karena mereka tersedia melalui pencarian Google pada log klien EID.

Para peneliti menunjukkan hasilnya di video:


Aplikasi web yang rentan menjalankan Governikus Autent SDK 3.8.1 dan versi sebelumnya yang menangani pengaturan HTTP rangkap. Kerentanan dapat digunakan, misalnya, untuk mendaftar di layanan online dengan nama samaran.

Mengapa Anda perlu nama palsu seperti itu? Anda dapat memberikan contoh abstrak seperti itu. Baru-baru ini, Kementerian Dalam Negeri Jerman meluncurkan inisiatif “Voluntary Return” , di mana ia membiayai setiap orang asing yang ingin pulang secara sukarela. Membayar tiket dan akomodasi kepada pemerintah lebih murah daripada secara paksa mendeportasi seorang pengungsi ( 700 terhadap 1.500 euro ), yaitu pembiayaan yang masuk akal.


Kampanye iklan di metro Berlin: untuk para pengungsi yang telah memberi tahu pemerintah Jerman tentang kepergian mereka secara sukarela ke tanah air mereka hingga 31 Desember, sewa tahunan perumahan di negara asal mereka dikompensasi

Secara teoritis, setiap orang asing dapat datang ke Jerman, mengajukan status pengungsi, menerima penolakan - dan segera dibiayai dengan program ini. Satu-satunya masalah bagi penipu adalah bahwa Anda hanya dapat melakukan trik ini satu kali. Jelas, maka layanan akan memeriksa bahwa manfaatnya belum dikeluarkan atas namanya. Tetapi jika Anda mendaftar dalam program dengan nama yang berbeda, maka uang dapat diterima beberapa kali (secara teoritis).

Tentu saja, spoofing negara Jerman eID tidak akan membantu penipu dengan paspor asing tiba di Jerman dengan nama baru. Tetapi contoh ini menunjukkan bahwa setiap sistem keamanan harus memiliki kerentanan. Satu-satunya pertanyaan adalah keinginan dan sumber daya untuk menemukannya.





Source: https://habr.com/ru/post/id431060/


All Articles