Apakah ada pola algoritme untuk melindungi konten apa pun di web untuk memastikan saya orang pertama yang membuatnya?

29

Beberapa tahun yang lalu ada peretas ini (tidak ingat siapa dia) yang sepenuhnya mengungkapkan kerentanan dalam sistem yang diberikan, tetapi untuk memastikan tidak ada yang mengambil kredit untuk itu, ia menciptakan semacam kunci PGP.

Apa yang saya pahami pada saat itu adalah bahwa dia menciptakan kunci untuk memastikan dia yang menemukannya, tetapi tidak mengungkapkan siapa dia sebenarnya, hanya menciptakan beberapa mekanisme untuk dapat membuktikan bahwa dialah yang menciptakan pengungkapan tersebut. .

Baik. Saya mendapatkan cara kerja algoritma dan kriptografi. Tapi saya masih tidak mengerti bagaimana Anda bisa membuat kunci untuk melindungi konten yang diberikan yang diungkapkan di web untuk membuktikan bahwa Anda yang membuatnya terlebih dahulu! Itu hanya kata-kata!

Apakah ini benar-benar mungkin? Apa yang harus menjadi proses untuk memastikan Anda dapat membuktikannya secara empiris? Apakah saya memahaminya dengan benar atau saya mungkin melewatkan sesuatu mengenai kasus ini?

Saya harap pertanyaan ini cukup spesifik, pada dasarnya itu hanya bagaimana melindungi konten yang Anda buat di web (paragraf, kode, kata, dll.) Dan pastikan Anda yang membuatnya terlebih dahulu, di dalam konteks yang diberikan.

Dengan pengetahuan saya, saya tidak melihat bagaimana itu mungkin, tetapi saya tertarik jika ada cara praktis untuk melakukannya. Disana?

Fagner Brack
sumber
9
Mungkin bertanya di crypto.stackexchange.com akan lebih baik?
Euforia
5
@FagnerBrack - Jangan menyalin / menempel. Cukup tandai pertanyaan untuk migrasi ke crypto SE.
mouviciel
10
But I still don't understand how you can create a key to protect a given content disclosed in the web to prove you are the one who created it first! It is just words!Ada perbedaan antara membuktikan bahwa Anda menciptakan sesuatu dan membuktikan bahwa Anda adalah yang pertama menciptakan sesuatu. Kunci PGP dapat membuktikan bahwa peretas mengirimkan laporan kerentanan. Tidak ada jaminan kerentanan tidak ditemukan atau dilaporkan sebelumnya, tetapi dia setidaknya bisa menunjukkan bahwa dia telah melaporkannya pada tanggal tertentu.
Doval
2
Ada sebuah cerita tentang seorang ahli matematika yang menemukan bukti dan belum mau menerbitkannya tetapi juga tidak ingin orang lain mendapat pujian. Jadi alih-alih dia menerbitkan surat-surat hukuman dari bukti yang diurutkan berdasarkan abjad. Saya lupa siapa namanya.
Paul
3
@ Paul - yaitu Robert Hooke, Hukum Hooke en.wikipedia.org/wiki/Hooke's_law
James McLeod

Jawaban:

1

Saya mungkin melewatkan sesuatu tentang kasus ini?

Saya pikir bit yang Anda lewatkan adalah entitas tepercaya.

Ketika Anda hash file dengan konten yang ingin Anda sertifikasi, Anda dapat menunjukkan kepada dunia bahwa Anda adalah pemilik dokumen ini, tanpa mengungkapkan dokumen ini. Ini semua sangat baik, tetapi bagaimana Anda bisa membuktikan Anda memiliki dokumen ini pada waktu tertentu di masa lalu?

Inilah tujuan dari Timestamping Tepercaya. Berikut ini kutipan dari wikipedia :

Teknik ini didasarkan pada tanda tangan digital dan fungsi hash. Pertama hash dihitung dari data. Hash adalah sejenis sidik jari digital dari data asli: serangkaian bit yang berbeda untuk setiap rangkaian data. Jika data asli diubah maka ini akan menghasilkan hash yang sama sekali berbeda. Hash ini dikirim ke TSA *. TSA menyatukan cap waktu untuk hash dan menghitung hash dari rangkaian ini. Hash ini pada gilirannya ditandatangani secara digital dengan kunci pribadi TSA. Tanda pagar + tanda waktu ini dikirim kembali ke pemohon cap waktu yang menyimpannya dengan data asli (lihat diagram).

(*) Otoritas Stamping Waktu

Saya telah menggunakan Layanan Timestamping Universign, yang memiliki seperangkat alat yang bagus untuk membuat seluruh operasi mudah dilakukan. Ada banyak perusahaan yang menawarkan layanan serupa.

