it-swarm-vi.com

Đề án / Cơ chế có thể cung cấp giải mã một lần?

Tôi khá quen thuộc với hầu hết các nền tảng bảo mật đại học/lớp phổ biến; nhưng tôi không thể tìm thấy bất cứ điều gì liên quan đến kịch bản này:

Một lược đồ/hệ thống trong đó một phần dữ liệu chỉ có thể được 'giải mã' VÀ chỉ đọc một lần (có khả năng trong một chương trình máy tính).

Nó thậm chí có thể? Tôi đã nghe nói những điều như vậy có trong 'thế giới phần cứng' (?). Nếu câu hỏi của tôi không chính xác/không đầy đủ, tôi sẵn sàng cập nhật. Nhưng tôi thực sự quan tâm đến một thiết kế/giao thức chung cùng một lúc.

38
DaveIdito

Không có cách nào để làm điều này - đây là một tập hợp con của những kế hoạch DRM cố gắng thực hiện.

Nếu người dùng cuối có thể giải mã thứ gì đó một lần để xem, họ có thể thấy lại. Bất kỳ điều nào sau đây có thể là có thể:

  • đầu tiên lấy một bản sao và giải mã rằng
  • sao chép màn hình
  • chỉnh sửa ứng dụng

Cách duy nhất bạn có thể đến gần là có toàn quyền kiểm soát phần cứng và phần mềm, vì vậy bạn có thể xóa một khi nó đã được hiển thị, nhưng ngay cả khi đó, ai đó có thể sử dụng máy ảnh để chụp ảnh màn hình, v.v.

Vì vậy, thay vào đó, tôi muốn hỏi bạn dự định sử dụng sơ đồ như vậy để làm gì - vì có nhiều cách để có hiệu quả tương tự trong nhiều tình huống.

62
Rory Alsop

Như bạn đã gợi ý, một điều như vậy chỉ có thể có trong phần cứng. Một phần mềm hoặc giải pháp dữ liệu được mã hóa sẽ luôn phải chịu tùy chọn tạo bản sao trước khi giải mã.

Trong phần cứng, sơ đồ sẽ là phá hủy thông tin về giải mã. Một cách tiếp cận ngây thơ sẽ chỉ đơn giản là đọc một khối vào bộ nhớ, phá hủy nó trên bộ lưu trữ và sau đó giải mã nó.

Cách tiếp cận đó, tất nhiên, có thể trở thành nạn nhân của việc giả mạo - kẻ tấn công có thể thao túng hệ thống để xóa không thành công, nhưng bất cứ điều gì đang thực hiện giải mã đều tin rằng nó đã thành công và do đó tiến hành giải mã.

Một cách tiếp cận tinh vi hơn sẽ là khai thác một số tài sản vật chất theo cách đọc thông tin cũng phá hủy nó. Trên thực tế, điều này làm cho mật mã lượng tử lý thuyết phần lớn được bảo mật - bạn không thể nghe lén (lắng nghe) mà không phá hủy thông tin, do đó tiết lộ sự thật rằng ai đó đang chặn tin nhắn.

Bên ngoài cõi lượng tử, có thể có các giải pháp sử dụng các quá trình vật lý hoặc hóa học khác, nhưng chúng cũng sẽ bị giả mạo.

25
Tom

Nếu có mạng, bạn có thể giảm thủ tục giải mã (và khóa riêng) cho một dịch vụ chạy trên máy chủ an toàn. Sau đó, bạn có thể thực thi bất kỳ quy tắc nào bạn muốn trên máy chủ.

Máy khách sẽ gửi văn bản mờ cho dịch vụ và yêu cầu nó giải mã nó và trả lại nội dung văn bản gốc, và máy chủ có thể quyết định liệu máy khách có được phép dựa trên lịch sử giải mã không - có khả năng chặn nhiều hơn một hoạt động giải mã.

Tuy nhiên, sẽ không có gì ngăn người gọi sử dụng kết quả của việc giải mã lặp đi lặp lại, điều này ít nhiều giống như giải mã nó nhiều lần . Đã có những nỗ lực để làm như vậy cho âm nhạc và phim ảnh (xem đường dẫn phương tiện được bảo vệ ) nhưng đó là một trận thua. Nếu không có gì khác, tin tặc có thể giả mạo phần cứng màn hình và ghi lại tín hiệu đầu vào, hoặc thậm chí chỉ cần quay camera HD vào màn hình và ghi lại nội dung khi phát. Một kỹ thuật đánh chặn tương tự có thể được sử dụng cho bất kỳ loại nội dung số nào. Vì vậy, điểm mấu chốt là ... không, nó không thực sự có thể.

