Có bất kỳ mẫu thuật toán nào để bảo vệ bất kỳ nội dung nào trên web để đảm bảo tôi là người đầu tiên tạo ra nó không?


29

Vài năm trước, có tin tặc này (không nhớ anh ta là ai) đã tiết lộ đầy đủ lỗ hổng trong một hệ thống nhất định, nhưng để đảm bảo không ai lấy tín dụng cho điều đó, anh ta đã tạo ra một loại khóa PGP.

Điều tôi hiểu lúc đó là anh ta đã tạo ra một chìa khóa để đảm bảo anh ta là người đã phát hiện ra nó, nhưng không tiết lộ anh ta thực sự là ai, chỉ tạo ra một số cơ chế để có thể chứng minh rằng anh ta là người tạo ra tiết lộ .

Được. Tôi hiểu làm thế nào các thuật toán và mật mã hoạt động. Nhưng tôi vẫn không hiểu làm thế nào bạn có thể tạo một khóa để bảo vệ một nội dung nhất định được tiết lộ trên web để chứng minh bạn là người tạo ra nó trước tiên! Nó chỉ là lời nói!

Có thực sự có thể? Điều gì sẽ là quá trình để đảm bảo bạn có thể chứng minh bằng thực nghiệm? Tôi đã hiểu đúng hay có lẽ tôi đã bỏ lỡ điều gì đó liên quan đến vụ án này?

Tôi hy vọng câu hỏi này đủ cụ thể, về cơ bản, đó chỉ là cách bảo vệ nội dung mà bạn đã tạo trên web (đoạn văn, mã, từ, v.v.) và đảm bảo bạn là người tạo ra nó trước, bên trong bối cảnh nhất định.

Với kiến ​​thức của mình, tôi không thấy điều đó là có thể, nhưng tôi tò mò nếu có một cách thực tế để làm điều đó. Lanhung?


9
Có lẽ hỏi tại crypto.stackexchange.com sẽ là ý tưởng tốt hơn?
Euphoric

5
@FagnerBrack - Không sao chép / dán. Chỉ cần gắn cờ câu hỏi để di chuyển sang tiền điện tử 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!Có một sự khác biệt giữa việc chứng minh bạn tạo ra thứ gì đó và chứng minh bạn là người đầu tiên tạo ra thứ gì đó. Khóa PGP có thể chứng minh tin tặc đã gửi báo cáo lỗ hổng. Không có gì đảm bảo lỗ hổng không được phát hiện hoặc báo cáo trước anh ta, nhưng ít nhất anh ta có thể cho thấy rằng anh ta đã báo cáo nó vào một ngày nhất định.
Doval

2
Có một câu chuyện về một nhà toán học đã phát hiện ra một bằng chứng và chưa muốn công bố nó nhưng cũng không muốn người khác nhận được tín dụng. Vì vậy, thay vào đó ông đã xuất bản các chữ cái của bằng chứng được sắp xếp theo thứ tự abc. Tôi quên tên anh ta là gì.
Paul

3
@Paul - đó sẽ là Robert Hooke, Luật của Hooke en.wikipedia.org/wiki/Hooke's_law
James McLeod

Câu trả lời:


1

Tôi có lẽ đã bỏ lỡ một cái gì đó liên quan đến trường hợp này?

Tôi nghĩ rằng bit bạn đang thiếu là một thực thể đáng tin cậy.

Khi bạn băm tệp với nội dung bạn muốn chứng nhận, bạn có thể cho mọi người thấy rằng bạn là chủ sở hữu của tài liệu này mà không tiết lộ tài liệu này. Điều này là rất tốt, nhưng làm thế nào bạn có thể chứng minh bạn đã có tài liệu này tại một số thời điểm cụ thể trong quá khứ?

Đây là những gì đáng tin cậy về thời gian. Đây là một trích từ wikipedia :