Sangat menarik untuk dicatat bahwa, seperti yang disebutkan oleh @ JoelFan, bahwa bitcoin menyediakan cara untuk mendapatkan entitas tepercaya yang tidak terpusat (mengapa saya harus memercayai siapa pun?). Rantai bitcoin memberikan garis waktu (Anda dapat membuktikan satu dokumen yang ditambahkan dalam rantai bitcoin telah dibuat sebelum yang lain lebih jauh di dalam rantai tersebut). Namun, setahu saya, Anda masih akan melewatkan tanggal dan waktu efektif acara.

Juga, Stempel Waktu Tepercaya adalah referensi yang valid dalam litigasi.

mika
sumber
2
Ada tanggal-waktu yang disematkan di blok header dalam bitcoin ... meskipun mereka tidak ditegakkan oleh protokol, mereka umumnya dipercaya setidaknya memiliki "ballpark" yang akurat (yaitu, baik dalam akurasi 1 hari) ... itu juga mungkin untuk memeriksa seluruh blockchain dari blok yang dipermasalahkan sampai hari ini untuk memastikan tanggal-waktu meningkat secara monoton
JoelFan
Maaf terlalu lama untuk menerima jawaban. Peretas mungkin menggunakan entitas tepercaya, saya tidak bisa menemukan cara yang masuk akal untuk melindungi kepengarangan konten tanpa entitas tepercaya.
Fagner Brack
39

Di masa lalu, para ilmuwan akan menerbitkan anagram karya mereka untuk dapat mengatakan "Saya memikirkan ide ini." (lihat bagian 'sejarah' dan 'penetapan prioritas') Masalahnya adalah, mereka ingin dapat mengambil kredit untuk itu, tetapi juga memberikan ilmuwan lain untuk mempublikasikan hasil mereka jika mereka memiliki ide lain tanpa membangun ide asli .

Sebagai contoh Gallileo menerbitkan SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS yang merupakan anagram dari planetississvvm planetam tergeminvm obseravi yang diterjemahkan dari bahasa Latin berbunyi "Saya mengamati planet tertinggi dalam bentuk tiga kali lipat". Dia salah - Saturnus (planet 'tertinggi' yang dikenal saat itu) tidak dibangun dari tiga bagian. Lima puluh tahun kemudian, Christiaan Huygens menerbitkan AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNNN OOOO PP Q S S TTTTT UUUUU yang dalam bahasa Latin adalah Annulo cingitur, tenui, plano, nusquam cohaerente, dan juga diterjemahkan ke lebih dari satu situs. cincin datar yang tidak menyentuhnya dan cenderung terhadap ekliptika. "

Sementara itu adalah potongan sejarah yang sekarang menarik, mereka menunjukkan konsep penting saat itu - memberikan 'hash' yang mudah untuk mengatakan "hash ini menyandikan teks ini." Mudah untuk beralih dari teks yang dikenal ke anagram atau hash, tetapi sulit untuk mengetahui apa itu jika Anda tidak tahu apa itu di tempat pertama.

Dengan mekanisme modern, kami memiliki cara lain untuk melakukan hash. Banyak dari mereka sangat terkait erat dengan kriptografi. Ada fungsi hash kriptografis . Idenya adalah, masih, mudah untuk beralih dari teks yang Anda tahu ke hash, tetapi sulit untuk beralih dari hash ke teks yang tidak Anda ketahui.

Dan, jika Anda memiliki program Anda bisa menerbitkan hash dari program yang melakukan sesuatu dan kemudian ketika Anda berada siap untuk mengungkapkan itu (mungkin setelah perbaikan perusahaan atau periode waktu kemudian), Anda dapat mempublikasikan kode aktual dan semua orang bisa melihat itu, ya, kode ini cocok dengan hash itu.


sumber
1
Sedikit sejarah yang sangat bagus tentang penggunaan hash sebelum era digital :)
mika
30

Anda dapat melakukannya dengan sangat mudah. Jika Anda memiliki plaintext text, kunci rahasia Sdan kunci publik PAnda lakukan S(text)dan dapatkan cipher.

Sekarang Anda dapat mempublikasikan cipherdan Ptetapi tidak S. Oleh karena itu, semua orang dapat mendekripsi cipherdengan Pdengan melakukan P(cipher). Jika sekarang Anda ingin membuktikan, bahwa Anda adalah orang yang menciptakan cipher(dan karena itu yang asli text), Anda dapat menerbitkan S, atau - jika Anda tidak ingin orang lain tahu S - Anda dapat membuat yang lain S("I was really the one who found the text first")dan menerbitkannya. Karena tidak ada cara untuk membuat sandi yang didekripsi dengan P(cipher)yang menghasilkan beberapa teks yang bermakna.

Itulah cara Anda membuktikannya.