Một cách tiếp cận khả thi hơn sẽ là nướng một số sê-ri vào chính nội dung đó và theo dõi nó trong một máy chủ ủy quyền hoặc nướng trong dấu thời gian hết hạn. Sau đó, bạn cần phải thực thi điều này ở đầu nhận, đây sẽ là một ứng dụng an toàn. Đây là cách một ví dụ mật khẩu một lần hoạt động. Nhưng điều đó đòi hỏi bạn phải sở hữu cả hai đầu của đường dẫn dữ liệu và để dữ liệu trở nên vô dụng bên ngoài nó.

10
John Wu

Nó không phải là thực tế, và về cơ bản là không thể (theo cách đáng tin cậy), nhưng có thể một số mức độ.

Trở ngại rõ ràng khiến cho nỗ lực về cơ bản là không thể là bất cứ điều gì bạn giải mã được, một khi bạn đã đọc nó, nó nằm trong đầu bạn. Vì vậy, để chắc chắn bí mật được giữ bí mật, sẽ phải có một cơ chế thuốc độc. Có thể một viên nang chứa động cơ TTS và truyền thông điệp đến bạn thông qua dẫn truyền xương, sau đó phát nổ, thổi bay đầu bạn.
[.__.] Bởi vì, bạn biết, miễn là bạn thở, bạn chỉ có thể nói với ai đó. Tuy nhiên, hãy hy vọng bạn không lặp lại to những gì TTS đang thì thầm trong đầu.

Ngoài ra, có các hệ thống lưu trữ dữ liệu chỉ có thể được đọc một lần. DRAM và Ferroelectric RAM như một sự thay thế không bay hơi là hai ví dụ về điều đó. Chúng cần một tích hợp ghi rõ ràng sau khi đọc hoặc một cái gì đó khác (ví dụ: mạch tụ điện). đọc thông tin sẽ phá hủy thông tin. Bỏ qua thông tin đó và bạn đã tiến lên một bước lớn.
[.__.] Bây giờ, ít nhất, người ta sẽ phải tạo hai bản sao (một bản lưu trữ không đọc bị phá hủy, và sau đó một bản khác để thực sự có bản sao). Tuy nhiên, điều đó hoàn toàn nằm trong lĩnh vực "có thể làm được", nhưng tùy thuộc vào khả năng tương thích phần cứng, dù sao nó cũng có thể là một gánh nặng (không chắc bạn có thể kết nối hai loại lưu trữ hoàn toàn khác nhau, không tương thích và sao chép dữ liệu như trong Star Trek, rất có thể cũng có thể nó chứng minh một chút khó khăn hơn thế!). Nhưng chúng tôi không ở cuối.

Khóa giải mã và thậm chí là một phần hoặc hoàn thành mã thực thi giải mã (giả sử các vòng lặp không được kiểm soát) cũng có thể được lưu trữ trên bộ lưu trữ đọc phá hủy bên trong phần cứng giải mã. Khóa giải mã không cần phải rời khỏi chip, vì vậy ngoài "dữ liệu", không cần có làn đường để truyền nó. Nó được đọc trong quá trình giải mã, và sau đó nó biến mất. Vì vậy, ... bạn đi.

Trừ khi bạn cho rằng ai đó có thể khoan lỗ có kích thước vài chục nanomet vào chip và sử dụng dây nano để bằng cách nào đó nghe lén vào bộ lưu trữ, không có cách nào để lấy dữ liệu. Tôi không nói điều này là không thể, chỉ là ... nó hơi điên. Không có thông tin là đủ giá trị để đảm bảo rằng. Thêm vào đó, tôi đoán đó có thể là một thủ tục khá rủi ro vì vô tình làm rò rỉ một điện tích nhỏ hoặc đi quá vài nanomet bên trái hoặc bên phải chắc chắn cũng sẽ phá hủy chìa khóa.

Vì khóa giải mã thường rất nhỏ (32 byte trở xuống), trên thực tế, nó có thể được lưu trữ bên trong bộ xử lý vỏ bảo mật hoặc tương tự, như được thực hiện trong nhiều thiết bị di động hiện nay. Bộ nhớ đó có thể cũng có các lần đọc phá hủy (và không có quyền truy cập bên ngoài vào dữ liệu bị lấn chiếm, giống như trên mọi điện thoại hiện đại). Nhưng nó thậm chí không cần.
[.___.] Bạn có thể có các cầu chì như trong Knox của Samsung hoặc SEP của Apple, về nguyên tắc cho phép bạn giải mã dữ liệu N lần (không chỉ chính xác một lần, mà chính xác là N lần, bao nhiêu lần bạn muốn). Sau đó, bộ xử lý đơn giản là không làm mới (hoặc ghi đè rõ ràng) khóa. Hoặc, kém an toàn hơn nhiều (nhưng có lẽ vẫn đủ tốt), chỉ có từ chối để giải mã.
[.__.] Vì vậy, tạo một bản sao của dữ liệu được mã hóa thực sự sẽ không làm được gì nhiều vì bạn không thể giải mã được bản sao.