Kỹ thuật này dựa trên chữ ký số và hàm băm. Đầu tiên một hàm băm được tính toán từ dữ liệu. Băm là một loại dấu vân tay kỹ thuật số của dữ liệu gốc: một chuỗi bit khác nhau cho mỗi bộ dữ liệu. Nếu dữ liệu gốc bị thay đổi thì điều này sẽ dẫn đến một hàm băm hoàn toàn khác. Băm này được gửi đến TSA *. TSA nối dấu thời gian với hàm băm và tính toán hàm băm của phép nối này. Băm này lần lượt được ký điện tử với khóa riêng của TSA. Hàm băm đã ký + dấu thời gian này được gửi lại cho người yêu cầu dấu thời gian lưu trữ chúng với dữ liệu gốc (xem sơ đồ).

(*) Cơ quan dập thời gian

Tôi đã và đang sử dụng Dịch vụ đo thời gian của Đại học, nơi có một bộ công cụ đẹp để làm cho toàn bộ hoạt động dễ thực hiện. Có rất nhiều công ty cung cấp dịch vụ tương tự.

Thật thú vị khi lưu ý rằng, như @JoelFan đã đề cập, bitcoin cung cấp một cách để có được một thực thể đáng tin cậy không tập trung (tại sao tôi nên tin tưởng bất cứ ai?). Chuỗi bitcoin cung cấp một mốc thời gian (bạn có thể chứng minh một tài liệu được tăng lên trong chuỗi bitcoin đã được tạo trước khi một chuỗi khác tiếp tục đi xuống trong chuỗi). Theo hiểu biết của tôi, tuy nhiên, bạn vẫn sẽ bỏ lỡ ngày và thời gian có hiệu lực của sự kiện.

Ngoài ra, Dấu thời gian đáng tin cậy là một tài liệu tham khảo hợp lệ trong vụ kiện.


2
Có thời gian được nhúng trong các tiêu đề khối trong bitcoin ... mặc dù chúng không được thực thi bởi giao thức, nhưng chúng thường được tin cậy là ít nhất là "ballpark" chính xác (tức là trong vòng 1 ngày chính xác) ... cũng có thể để kiểm tra toàn bộ blockchain từ khối được đề cập cho đến ngày hôm nay để đảm bảo thời gian ngày đang tăng đơn điệu
JoelFan 17/12/14

Xin lỗi để mất quá nhiều thời gian để chấp nhận một câu trả lời. Tin tặc có thể đã sử dụng một thực thể đáng tin cậy, tôi không thể tìm thấy một cách hợp lý để bảo vệ quyền tác giả nội dung mà không có thực thể đáng tin cậy.
Fagner Brack

39

Trong những ngày cũ, các nhà khoa học sẽ xuất bản đảo chữ của công trình của họ để có thể nói "Tôi nghĩ về ý tưởng này." (nhìn vào phần 'lịch sử' và 'thiết lập ưu tiên') Điều này là, họ muốn có thể lấy tín dụng cho nó, nhưng cũng cho các nhà khoa học khác công bố kết quả của họ nếu họ có ý tưởng khác mà không dựa trên ý tưởng ban đầu .

Ví dụ, Gallileo đã xuất bản SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS , một đảo chữ của altissimvm Planetam tergeminvm obseravi dịch từ tiếng Latin đọc "Tôi đã quan sát hành tinh cao nhất trong hình ba vòng". Anh ta đã hiểu sai - Sao Thổ (hành tinh 'cao nhất' được biết đến vào thời điểm đó) không được xây dựng gồm ba phần. Năm mươi năm sau, Christiaan Huygens bố AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RR S TTTTT UUUUU mà trong tiếng Latin là Annulo cingitur, tenui, phẳng, nusquam cohaerente, quảng cáo eclipticam inclinato mà dịch thành "Nó được bao quanh bởi một mỏng vòng phẳng không chạm vào nó và nghiêng theo đường hoàng đạo. "

Mặc dù đó là những bit lịch sử hiện đang được quan tâm, nhưng sau đó chúng cho thấy một khái niệm quan trọng - cung cấp một 'hàm băm' rất dễ để nói "hàm băm này mã hóa văn bản này". Thật dễ dàng để đi từ văn bản đã biết đến đảo chữ hoặc băm, nhưng khó có thể tìm ra nó là gì nếu bạn không biết nó là gì ở nơi đầu tiên.

