Tiết lộ thông tin mà không làm mất đi dấu ấn riêng

Tiết lộ thông tin mà không làm mất đi dấu ấn riêng

Mọi người đọc thông tin trên thẻ sản phẩm đều nhận được cùng một bộ dữ liệu công khai; một số người còn nhận thêm các trường dữ liệu được bảo vệ. Câu hỏi ít được đặt ra hơn là liệu các trường dữ liệu bổ sung này có kèm theo bằng chứng xác thực hay không. Chúng tôi ký số từng trường dữ liệu riêng lẻ để ngay cả một trường dữ liệu đã được công khai cũng có thể được xác minh bằng khóa công khai - ngay cả khi ngoại tuyến, mà không cần phải liên hệ lại với chúng tôi.

Một “hộ chiếu sản phẩm kỹ thuật số” không hiển thị cùng một nội dung cho tất cả mọi người. Một người mua chỉ nhìn thấy dữ liệu công khai. Một cơ sở sửa chữa hoặc tái chế sẽ thấy nhiều thông tin hơn. Cơ quan giám sát thị trường thì nhìn thấy tất cả. Điều này đã được làm rõ, và các tiêu chuẩn châu Âu hiện nay đã quy định rõ ràng về vấn đề này.

Câu hỏi thú vị hơn lại nằm ở chỗ khác: Nếu ai đó được tiếp cận các trường dữ liệu được bảo vệ ngoài phạm vi dữ liệu công khai, liệu họ có thể chứng minh rằng chính những trường dữ liệu này là xác thực không? Hay họ phải tin tưởng rằng nền tảng đã chọn lọc chúng một cách chính xác và chuyển giao mà không thay đổi?

Với hầu hết các nền tảng, câu trả lời trung thực là: sự tin tưởng. Chúng tôi đã xây dựng nền tảng của mình sao cho câu trả lời là “bằng chứng” - không chỉ đối với các trường công khai, mà còn đối với mọi trường dữ liệu được bổ sung khi công bố. Tại sao sự khác biệt này lại quan trọng, và tại sao chúng tôi lại chọn con đường phức tạp hơn để thực hiện điều đó.

Tất cả đều tuân thủ quy tắc truy cập như nhau

EN 18239, tiêu chuẩn châu Âu về quyền truy cập, bảo mật và tính bảo mật trong DPP, yêu cầu kiểm soát truy cập theo từng phần tử dữ liệu: Đối với mỗi trường dữ liệu đều có một quy tắc xác định ai được phép xem. Đây là yêu cầu đúng đắn và không khó để đáp ứng. Về vị thế thực sự của các tiêu chuẩn này, chúng tôi đã phân tích chi tiết tại tiêu chuẩn hài hòa.

Cách thực hiện thông thường là lọc dữ liệu ở phía máy chủ. Máy chủ biết người yêu cầu là ai, tra cứu xem người đó được phép xem gì, và trả về chính phần dữ liệu đó. Kiểm soát truy cập: đã hoàn tất. Tiêu chuẩn không yêu cầu gì thêm.

Tuy nhiên, có một vấn đề mà tiêu chuẩn này không đề cập đến: Phần nội dung được gửi đến không có chữ ký. Người đọc nhận được một giao diện được tổng hợp riêng cho họ và phải tin rằng máy chủ đã lựa chọn một cách trung thực và không thay đổi bất cứ điều gì trong quá trình truyền tải. Đối với một tài liệu hướng dẫn công khai, điều này là chấp nhận được. Nhưng đối với một giá trị mà người xử lý dữ liệu dùng để định giá một viên pin đã qua sử dụng, thì đó là một sự tin tưởng quá lớn.

Khi một chữ ký đơn lẻ đạt đến giới hạn của nó

Giải pháp hiển nhiên là ký số dữ liệu. Đối với hai đầu của thang đo, một chữ ký thông thường hoạt động tốt: ký số bản xem công khai, ký số toàn bộ tập dữ liệu, và cả hai đều được xác minh bằng một khóa công khai mà không cần máy chủ trung gian. Cách thức hoạt động chi tiết được trình bày trong Chữ ký và Chứng chỉ trong DPP.

Vấn đề nảy sinh ở phần giữa. Một chữ ký trên toàn bộ tài liệu chỉ bao phủ chính xác một tập hợp các trường, cụ thể là những trường có sẵn tại thời điểm ký. Nếu mở thêm một trường được bảo vệ cho người đọc có quyền truy cập, trường này sẽ nằm ngoài tập hợp đã được ký và đến tay người đọc mà không được bảo vệ. Ngược lại, nếu ký ngay từ đầu cho toàn bộ tập dữ liệu, chữ ký tuy bao phủ mọi thứ, nhưng khi đó sẽ phải hiển thị toàn bộ dữ liệu cho mọi người.