valenterri
sumber
13
Bagaimana ini membantu? Siapa pun yang dapat mendekripsi sandi dapat mempublikasikan ulang dengan cara yang sama dengan kunci rahasia mereka sendiri dan Anda tidak memiliki cara untuk membuktikan pihak mana yang pertama kali diterbitkan dan yang disalin dari pihak lain tanpa mempercayai catatan waktu publikasi pihak ketiga.
R ..
2
@R .. Konten di internet biasanya memiliki tanggal yang terkait dengannya (mis: posting forum). Jika ada beberapa orang yang mengaku sebagai penemu / penemu asli, maka Anda cukup memeriksa tanggalnya.
Paul
2
Anda juga dapat memasukkan beberapa konten dalam plaintext yang dienkripsi melalui P (konten). Pemilik sebenarnya dari S akan dapat mendekripsi informasi tambahan itu, sedangkan seorang reposter tidak akan dapat melakukannya.
Dancrumb
10
@ Paul: Tapi enkripsi tidak relevan. Ini sama dengan hanya memposting konten plaintext Anda dan mengandalkan tanggal.
R ..
2
@R .. idenya adalah bahwa, tanpa sepengetahuan S, sangat sulit untuk menghasilkan sepotong teks cipher2sedemikian rupa sehingga P(cipher2)tidak omong kosong. Dengan Situ sepele, seperti S("the text you want")= cipher2. Melakukan jumlah terbalik untuk mengalahkan metode kripto.
congusbongus
21

Dimungkinkan untuk memotong data yang ingin Anda cap waktu dan mengubahnya menjadi alamat Bitcoin. Ini dikenal sebagai cap waktu tepercaya . Dengan melakukan pembayaran kecil (a satoshi, atau 0,00000001 BTC) untuk itu, pembayaran disimpan di blockchain bersama dengan alamat yang Anda bayar.

Karena hanya hash yang disimpan di blockchain Bitcoin, tidak ada yang bisa memberi tahu data apa yang Anda simpan, tetapi mengingat data pra-hash Anda dapat membuktikan bahwa data itu dibuat sebelum blok yang berisi pembayaran yang dilakukan ke alamat itu.

JoelFan
sumber
1

Cara yang sangat sederhana untuk menetapkan bahwa Anda adalah orang pertama yang menerbitkan sesuatu, tanpa mengungkapkan siapa Anda dengan segera tetapi memiliki opsi untuk melakukan ini nanti:

  1. Publikasikan di sumber publik yang terkenal (di sana setiap orang dapat melihat bahwa Anda menerbitkannya)
  2. Dalam publikasi ini, tambahkan baris: Awalnya diterbitkan pada dd / mm / yyyy oleh pemilik [email protected]

Tidak perlu mengenkripsi apa pun.

Tentu saja ada kemungkinan Anda belum ingin mempublikasikan hasil Anda. Dalam hal ini Anda harus mengenkripsi semuanya kecuali baris dengan alamat email. Namun, sekarang mungkin lebih sulit untuk menerbitkan ini di situs terkenal.

Dennis Jaheruddin
sumber
4
Bagaimana jika "situs yang diubah" mengubah tanggal atau email publikasi? Itu bisa terjadi karena niat buruk bahkan jika situs tersebut diretas. (Ok saya menjadi sangat paranoid di sini, tapi itu intinya. Jika ada cara orang lain selain penulis asli mengubah buktinya, maka solusi Anda tidak benar-benar deterministik). Maksudnya di sini bukan hanya mengandalkan saksi manusia, tetapi dengan cara yang dapat dikonfirmasikan oleh siapa pun dengan cara tertentu tanpa konten Anda harus "dipublikasikan" atau "dipatenkan" oleh entitas tepercaya.
Fagner Brack
@FagnerBrack, arxiv.org telah terbukti cukup untuk hampir 1M makalah penelitian.
Brian S
1
Bisakah saya meletakkan apa saja di sana atau harus melewati beberapa peer review dan hanya akan diotorisasi di bawah batasan tertentu? Pertanyaan ini tidak ditujukan langsung ke makalah penelitian, ini tentang kemungkinan untuk mencapai hasil yang sama (atau setara) dengan cara yang terprogram.
Fagner Brack
2
Gunakan archive.org untuk menerbitkan - seperti arXiv, ini adalah repositori yang sangat tahan lama dan tepercaya, tetapi tidak seperti arXiv gratis untuk mengunggah konten di sana. Cap waktu pada apa pun yang Anda terbitkan di sana akan dianggap sangat andal.
Steve Midgley
1
Saya setuju, ketenaran adalah satu-satunya cara untuk menyebarkan pengetahuan dengan cepat dan andal.
bigstones
0

Ini adalah jawaban berbeda dari jawaban valenterri.