Với các thợ máy hiện đại, chúng ta có những cách khác để thực hiện băm. Nhiều người trong số họ có liên quan rất chặt chẽ với mật mã. Có hàm băm mật mã . Ý tưởng là, vẫn dễ dàng đi từ văn bản bạn biết đến hàm băm, nhưng khó đi từ hàm băm sang văn bản bạn không biết.

Và như vậy, nếu bạn có một chương trình mà bạn có thể xuất bản một hash của chương trình mà không một cái gì đó và sau đó khi bạn đang sẵn sàng để tiết lộ nó (có thể là sau khi các bản sửa lỗi công ty hay một khoảng thời gian sau đó), bạn có thể xuất bản mã thực tế và mọi người đều có thể thấy rằng, vâng, mã này khớp với hàm băm đó.


1
Một chút rất hay về lịch sử về việc sử dụng hàm băm trước thời đại kỹ thuật số :)
mika

30

Bạn có thể làm điều đó khá dễ dàng. Nếu bạn có một bản rõ text, khóa bí mật Svà khóa chung Pbạn làm S(text)và lấy cipher.

Bây giờ bạn có thể xuất bản cipherPkhông S. Do đó, mọi người đều có thể giải mã cipherbằng Pcách làm P(cipher). Nếu bây giờ bạn muốn chứng minh, rằng bạn là người đã tạo ra cipher(và do đó là bản gốc text), bạn có thể xuất bản Shoặc - nếu bạn không muốn ai biết S - bạn có thể tạo một S("I was really the one who found the text first")bản khác và xuất bản nó. Bởi vì không có cách nào để tạo ra một mật mã được giải mã với P(cipher)kết quả đó trong một số văn bản có ý nghĩa.

Đó là cách bạn có thể chứng minh điều đó.


13
Điều này giúp gì? Bất cứ ai có thể giải mã mật mã chỉ có thể xuất bản lại theo cùng một cách với khóa bí mật của riêng họ và bạn không có cách nào để chứng minh bên nào xuất bản trước và bên nào sao chép mà không tin vào hồ sơ của bên thứ ba về thời gian xuất bản.
R ..

2
@R .. Nội dung trên internet thường có một ngày liên quan đến nó (ví dụ: bài đăng trên diễn đàn). Nếu có nhiều người tự xưng là nhà phát minh / người khám phá ban đầu, thì bạn chỉ cần kiểm tra ngày.
Paul

2
Bạn cũng có thể bao gồm một số nội dung trong bản rõ được mã hóa thông qua P (nội dung). Chủ sở hữu thực sự của S sẽ có thể giải mã thông tin bổ sung đó, trong khi đó, người phản hồi sẽ không thể làm điều đó.
Dancrumb

10
@Paul: Nhưng sau đó mã hóa không liên quan. Nó tương đương với việc chỉ đăng nội dung văn bản gốc của bạn và dựa vào ngày.
R ..

2
@R .. ý tưởng là, mà không biết S, nó là rất khó để đưa ra một đoạn văn bản cipher2P(cipher2)không phải là vô nghia. Với Snó là tầm thường, như S("the text you want")= cipher2. Làm số tiền ngược lại để đánh bại phương thức tiền điện tử.
congusbongus

21

Có thể băm dữ liệu bạn muốn đánh dấu thời gian và biến nó thành địa chỉ Bitcoin. Điều này được gọi là dấu thời gian đáng tin cậy . Bằng cách thực hiện một khoản thanh toán nhỏ (satoshi hoặc 0,00000001 BTC) cho nó, khoản thanh toán được lưu trữ trên blockchain cùng với địa chỉ bạn đã trả.

