Tiếng Việt

Công cụ dành cho nhà phát triển · Trình tạo UUID

Tạo UUID mà không cần máy chủ: Tại sao bảng điều khiển mạng vẫn trống

· Tại sao nó quan trọng

uuid mật mã browser-apis

Bảng điều khiển Mạng DevTools của trình duyệt không hiển thị yêu cầu nào trong khi UUID được tạo
Hình minh họa vector ToolAcre gốc

Trình tạo UUID trực tuyến gọi đến máy chủ của nó đang gửi cho bạn siêu dữ liệu mà bạn không bao giờ cần chia sẻ. Bài đăng này giải thích lý do tại sao việc tạo cục bộ tự nó đã hoàn tất và cách xác minh rằng một công cụ thực sự là cục bộ.

Tại sao trình tạo ID lại cần máy chủ - và tại sao đối với các UUID ngẫu nhiên thì không

Tại sao trình tạo UUID lại cần máy chủ khi thế hệ UUID hoàn toàn cục bộ? UUID độc lập về mặt toán học với bất kỳ trạng thái nào bên ngoài trình tạo. Phiên bản 4 UUID là 122 bits dữ liệu ngẫu nhiên được mã hóa với 4 bits cho phiên bản và 2 bits cho biến thể. Khách hàng có quyền truy cập vào Web Crypto nguồn ngẫu nhiên được bảo mật bằng mật mã trong trình duyệt, thư viện mật mã cục bộ trong máy chủ, do đó, khách hàng có thể tạo toàn bộ UUID cục bộ mà không cần tham khảo bất kỳ dịch vụ bên ngoài nào. Tuy nhiên, nhiều trình tạo UUID trực tuyến thực hiện HTTP yêu cầu, gửi dữ liệu không bao giờ cần rời khỏi máy khách. Điều này là không cần thiết và có khả năng gây hại cho quyền riêng tư.

Những gì trình tạo được lưu trữ có thể giữ lại — nhật ký yêu cầu, địa chỉ và dấu thời gian, được mô tả dưới dạng khả năng thay vì cáo buộc

Trình tạo gửi yêu cầu của bạn đến máy chủ có thể giữ lại nhật ký yêu cầu, dấu thời gian và địa chỉ IP được liên kết với mẫu tạo UUID của bạn. Ngay cả khi nó không lưu trữ UUID, nó vẫn biết bạn tạo ID khi nào và từ đâu. Đối với nhà phát triển làm việc trong các dự án bí mật, việc tạo ID có thể rò rỉ thông tin về thời gian và hoạt động phát triển. Vì mục đích thử nghiệm, UUID được định dạng chính xác nhưng vẫn truy cập vào máy chủ được cho là đã bị xâm phạm: máy chủ hiện biết bạn đang thử nghiệm những hoạt động hoặc hệ thống nào. Siêu dữ liệu này có giá trị đối với người tổng hợp và có thể được sử dụng để phân tích hoặc lập hồ sơ.

Tại sao bản thân các số nhận dạng lại nhạy cảm — UUID trở thành khóa bản ghi chỉ là một phần nhỏ trong cấu trúc hệ thống của bạn

Phản ứng đối với sự tham gia không cần thiết của máy chủ là việc tạo cục bộ đơn giản hơn, nhanh hơn và riêng tư hơn so với việc tạo dựa trên máy chủ. Trình duyệt của bạn đã tích hợp sẵn Web Crypto hoặc máy chủ của bạn có quyền truy cập vào nguồn entropy của hệ điều hành. Kết quả có thể được sao chép, tải xuống hoặc sử dụng ngay lập tức mà không cần chờ kết nối mạng. UUID không bao giờ di chuyển qua mạng. Trình tạo không bao giờ biết rằng bạn đã chạy nó. Tạo cục bộ là mặc định rõ ràng cho UUID; sự tham gia của máy chủ là một trung gian không cần thiết, tạo ra rủi ro mà không mang lại giá trị. Khách hàng có mọi thứ cần thiết để tạo RFC 9562 UUID hợp lệ.

Xác minh một công cụ là cục bộ — mở bảng điều khiển mạng của trình duyệt, tạo và xem các yêu cầu

Một trình tạo được lưu trữ gọi máy chủ của nó có thể giữ lại nhật ký vì nhiều lý do đã nêu: phân tích để hiểu mô hình sử dụng, ngăn chặn lạm dụng để phát hiện các cuộc tấn công, gỡ lỗi để khắc phục sự cố hoặc vì những lý do không được nêu rõ cho người dùng: bán dữ liệu cho các đơn vị tổng hợp tiếp thị, lập hồ sơ hành vi để xây dựng hồ sơ người dùng, tích hợp với các dịch vụ khác hoặc theo dõi trên các dịch vụ. Bản thân yêu cầu mang siêu dữ liệu: địa chỉ IP của bạn tiết lộ vị trí và nguồn gốc, tiêu đề Tác nhân người dùng xác định phiên bản trình duyệt của bạn và đôi khi là hệ điều hành, dấu thời gian hiển thị khi bạn truy cập công cụ và cookie hoặc số nhận dạng theo dõi có thể tương quan với các lượt truy cập. Nếu bạn tạo UUID, yêu cầu đó sẽ được ghi lại. Nếu sau này bạn sử dụng UUID đó trong hệ thống của mình thì việc so sánh nhật ký với hệ thống của bạn có thể làm rò rỉ thông tin về nội dung bạn đang xây dựng.

