Topik wawancara representatif

Wawancara Desain Sistem: Bagaimana Anda Membangun Layanan Verifikasi Asal-Usul C2PA?

Desain sistemSulit
Tim Redaksi Offer.ccDipublikasikan Diperbarui

Pertanyaan

Rancang layanan yang memverifikasi C2PA Content Credentials untuk gambar, video, dan audio, termasuk unggahan, rantai pengeditan, pencabutan, dan pembacaan konkurensi tinggi.

Pertanyaan dan skenario

Rancang layanan yang memverifikasi C2PA Content Credentials untuk gambar, video, dan audio. Layanan ini menerima media berukuran besar, menyimpan manifes yang ditandatangani, menampilkan riwayat pengeditan, dan menjelaskan kredensial yang tidak valid, hilang, atau tidak tepercaya.

Apa yang sedang diuji oleh pewawancara

  • Memisahkan C2PA Manifest, Claim, tanda tangan, dan pengikatan aset (asset binding) dengan benar.
  • Menangani file besar, verifikasi asinkron, caching, pembuatan versi (versioning), dan kepercayaan sertifikat.
  • Menyatakan bahwa kredensial tidak membuktikan kebenaran semantik, kemudian merancang fallback yang jujur dan kontrol privasi.

Pertanyaan klarifikasi sebelum menjawab

Klarifikasi jenis media dan ukuran maksimum, unggahan versus verifikasi hanya-baca, target latensi, retensi audit, siapa yang memiliki trust root, dan apakah pihak ketiga boleh mengambil manifes. Klarifikasi juga apakah layanan hanya memverifikasi integritas kriptografi atau membuat klaim tingkat bisnis tentang penerbit dan hasil pengeditan.

Kerangka jawaban 30 detik

Saya akan membagi sistem menjadi unggahan dan penyimpanan objek, ekstraksi manifes, verifikasi kriptografi, direktori kepercayaan, API hasil, dan indeks audit. Media tetap berada di penyimpanan objek; verifikasi bersifat asinkron dan idempoten berdasarkan hash konten. Hasil memisahkan validitas tanda tangan, integritas rantai, kepercayaan penerbit, dan status yang tidak diketahui. Cache berversi dibatalkan oleh pencabutan atau perubahan direktori kepercayaan. Produk harus menyatakan bahwa C2PA memverifikasi asal-usul yang dinyatakan dan pengeditan, bukan kebenaran semantik.

Jawaban mendalam langkah demi langkah

  1. Terbitkan URL unggahan dan catat hash aset, ukuran, jenis media, serta kebijakan tenant. Aktifkan versi objek dan checksum.
  2. Masukkan verifikasi ke dalam antrean setelah pengunggahan. Worker mengekstrak manifes yang disematkan atau jarak jauh dan memeriksa pengikatan Claim-ke-aset, tanda tangan, stempel waktu, rantai pengeditan induk, serta duplikat.
  3. Selesaikan sertifikat penerbit, pencabutan, dan tujuan penggunaan melalui direktori kepercayaan berversi. Simpan versi direktori tersebut bersama setiap hasil.
  4. Tulis peristiwa yang tidak dapat diubah (immutable) dan indeks kueri. Status harus mencakup valid, invalid, untrusted, missing, dan indeterminate, dengan referensi bukti daripada menyalin semua media.
  5. Kembalikan ringkasan, pengeditan, penerbit, waktu verifikasi, dan alasan kegagalan. Lindungi pratinjau dan pengunduhan manifes dengan URL berumur pendek.
  6. Cache aset yang sering diakses, tetapi gunakan versi aset, versi spesifikasi, dan versi direktori kepercayaan sebagai kunci cache. Batalkan secara massal saat ada pencabutan atau pembaruan pemverifikasi.
  7. Gunakan pembatasan laju (rate limits), pemindaian malware, percobaan ulang, dead letter, dan isolasi tenant. Unggahan multipart mencegah proses API menahan file yang sangat besar.
text
POST /v1/assets/uploads
POST /v1/assets/{assetId}/verify
GET  /v1/assets/{assetId}/provenance
GET  /v1/trust-roots/{version}

Contoh jawaban berkualitas tinggi

Pertama, saya akan menentukan batasan kepercayaan: C2PA Manifest adalah tanda tangan yang dapat diverifikasi atas asersi asal-usul dan pengeditan, bukan pengklasifikasi kebenaran. Layanan pengunggahan menyimpan versi objek dan hash; worker asinkron memverifikasi pengikatan aset, tanda tangan, rantai pengeditan, stempel waktu, dan status sertifikat. API hasil memisahkan integritas, kepercayaan penerbit, kredensial yang hilang, dan hasil yang belum ditentukan, serta mencatat versi spesifikasi dan direktori kepercayaan. Cache berversi dapat dibatalkan setelah pencabutan; peristiwa audit yang tidak dapat diubah dan URL media berumur pendek melindungi penyelidikan. Ini dapat diskalakan tanpa mengubah "tanda tangan valid" menjadi "benar secara faktual".

Kesalahan umum

  • Memperlakukan C2PA sebagai detektor AI atau orakel kebenaran.
  • Memverifikasi tanda tangan tanpa memeriksa pengikatannya dengan byte aset saat ini.
  • Menyamakan rantai sertifikat yang valid dengan penerbit yang tepercaya.
  • Mengirim media berukuran besar melalui penangan API sinkron alih-alih menggunakan penyimpanan objek dan antrean.
  • Mengabaikan versi spesifikasi, pemverifikasi, dan direktori kepercayaan, sehingga hasil tidak dapat direproduksi.

Pertanyaan lanjutan dan tanggapan

Mengapa hasil pengeditan tidak bisa mempertahankan tanda tangan lama begitu saja?

Pengeditan mengubah byte aset. Editor harus menambahkan Manifest baru, membuat rantai induk-anak, dan mengikat versi saat ini lagi. Asersi lama dapat tetap menjadi riwayat, tetapi tidak dapat menandatangani byte saat ini.

Apakah kredensial yang hilang berarti konten tersebut palsu?

Tidak. Ini berarti tidak ada asersi asal-usul yang dapat diverifikasi yang tersedia. Tampilkan status tidak diketahui atau hilang dengan batasan cakupan; jangan melabeli konten di luar ekosistem sebagai salah.

Bagaimana Anda menangani perubahan direktori kepercayaan?

Simpan versi direktori dan waktu verifikasi, pertahankan bukti asli, dan verifikasi ulang secara asinkron setelah pembaruan. Publikasikan versi hasil baru beserta alasan untuk setiap perubahan status.

Bagaimana Anda mencegah kebocoran privasi Manifest?

Gunakan visibilitas tingkat tenant dan tingkat bidang, kembalikan hanya ringkasan yang diperlukan secara default, enkripsi bidang sensitif, gunakan URL unduhan berumur pendek, dan audit setiap akses beserta pelaku dan tujuannya.

Sumber publik

Pertanyaan terkait

Alat wawancara terkait

Gunakan Jawab untuk jawaban desain sistem

Perjelas persyaratan terlebih dahulu, lalu lanjutkan dengan skala, arsitektur, pilihan komponen, dan trade-off.

Lihat alat