Vì chỉ có băm được lưu trữ trên blockchain Bitcoin, nên không ai có thể biết bạn đã lưu trữ dữ liệu nào, nhưng được cung cấp dữ liệu được băm trước, bạn có thể chứng minh dữ liệu được tạo trước khối có thanh toán được thực hiện cho địa chỉ đó.


1

Một cách rất đơn giản để xác định rằng bạn là người đầu tiên xuất bản một cái gì đó, mà không tiết lộ bạn là ai ngay lập tức nhưng có tùy chọn để làm điều này sau:

  1. Xuất bản nó trên một nguồn công cộng nổi tiếng (mọi người có thể thấy rằng bạn đã xuất bản nó)
  2. Trong ấn phẩm này, thêm một dòng: Được xuất bản lần đầu trên dd / mm / yyyy bởi chủ sở hữu của xxx @ gmail

Không cần mã hóa bất cứ thứ gì.

Tất nhiên, có cơ hội là bạn chưa muốn công bố kết quả của mình. Trong trường hợp đó, bạn cần mã hóa mọi thứ trừ dòng có địa chỉ email. Tuy nhiên, bây giờ có thể khó hơn để có được điều này được công bố trên một trang web nổi tiếng.


4
Điều gì xảy ra nếu "trang web được đổi tên" thay đổi ngày hoặc e-mail xuất bản? Nó có thể xảy ra do ý định xấu ngay cả khi trang web bị hack. (Ok tôi đang khá hoang tưởng ở đây, nhưng đó là vấn đề. Nếu có một người khác ngoài tác giả ban đầu thay đổi bằng chứng, thì giải pháp của bạn không thực sự mang tính quyết định). Vấn đề ở đây là không chỉ dựa vào các nhân chứng của con người, mà theo cách mà bất kỳ ai cũng có thể xác nhận quyền tác giả theo một cách nhất định mà không cần nội dung của bạn phải được "xuất bản" hoặc "cấp bằng sáng chế" bởi một thực thể đáng tin cậy.
Fagner Brack

@FagnerBrack, arxiv.org đã chứng minh đủ cho gần 1 triệu tài liệu nghiên cứu.
Brian S

1
Tôi có thể đặt bất cứ thứ gì ở đó không hoặc nó sẽ vượt qua một số đánh giá ngang hàng và sẽ chỉ được cấp phép theo các ràng buộc cụ thể? Câu hỏi này không nhằm trực tiếp đến các tài liệu nghiên cứu, đó là về khả năng đạt được kết quả tương tự (hoặc tương đương) theo cách lập trình.
Fagner Brack

2
Sử dụng archive.org để xuất bản - như arXiv, đây là kho lưu trữ rất lâu dài và đáng tin cậy, nhưng không giống như arXiv, nó miễn phí để tải lên nội dung ở đó. Dấu thời gian trên bất cứ thứ gì bạn xuất bản ở đó sẽ được coi là rất đáng tin cậy.
Steve Midgley

1
Tôi đồng ý, nổi tiếng là cách duy nhất để truyền bá kiến ​​thức nhanh và đáng tin cậy.
bigstones 16/12/14

0

Đây là một cách khác nhau về câu trả lời của valenterry.

Đây là cách bạn sẽ làm điều đó bằng PGP:

Tạo một cặp khóa công khai / riêng tư.

  1. Bạn giữ khóa riêng và bạn chắc chắn rằng nó được giữ bí mật.
  2. Bạn mã hóa ý tưởng của mình bằng khóa chung: P (ý tưởng)
  3. Bạn đặt P (ý tưởng) ở đâu đó đáng tin cậy (không phải bởi bạn, nhưng nói chung) và sẽ ghi lại thời gian.
  4. Khi bạn cần chứng minh bạn đã thực hiện ý tưởng trước, bạn sẽ nhận được dấu thời gian từ khi bạn lưu trữ dữ liệu và bạn giải mã dữ liệu bằng khóa bí mật của mình. S (P (ý tưởng)) => ý tưởng