Chính sách bảo mật nội dung nghiêm ngặt bổ sung thêm điều gì — không có tập lệnh, phông chữ hoặc thẻ của bên thứ ba nghĩa là không có kênh ẩn nào đối với bên thứ ba

Trình tạo ToolAcre sử dụng Chính sách bảo mật nội dung nghiêm ngặt nhằm ngăn chặn các yêu cầu bên ngoài, tập lệnh của bên thứ ba và phông chữ từ xa. Bạn có thể xác minh điều này trong tiêu đề phản hồi của trình duyệt hoặc bằng cách đọc thẻ meta CSP của trang. Không có phân tích của bên thứ ba, thẻ quảng cáo, pixel theo dõi hoặc tải tài nguyên bên ngoài. Mã tạo UUID được tải từ cùng một nguồn với trang nên nó nằm trong cùng phạm vi kiểm tra với phần còn lại của công cụ. Việc triển khai chỉ sử dụng API Web Crypto và không thực hiện bất kỳ lệnh gọi mạng nào. Chính sách này có thể kiểm chứng được chứ không chỉ được xác nhận.

Ví dụ đã hoạt động - kiểm tra từng bước trình tạo ToolAcre trong DevTools và bảng điều khiển trống làm được gì và không chứng minh được điều gì

Việc xác minh rất đơn giản và chỉ mất chưa đầy một phút. Mở Công cụ dành cho nhà phát triển của trình duyệt, chuyển sang bảng Mạng, xóa mọi yêu cầu hiện có, tạo UUID và xem bảng này. Sẽ không có yêu cầu mới nào xuất hiện ngoại trừ nội dung có thể tĩnh nếu ban đầu trang chưa được tải đầy đủ. UUID được tạo sẽ xuất hiện ở vùng đầu ra trên trang chứ không phải trong phản hồi của mạng. Nếu bạn thấy các yêu cầu tới miền bên ngoài, mạng quảng cáo hoặc dịch vụ phân tích thì trình tạo không phải là cục bộ. Nếu bạn không thấy yêu cầu nào cả thì quá trình tạo đã diễn ra trong JavaScript được thực thi cục bộ trong trình duyệt của bạn.

Điều này không bao gồm những gì - phép đo từ xa của ứng dụng của bạn, nằm ngoài tầm kiểm soát của bất kỳ công cụ nào

Một ví dụ hoạt động minh họa quy trình xác minh trong trình duyệt hiện đại. Nhấn F12 hoặc nhấp chuột phải và chọn "Kiểm tra" để mở DevTools. Nhấp vào tab Mạng. Tải lại trang trình tạo ToolAcre và đợi cho đến khi tải xong; bạn sẽ thấy các yêu cầu đối với chính trang HTML, biểu định kiểu CSS, mã JavaScript và mọi hình ảnh được nhúng. Khi trang đã ổn định, hãy tìm nút "Xóa" trong bảng Mạng và nhấp vào nút đó để làm trống danh sách yêu cầu. Bây giờ hãy tạo UUID bằng cách nhấp vào nút hoặc nhấn Enter. Nếu việc triển khai là cục bộ thì không có yêu cầu mới nào xuất hiện trong bảng điều khiển. Nếu là phía máy chủ, bạn sẽ thấy yêu cầu tới điểm cuối như /api/generate-uuid hoặc https://uuid.example.com/v1/random.

Bài học rút ra: cục bộ có thể xác minh được — trình tạo ToolAcre chạy hoàn toàn trong trình duyệt, không lưu trữ gì giữa các lần truy cập và có thể được kiểm tra trong bảng điều khiển mạng

Công cụ ToolAcre được xây dựng để vượt qua bài kiểm tra này bằng thiết kế kiến ​​trúc. Web Crypto API cung cấp crypto.randomUUID cho chính xác trường hợp sử dụng này và nếu điều đó không có sẵn trên các trình duyệt cũ hơn hoặc bối cảnh không an toàn thì crypto.getRandomValues sẽ cung cấp các byte ngẫu nhiên thô mà công cụ có thể định dạng thành UUID. Quá trình triển khai đủ ngắn để kiểm tra: trình tạo gọi một trong các phương thức Web Crypto này, định dạng kết quả dưới dạng chuỗi UUID và hiển thị nó. Không có máy chủ nào tham gia vào bất kỳ bước nào. Kiến trúc này cũng có nghĩa là công cụ này hoạt động ngoại tuyến; khi trang đã tải xong, bạn có thể ngắt kết nối mạng của mình và tiếp tục tạo UUID. Mật mã cục bộ của trình duyệt vẫn hoạt động hoàn hảo mà không cần truy cập mạng.