Beberapa cara untuk memalsukan PDF dengan tanda tangan digital


Fig. 1. Prosedur penyimpanan tambahan yang menjadi dasar tanda tangan digital PDF didasarkan. Menurut hasil tes, ini adalah cara paling efektif untuk dokumen palsu

Secara teoritis, tanda tangan digital PDF andal mengotentikasi pembuat dokumen. Namun dalam praktiknya, pemrosesan PDF biasanya dilakukan oleh perangkat lunak berpemilik, yang tidak melakukan validasi dengan benar. Spesialis dari Universitas Ruhr di Bochum (Jerman) menjelaskan beberapa opsi untuk memalsukan dokumen PDF bertanda tangan digital yang berfungsi di sebagian besar pemirsa PDF dan layanan verifikasi online.

Perlindungan terhadap semua serangan disediakan hanya dalam satu program, dan bahkan itu bekerja di Linux.

Struktur PDF



Fig. 2. Struktur dokumen PDF

Struktur dokumen PDF ditunjukkan pada Gambar. 2. Ketika secara bertahap menyimpan perubahan pada dokumen PDF, objek baru ditambahkan ke tubuh , serta tabel Xref baru dengan deskripsi objek baru dan trailer baru dengan tautan ke katalog (lihat Gambar 1). Direktori adalah objek root dari file PDF, itu mendefinisikan struktur dokumen dan juga dapat menentukan izin akses.

Setiap objek dimulai dengan nomor objek dan nomor versi, yang meningkat dengan setiap pembaruan objek.


Fig. 2. Struktur objek PDF

Penciptaan Tanda Tangan


Menambahkan tanda tangan digital ke dokumen PDF bergantung pada mekanisme penyimpanan tambahan (lihat Gambar 1). Saat menambahkan tanda tangan selama penyimpanan tambahan, konten berikut ditambahkan ke dokumen:

  • Katalog baru dengan parameter Perms baru yang mendefinisikan izin untuk memodifikasi dokumen; parameter ini merujuk ke objek Signature ;
  • Objek tanda tangan ( 5 0 obj ) dengan informasi tentang algoritma kriptografi yang digunakan untuk hash dan menandatangani dokumen, dengan parameter Contents , yang berisi gumpalan bersandi-hex PKCS7 - ia menyimpan sertifikat dan nilai tanda tangan yang dibuat menggunakan kunci privat yang sesuai dengan kunci publik dalam sertifikat. Parameter ByteRange menentukan byte file PDF mana yang digunakan pada input fungsi hash untuk menghitung tanda tangan (pasangan a, b dan c, d ), yaitu, bagian mana dari file yang ditandatangani;
  • Tabel Xref baru dengan tautan ke objek baru
  • trailer baru.

Dalam gbr. Gambar 3 menunjukkan diagram sederhana dari file PDF yang ditandatangani secara digital.


Fig. 3. Layout File PDF Ditandatangani Secara Digital Sederhana

Menurut spesifikasi saat ini, Anda disarankan untuk menandatangani seluruh file, dengan pengecualian gumpalan PKCS7.

Verifikasi tanda tangan dilakukan oleh aplikasi tempat dokumen PDF dibuka. Segera mengekstrak tanda tangan dari PDF dan menggunakan operasi kriptografi untuk memverifikasi kebenarannya, dan kemudian memeriksa apakah sertifikat X.509, yang kuncinya digunakan untuk menandatangani, dapat dipercaya.

Biasanya, semua pembaca PDF tidak mempercayai keystore yang dibangun ke dalam sistem operasi. Seperti browser Firefox, mereka mendistribusikan keystore mereka sendiri dan biasanya memungkinkan pengguna untuk menentukan toko dengan sertifikat tepercaya. Fungsi ini memungkinkan Anda untuk hanya mempercayai sertifikat tertentu, misalnya, dari otoritas sertifikasi Anda sendiri.

Pemalsuan Tanda Tangan Digital


Para peneliti menjelaskan tiga cara untuk memalsukan konten dalam PDF yang ditandatangani.

  • Pemalsuan Tanda Tangan Universal (USF);
  • Serangan Incremental Saving Attack (ISA)
  • menyerang pembungkus tanda tangan (Signature Wrapping Attack, SWA).

Universal Signature Fake (USF)


Serangan USF menonaktifkan verifikasi tanda tangan dalam aplikasi yang membuka PDF. Dalam hal ini, pesan normal dikirimkan kepada pengguna tentang validasi tanda tangan yang berhasil. Ini dilakukan dengan memanipulasi objek Signature di dokumen: catatan yang salah dibuat di dalam dokumen ini, atau tautan ke objek dihapus dari file. Meskipun penampil PDF tidak dapat memverifikasi tanda tangan itu benar, dalam beberapa kasus program masih menunjukkan keberadaannya, yang memenuhi tujuan penyerang.

Para peneliti merumuskan 18 vektor serangan USF, delapan di antaranya ditunjukkan pada Gambar. 4.


Fig. 4. Delapan vektor serangan untuk menghindari verifikasi tanda tangan digital

Semua metode ini berfungsi jika penampil PDF tidak memverifikasi tanda tangan digital dengan benar.

Incremental Retention Attack (ISA)


Kelas serangan ini terdiri dari mendefinisikan ulang struktur dan konten di bagian tambahan dokumen. Idenya adalah bahwa tanda tangan dihitung berdasarkan kisaran byte yang ditentukan dalam ByteRange , dan bagian tambahan tidak termasuk dalam kisaran ini, seperti yang ditunjukkan pada Gambar. 5.


Fig. 5. Saat menambahkan konten ke bagian tambahan, tanda tangan digital tidak dilanggar

Ada beberapa cara untuk mengecek perubahan dokumen dan menampilkan peringatan yang sesuai di penampil PDF.

Signature Wrapper Attack (SWA)


Akhirnya, serangan kelas terakhir memungkinkan Anda mem-bypass verifikasi tanda tangan tanpa tambahan bertahap, tetapi dengan memindahkan bagian PDF yang sudah ditandatangani ke bagian akhir dokumen dan menggunakan kembali pointer xref di Trailer yang ditandatangani ke tabel Xref yang dimodifikasi. Pada saat yang sama, untuk menghindari pemrosesan bagian yang dipindahkan, dapat dibungkus dengan beberapa objek asing, misalnya aliran atau kamus .


Fig. 6. Perbandingan dokumen PDF asli dan yang dimodifikasi

Performa Serang


Peneliti menguji efektivitas setiap jenis serangan dalam program yang berbeda untuk melihat PDF. Tidak dapat menipu hanya Adobe Reader 9 di Linux . Di semua program lain, verifikasi tanda tangan dilewati dengan satu atau lebih cara.



Situasi dengan layanan verifikasi tanda tangan digital PDF online tidak lebih baik.

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


All Articles