Các cấp độ ở giữa do đó sẽ bị bỏ sót: xưởng sửa chữa, công ty bảo hiểm, đơn vị tái chế. Nếu muốn ký trước mọi kết hợp có thể có về “ai xem được gì”, thì mỗi kết hợp sẽ cần một tài liệu được ký riêng, và số lượng kết hợp sẽ tăng vọt theo từng nhóm truy cập mới. Không ai làm như vậy cả. Người ta lại quay về sử dụng bộ lọc máy chủ không có chữ ký, và khâu trung gian lại dựa vào sự tin tưởng.

Chữ ký từng trường riêng lẻ

Có một cách thiết kế tốt hơn, và chúng tôi xây dựng nền tảng dựa trên cách đó. Thay vì ký toàn bộ tài liệu đã hoàn thiện dưới dạng một khối, người phát hành sẽ xác định từng trường riêng lẻ trong một lần ký duy nhất (dành cho những ai am hiểu tiêu chuẩn: chứng chỉ W3C ecdsa-sd-2023 dành cho việc tiết lộ có chọn lọc).

Mỗi chế độ xem bắt đầu từ lõi công khai

Mỗi chế độ xem đều bắt đầu từ cùng các trường công khai. Những gì người đọc nhìn thấy thêm vào đó được bổ sung từng trường một, và mỗi trường này vẫn dẫn về khóa công khai của người phát hành - ngay cả khi ngoại tuyến, không cần ký lại và không cần tin tưởng vào bên đã tổng hợp chế độ xem đó. Các trường thông tin không được yêu cầu đơn giản là không có. Không bị che mờ, mà hoàn toàn không tồn tại, và không có thông tin nào về chúng bị rò rỉ ra ngoài.

Tại sao “không bị gián đoạn” lại là điểm mấu chốt

Hãy tưởng tượng một công chứng viên không chứng thực toàn bộ lá thư, mà chứng thực từng đoạn một. Mọi người đều nhận được lá thư công khai. Ai có quyền yêu cầu thêm thông tin sẽ nhận được các đoạn bổ sung, và mỗi đoạn trong số đó vẫn mang con dấu của cùng một công chứng viên. Theo quy trình thông thường, nền tảng sẽ sao chép các đoạn này cho bạn, và những gì bạn nhận được chỉ còn mang lời cam kết của họ.

Tại sao yếu tố “không bị phá vỡ” lại quan trọng đến vậy, điều này đáng để giải thích thêm một chút. Một con dấu còn nguyên vẹn không có nghĩa là nội dung là sự thật. Nó khẳng định: Chính xác đây là những gì người lập đã viết, và kể từ đó không ai thay đổi dù chỉ một ký tự nào. Nhờ đó, bất kỳ ai chỉ đơn thuần chuyển tiếp tài liệu - như bộ nhớ đệm, mạng internet, kho lưu trữ, hay chính chúng tôi - đều không còn liên quan đến vấn đề tin cậy. Người đã trao hộ chiếu cho bạn không còn quan trọng nữa.

Và con dấu là một yếu tố nhị phân. Nó còn nguyên vẹn hoặc không, không có khái niệm “bị phá vỡ một nửa”. Nếu con dấu bị phá vỡ, bạn sẽ không biết cụ thể câu nào đã bị thay đổi, mà chỉ biết rằng bạn không thể tin tưởng vào toàn bộ tài liệu đó nữa. Do đó, việc các trường thông tin bổ sung đến tay bạn có kèm theo con dấu hay không không phải là sự khác biệt mang tính độ. Nếu không có con dấu, các trường đó không phải là có độ tin cậy thấp hơn một chút, mà là hoàn toàn không có bằng chứng xác thực.

Cả hai phương pháp để xem

Ai cũng có thể tự kiểm tra điều này. Transpareo Time Machine là ứng dụng hiển thị mã nguồn mở của chúng tôi dành cho các chứng chỉ sản phẩm: Ứng dụng này lướt qua lịch sử các phiên bản của một chứng chỉ và tính toán lại từng chữ ký ngay trong trình duyệt của người xem, mà không cần truy vấn máy chủ của chúng tôi. Hai ví dụ về thẻ đang được công khai trên ứng dụng này. Thẻ của một chiếc áo thun có chữ ký bao phủ toàn bộ tài liệu, còn thẻ của một viên pin thì công bố theo từng trường.