Tất nhiên, ai đó vẫn có thể sao chép một cách tầm thường dữ liệu đã được giải mã , nếu có bất kỳ phương tiện nào để làm như vậy. Thông thường có, cả kỹ thuật số và analog. Nếu không có gì khác, bạn có thể có hai hoặc ba mọi người nhìn vào màn hình đồng thời hoặc chụp ảnh.

Tuy nhiên, đó là một vấn đề mà về cơ bản bạn không thể giải quyết (ngoại trừ thiết bị phát nổ hoặc thiết bị giải phóng khí gas).

2
Damon

Từ ý nghĩa lý thuyết thuần túy - chỉ có thể nếu bạn có thể chắc chắn rằng sau lần giải mã đầu tiên, không có bản sao nào tồn tại cả hai

  1. dữ liệu được giải mã và
  2. hoặc dữ liệu được mã hóa hoặc (các) khóa cần thiết để giải mã nó.

Về nguyên tắc, bạn chỉ có thể làm điều này với hợp tác (sẵn sàng hoặc bị ép buộc) của các bên xử lý những mẩu thông tin cần phải xóa.

Trong thực tế, điều này có thể đủ tùy thuộc vào những gì bạn muốn đạt được và những thành phần nào của hệ thống mà bạn sẵn sàng tin tưởng.

Ví dụ: nếu bạn tin tưởng một chiếc iPhone thông thường (theo nghĩa tuyệt đối, nhưng giống như tất cả mọi thứ trong bảo mật, có một vài điều tuyệt đối, thường chỉ có xác suất và mức độ rủi ro bạn sẵn sàng chấp nhận), bạn có thể chấp nhận chọn giả sử rằng một ứng dụng iPhone bạn đã viết và dữ liệu của nó không thể bị can thiệp bởi phần mềm độc hại hoặc người dùng con người, bởi vì đó là loại điều Apple dường như cố gắng đảm bảo, và do đó bạn có thể giải mã và đảm bảo xóa dữ liệu trong mã của bạn sau.

(Bạn luôn có thể tưởng tượng một thiết bị được kiểm tra và bảo mật tỉ mỉ mà bạn tự làm nếu iPhone cảm thấy quá không an toàn hoặc không đáng tin cậy đối với bạn.)

Điều này không xóa "lỗ tương tự" nếu bạn đang hiển thị dữ liệu đó cho người dùng hoặc rò rỉ nó theo cách có thể quan sát được, nhưng có thể chấp nhận được đối với một số usecase - ví dụ như có thể bạn không hiển thị cho người dùng, nhưng chỉ sử dụng dữ liệu được giải mã như một phần của một số lược đồ bảo mật trong các chi tiết triển khai mà người dùng không cần trực tiếp nhìn thấy.

Chúng tôi có thể mở rộng ví dụ này sang truyền dữ liệu : bạn có thể gửi dữ liệu được mã hóa thông qua một kênh dữ liệu, khóa qua một kênh khác và miễn là bạn tin tưởng vào ít nhất một trong số các kênh đó được bảo mật và không lưu giữ dữ liệu được truyền qua hoặc bạn có thể tin tưởng rằng bất kỳ người trung gian nào có thể nghe lén trên một kênh sẽ không bao giờ có thể truyền thông tin với bất kỳ ai có thể nghe lén được kênh kia, sau đó bạn có một sự đảm bảo chắc chắn rằng điều duy nhất giải mã được nó là mã khách hàng hợp tác của bạn.

TL; DR: Nếu bạn hiểu tại sao nó không có giải pháp hoàn hảo cho vấn đề này về nguyên tắc, bạn có thể xác định một số tình huống mà bạn có thể đạt được nó với tỷ lệ cược đủ cao để thoải mái trong thực tế. Nhưng những tình huống đó có thể không trùng lặp với những gì bạn đã hy vọng sẽ làm.

1
mtraceur

Đây là một trong những lời hứa của truyền thông lượng tử - về mặt lý thuyết, vì quan sát về cơ bản làm thay đổi trạng thái lượng tử, có thể tạo ra một giao thức truyền thông "đọc một lần".

Tất nhiên, các vấn đề thực tế như "người dùng vẫn có thể chụp ảnh màn hình bằng điện thoại của họ" vẫn còn.

0
Filips Jelisejevs