Berikut ini cara melakukannya dengan menggunakan PGP:

Menghasilkan pasangan kunci publik / pribadi.

  1. Anda menyimpan kunci pribadi dan Anda memastikan itu tetap rahasia.
  2. Anda mengenkripsi ide Anda dengan kunci publik Anda: P (ide)
  3. Anda menempatkan P (ide) di suatu tempat yang dipercaya (bukan oleh Anda, tetapi secara umum) dan akan mencatat waktu.
  4. Ketika Anda perlu membuktikan bahwa Anda membuat ide pertama, Anda mendapatkan cap waktu sejak Anda menyimpan data, dan Anda mendekripsi data Anda dengan kunci rahasia Anda. S (P (ide)) => ide

Metode ini tidak perlu melepaskan kunci rahasia Anda, yang pada umumnya adalah ide yang buruk. Memang, Anda selalu dapat membuat pasangan kunci PGP baru - tidak ada biaya apa pun, tetapi Anda tidak boleh sembarangan membagikan kunci rahasia jika Anda ingin menjadi kredibel.

Bagian tersulit adalah membuktikan waktunya, tetapi dalam hal mendokumentasikan kerentanan, kita tidak memerlukan solusi 100% anti peluru dan dapat diverifikasi di pengadilan, kita hanya memerlukan sesuatu yang 'cukup baik'. Log dari penyedia penyimpanan cloud (dropbox, rackspace, google, dll) mungkin cukup baik, dengan asumsi mereka menerapkan layanan yang aman.

Perlu juga dicatat bahwa menjadi yang pertama dengan ide dan cap waktu tidak berarti bahwa Anda adalah orang pertama yang memikirkan ide tersebut. Jika seseorang memikirkannya sebelum Anda tetapi tidak pernah mendaftarkan gagasan itu dengan mekanisme cap waktu, maka mereka tidak dapat membuktikan bahwa mereka berhasil melakukannya sebelum Anda. Jadi, jika kita mencoba mencari tahu siapa yang membuatnya pertama kali, dan yang kita tahu adalah saat kamu membuat itu, maka kita harus berasumsi kamu yang membuatnya terlebih dahulu (orang lain bisa memuntahkan kebohongan).

Shaz
sumber
-1

Ugh, banyak dari jawaban ini yang tidak tepat.

1) Apa yang dilakukan peretas tidak ada hubungannya dengan enkripsi.

2) Apa yang dilakukan peretas tidak ada hubungannya dengan waktu (cap waktu, dll).

Apa yang dilakukan peretas adalah Menandatangani dokumen rilis secara publik. Ketika Anda PGP menandatangani sesuatu (email, dokumen kata, dll), Anda membuat hash yang merupakan jumlah dari hash dokumen yang ditandatangani, dan kunci pribadi Anda sendiri. Sekarang, untuk membuktikan bahwa Anda adalah pencipta dokumen, Anda hanya perlu "menunjukkan" kunci pribadi, karena mungkin hanya penulis yang mengetahuinya. Secara kriptografis, Anda dapat "menunjukkan" bahwa Anda memiliki kunci pribadi tanpa benar-benar menunjukkan kunci itu sendiri.

Jadi, sebenarnya, dia menandatangani dokumen secara digital. Satu-satunya orang yang dapat menyalin tanda tangan itu, adalah seseorang dengan kunci pribadinya. Tidak ada yang mengatakan bahwa dokumen itu dibuat hari ini, atau kemarin, atau merupakan contoh pertama dari yang pernah ada. Tidak ada jumlah cap waktu hashing atau apa pun yang akan mengubah itu.

Satu-satunya cara untuk menandatangani sesuatu secara digital DALAM WAKTU, adalah dengan menggunakan blockchain ala bitcoin. Tidak ada mata uang digital tanpa verifikasi waktu - fakta bahwa orang A mengirim uang ke orang B tidak relevan kecuali kita tahu kapan. Anda tidak dapat pergi ke toko dengan selembar kertas dan berkata "ibuku mengirimi saya $ 100 satu kali. Saya ingin membeli roti", karena tanda terima transaksi tidak berarti uang itu masih milik Anda. Anda mungkin telah memberikannya kepada orang lain untuk sementara. Blockchain memecahkan masalah ini dengan meminta sejumlah besar orang (penambang bitcoin) untuk semua menyetujui fakta bahwa transaksi terjadi pada waktu tertentu (dan kemudian dengan mencatat waktu itu di blockchain selamanya).

JJ
sumber
2
ini tampaknya tidak menawarkan sesuatu yang substansial atas poin yang dibuat dan dijelaskan dalam 6 jawaban sebelumnya (khususnya, banyak yang ditulis tentang cap waktu tepercaya, dan pendekatan bitcoin sudah disajikan)
agas