Cả hai đều là các tiêu chuẩn mở của W3C: eddsa-jcs-2022 dành cho chữ ký bao phủ toàn bộ tài liệu, ecdsa-sd-2023 dành cho việc công khai theo từng trường dữ liệu. Bất kỳ ai cũng có thể triển khai chúng nếu muốn. Chi phí là lý do khiến nhiều người sẽ không thực hiện: Chữ ký trên toàn bộ tài liệu rẻ hơn đáng kể để xây dựng và vận hành, và những ai chỉ cung cấp dữ liệu công khai thì có thể sử dụng phương pháp này.

Việc Time Machine hỗ trợ cả hai phương pháp là có chủ đích và sẽ vẫn như vậy. Nó không thuộc về bất kỳ nền tảng nào. Một bên kiểm tra chỉ chấp nhận phương thức tốn kém hơn sẽ chỉ là công cụ phục vụ cho chúng tôi mà thôi, chứ không phải cho ai khác.

Ai là người được tiết lộ các trường dữ liệu được bảo vệ

Cần đặt câu hỏi xem ngoài dữ liệu công khai ra, còn có thông tin nào khác được tiết lộ cho ai. Không phải người mua ngẫu nhiên, người này chỉ nhận được “hộ chiếu công khai”. Đó là người xử lý, người đánh giá giá trị của một bộ pin đã qua sử dụng; là công ty bảo hiểm, người định giá rủi ro; là nhà tái chế, người phân loại các chất hóa học; là cơ quan chức năng, người xây dựng hồ sơ vụ việc. Đó chính là những người đọc, những người mà quyết định của họ liên quan trực tiếp đến tiền bạc hoặc an toàn.

Và đó cũng chính là những trường thông tin thường bị bỏ sót trong cách tiếp cận thông thường. Những người có lý do chính đáng nhất để yêu cầu bằng chứng mã hóa lại không nhận được nó cho chính những trường thông tin quyết định đến quyết định của họ.

Chúng tôi cho rằng một con dấu chứng nhận nên có ý nghĩa như nhau đối với tất cả mọi người. Cụm từ “Đã được Transpareo kiểm tra” trên giao diện mở rộng của một xưởng sửa chữa có ý nghĩa tương tự như trên “hộ chiếu công khai” của một người mua hàng: Mọi thông tin được hiển thị đều xuất phát từ đơn vị cấp chứng nhận và chưa từng bị can thiệp kể từ đó. Một con dấu chỉ áp dụng cho các trường công khai chỉ là một con dấu nửa vời.

Hơn cả những gì tiêu chuẩn yêu cầu

Chúng tôi nói thẳng: Không có điều nào trong số này là bắt buộc. Tiêu chuẩn EN 18239 yêu cầu việc kiểm soát quyền truy cập, và bộ lọc phía máy chủ thực hiện việc này một cách hoàn hảo. Việc đảm bảo các trường thông tin được công khai có thể kiểm tra bằng mật mã cũng là điều chúng tôi chủ động thực hiện thêm, chứ không phải là một yêu cầu bắt buộc từ quy định.

Chính vì lý do đó, điều này đáng được ghi nhận. Sẽ rất dễ dàng để tuân thủ đúng theo chữ nghĩa của tiêu chuẩn, triển khai bộ lọc máy chủ và tuyên bố rằng giai đoạn này đã hoàn tất. Chúng tôi muốn cam kết này có hiệu lực ở mọi nơi mà con dấu xuất hiện. Bởi vì ý nghĩa thực sự của một “hộ chiếu” được ký điện tử là không ai phải tin tưởng vào nền tảng đó. Việc loại trừ cấp độ trung bình như một ngoại lệ sẽ lấy lại chính niềm tin mà chữ ký số lẽ ra phải loại bỏ.

Nguyên tắc tương tự khiến một trường dữ liệu bị bỏ qua

Việc quy định cụ thể từng trường dữ liệu mang theo một đặc điểm thứ hai, và điều này thực sự được luật pháp châu Âu yêu cầu. Quy định chung về bảo vệ dữ liệu trao cho mọi người quyền yêu cầu xóa dữ liệu cá nhân. Một bộ dữ liệu được ký dưới dạng một khối không thể đáp ứng yêu cầu này mà không làm hỏng chính chữ ký của nó.