Phương pháp này không yêu cầu giải phóng khóa bí mật của bạn, nói chung là một ý tưởng tồi. Cấp, bạn luôn có thể tạo một cặp khóa PGP mới - nó không tốn bất kỳ chi phí nào, nhưng bạn không nên liều lĩnh đưa ra các khóa bí mật nếu bạn muốn đáng tin cậy.

Phần khó nhất là chứng minh thời gian, nhưng về mặt tài liệu về một lỗ hổng, chúng tôi không cần một giải pháp chống đạn và kiểm chứng trước tòa 100%, chúng tôi chỉ cần một cái gì đó 'đủ tốt'. Nhật ký của nhà cung cấp lưu trữ đám mây (dropbox, rackspace, google, v.v.) có lẽ đủ tốt, giả sử họ triển khai một dịch vụ bảo mật.

Cũng đáng lưu ý rằng là người đầu tiên có ý tưởng và đánh dấu thời gian, điều đó không bao giờ có nghĩa là bạn là người đầu tiên nghĩ ra ý tưởng. Nếu ai đó nghĩ về nó trước bạn nhưng không bao giờ đăng ký ý tưởng với cơ chế đánh dấu thời gian, thì họ không thể chứng minh rằng họ đã thực hiện nó trước bạn. Vì vậy, nếu chúng ta cố gắng tìm ra ai là người đầu tiên và tất cả những gì chúng ta biết là thời gian bạn nghĩ ra nó, thì chúng ta phải cho rằng bạn đã nghĩ ra nó trước (người khác có thể đang nói dối).


-1

Ugh, rất nhiều câu trả lời trong số này bị thiếu điểm.

1) Những gì hacker đã làm không liên quan gì đến mã hóa.

2) Những gì hacker đã làm không liên quan gì đến thời gian (dấu thời gian, v.v.).

Những gì hacker đã làm là Ký công khai tài liệu phát hành. Khi bạn PGP ký một cái gì đó (e-mail, tài liệu từ, v.v.), bạn tạo một hàm băm là tổng của hàm băm của tài liệu được ký và khóa riêng của bạn. Bây giờ, để chứng minh rằng bạn là người tạo tài liệu, bạn chỉ cần "hiển thị" khóa riêng, vì có lẽ chỉ có tác giả biết nó. Nói về mặt mật mã, bạn có thể "thể hiện" rằng bạn đang sở hữu khóa riêng mà không thực sự hiển thị khóa.

Vì vậy, trong thực tế, ông đã ký kỹ thuật số tài liệu. Người duy nhất có thể sao chép chữ ký đó, là người có khóa riêng của mình. Không có gì để nói rằng tài liệu đã được thực hiện hôm nay, hoặc ngày hôm qua, hoặc là ví dụ đầu tiên của nó tồn tại. Không có dấu thời gian băm hoặc bất cứ điều gì sẽ thay đổi điều đó.

Cách duy nhất để ký điện tử một cái gì đó TRONG THỜI GIAN, là sử dụng blockchain a la bitcoin. Không thể có tiền kỹ thuật số nếu không có xác minh thời gian - thực tế là người A đã gửi tiền cho người B là không liên quan trừ khi chúng ta biết khi nào. Bạn không thể vào một cửa hàng với một tờ giấy và nói rằng "mẹ tôi đã gửi cho tôi 100 đô la một lần. Tôi muốn mua một ít bánh mì", bởi vì biên nhận giao dịch không có nghĩa là tiền vẫn thuộc về bạn. Bạn có thể đã đưa nó cho người khác trong thời gian tạm thời. Blockchain giải quyết vấn đề này bằng cách khiến một số lượng lớn người (người khai thác bitcoin) đồng ý với thực tế rằng giao dịch đã xảy ra tại một thời điểm nhất định (và sau đó bằng cách ghi lại thời gian đó trong blockchain mãi mãi).


2
điều này dường như không cung cấp bất cứ điều gì đáng kể qua các điểm được đưa ra và giải thích trong 6 câu trả lời trước đó (đặc biệt, rất nhiều bài viết về thời gian đáng tin cậy và cách tiếp cận bitcoin đã được trình bày)
gnat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.