Vì ở đây mỗi trường dữ liệu là một đơn vị độc lập, nên có thể xóa một trường cụ thể trong khi các trường còn lại vẫn được xác thực. Nếu vô tình có dữ liệu cá nhân lọt vào hộ chiếu, chúng sẽ được loại bỏ hoàn toàn mà không làm ảnh hưởng đến tính hợp lệ của hộ chiếu: không cần cấp lại, không làm gián đoạn lịch sử sử dụng. Các trường thông tin theo quy định mà pháp luật yêu cầu phải lưu giữ vẫn được giữ nguyên; những thông tin có thể xóa sẽ được xóa theo yêu cầu, ngay cả nhiều năm sau đó.

Tuy nhiên, đây vẫn là một hộ chiếu hoàn toàn bình thường

Không có yếu tố nào trong số đó biến cuốn hộ chiếu thành một đối tượng đặc biệt mà chỉ các công cụ của chúng tôi mới có thể mở được. Nó vẫn là một Verifiable Credential (Thông tin xác thực có thể kiểm chứng) ở định dạng JSON-LD - định dạng mà thế giới các tiêu chuẩn web đang hướng tới, và cũng chính là định dạng được sử dụng bởi UN Transparency Protocol (Giao thức Minh bạch của Liên Hợp Quốc) cùng các tiêu chuẩn khác của W3C.

Do đó, tấm thẻ mà một người mua quét trong trình duyệt chính là cùng một đối tượng mà đối tác phòng dữ liệu có thể đọc được, và bất kỳ bên kiểm tra nào tuân thủ tiêu chuẩn đều có thể xác minh nó, không chỉ riêng chúng tôi. Tính bảo mật bổ sung này không tốn chi phí gì cho người đọc và không ràng buộc ai với chúng tôi.

Tại sao điều này lại khó về mặt kỹ thuật

Trước hết, để tránh gây hiểu lầm: Chúng tôi không phải là người phát minh ra quy trình này. ecdsa-sd-2023 là một tiêu chuẩn công khai của W3C, thuật toán mật mã đằng sau nó không phải do chúng tôi tạo ra, và ai muốn triển khai đều có thể tham khảo tài liệu này. Khó không phải là nảy ra ý tưởng. Khó là xây dựng nó sao cho một mật khẩu vẫn có thể được xác thực sau mười năm. Đó chính là phần công việc, và có thể nói điều gì đó hữu ích về vấn đề này.

Sự khác biệt nghe có vẻ nhỏ, nhưng lại thay đổi nền tảng: Một chữ ký thông thường thực hiện tính toán dựa trên các byte của tài liệu. Cơ chế tiết lộ có chọn lọc lại tính toán dựa trên các tuyên bố trong tài liệu. Trước khi ký, hộ chiếu được chuyển sang một định dạng chuẩn hóa, trong đó mỗi thông tin được trình bày dưới dạng một câu độc lập. Chỉ nhờ vậy, người ta mới có thể loại bỏ một câu mà không làm hỏng các câu còn lại.

Điều này dẫn đến một vấn đề mà chữ ký byte không gặp phải: Cùng một định dạng chuẩn hóa này phải được tái tạo chính xác sau mười năm. Không phải gần đúng, mà là từng ký tự một, nếu không thì bằng chứng sẽ không còn phù hợp nữa. Có ba yếu tố cản trở điều này, và cả ba đều rất khó nhận ra.

Các số mất đi kiểu dữ liệu của chúng. Nếu ghi một số dưới dạng JSON thuần túy, thì trong quá trình xử lý, thông tin về loại số đó sẽ bị mất đi. Một giá trị như 2.0 sau khi qua một vòng xử lý JSON sẽ trở thành 2. Đối với con người thì vẫn là cùng một giá trị, nhưng đối với dạng chuẩn hóa thì đó lại là một câu khác, và quá trình kiểm tra sẽ thất bại.

Tên gọi chưa phải là ý nghĩa. Để hình thành dạng chuẩn hóa, mỗi tên trường phải được giải mã thành một ý nghĩa duy nhất. Nếu thiếu một ý nghĩa, trường đó sẽ tự động biến mất trong quá trình chuyển đổi. Lúc đó, nó vẫn có trong giấy thông hành, nhưng bằng chứng không bao gồm nó, và không ai nhận ra điều đó.

Ý nghĩa thường nằm trên mạng. Sự gán ghép này được lưu trong một từ vựng mà hầu hết các công cụ sẽ tải lại từ mạng khi kiểm tra. Ai làm như vậy thì đang phụ thuộc khả năng kiểm tra của hộ chiếu vào việc một địa chỉ bên ngoài vẫn phản hồi sau mười năm, và không thay đổi.

Cách chúng tôi giải quyết vấn đề

Chúng tôi ## đãkhắc phục tận gốc ba vấn đề này, thay vì chỉ xử lý chúng sau này.

Kiểu dữ liệu. Mỗi giá trị đều được ghi kèm theo kiểu dữ liệu của nó, và quá trình xuất bản sẽ bị dừng ngay khi xuất hiện dù chỉ một số không có kiểu dữ liệu trong định dạng chuẩn. Nhờ đó, lỗi sẽ được phát hiện ngay tại chỗ, chỉ tốn một dòng mã, thay vì xuất hiện nhiều năm sau dưới dạng một vi phạm xác thực không thể giải thích được.

Từ vựng. Mọi từ vựng mà một Pass tham chiếu đến đều được lưu trữ cục bộ tại hệ thống của chúng tôi và không bao giờ được truy xuất qua mạng. Một địa chỉ không xác định sẽ dẫn đến việc ký kết bị ngắt ngay lập tức, chứ không phải là một kết quả trống rỗng do lỗi âm thầm.

Mã định danh. Mỗi nút trong tài liệu đều mang một mã định danh ổn định, để đảm bảo định dạng chuẩn hóa vẫn có thể tái tạo được, thay vì phải gán các tên phụ mới trong mỗi lần xử lý.

Phần nhạy cảm nhất nằm ở cơ chế “Bring Your Own Key” (Mang theo khóa của riêng bạn). Đối với mỗi lần cấp chứng chỉ, cần có một khóa bổ sung có thời hạn ngắn, dùng để ký từng trường thông tin có thể công khai. Chính người cấp chứng chỉ tự tạo ra và hủy bỏ khóa này. Nếu chìa khóa đó nằm trong tay chúng tôi, chúng tôi có thể tự ý thêm các trường dữ liệu sau này, và tính độc lập của chữ ký người xuất bản sẽ chỉ còn là lời khẳng định suông. Chúng tôi sẽ kiểm tra bằng chứng nhận được bằng cách đối chiếu với chìa khóa công khai đã lưu trữ trước khi tin tưởng vào nó.

Mỗi thẻ đều chứa hai bằng chứng như vậy, một từ người phát hành và một từ Transpareo, và mỗi bằng chứng đều được tạo ra một cách độc lập khi người đọc xem. Hai chữ ký, hai cơ quan thẩm quyền độc lập với nhau, ngay cả đối với một trường thông tin được công khai riêng lẻ.

Đối với chúng tôi, nỗ lực này là hoàn toàn xứng đáng. Chúng tôi không bổ sung tính khả kiểm tra sau này; nền tảng này đã được xây dựng xoay quanh yếu tố đó ngay từ phiên bản đầu tiên. Mỗi hộ chiếu đều được ký số khi công bố và được liên kết với phiên bản trước đó. Kho lưu trữ không thể thay đổi trong mười năm đã được thiết lập và có hiệu lực ngay khi các hộ chiếu được đăng ký tại Sổ đăng ký DPP của EU. Việc ký từng trường dữ liệu thay vì toàn bộ khối dữ liệu là sự mở rộng của cốt lõi này, chứ không phải là một phần bổ sung vào thứ vốn không được thiết kế cho mục đích đó.

Tình hình hiện tại

Nếu tóm gọn lại, sự lựa chọn rất đơn giản. Bạn có thể công khai các trường được bảo vệ và yêu cầu người đọc tin tưởng vào bộ lọc của bạn - điều này đáp ứng tiêu chuẩn. Hoặc bạn có thể công khai chúng và cung cấp bằng chứng ngay lập tức - điều này đáp ứng một tiêu chuẩn cao hơn, mà theo chúng tôi, các trường này xứng đáng được hưởng.

Chúng tôi đã chọn cung cấp bằng chứng, vì lợi ích của mọi độc giả, bởi vì một con dấu nên có cùng một ý nghĩa, bất kể ai nhìn vào nó. Nếu bạn muốn xem cách thức hoạt động: Hai bản demo được liên kết ở trên sẽ tự động kiểm tra trực tiếp trong trình duyệt, ở chế độ ngoại tuyến, chỉ dựa trên một khóa công khai.

Cập nhật về các cấp độ truy cập và bằng chứng

Công bố thông tin có chọn lọc, các chữ ký điện tử và quá trình phát triển các tiêu chuẩn DPP - bản tóm tắt hàng tháng sẽ được gửi trực tiếp vào hộp thư của quý vị.