Asset

Nhận dạng duy nhất một thành phần.

Thành phần kỹ thuật số là một thực thể trực tuyến có thể xác định và truy cập được, thường cung cấp một số dịch vụ hoặc nội dung. Ví dụ về tài sản: trang web, ứng dụng Android, nguồn cấp dữ liệu Twitter và Trang doanh nghiệp.

Biểu diễn dưới dạng JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
Tên trường Loại Mô tả
Trường liên kết, chỉ một trong các trường sau:
web object(WebAsset) Đặt nếu đây là nội dung web.
androidApp object(AndroidAppAsset) Đặt nếu đây là thành phần Ứng dụng Android.

Tài sản web

Mô tả một tài sản web.

Biểu diễn dưới dạng JSON
{
  "site": string,
}
Tên trường Loại Mô tả
site string

Tài sản web được xác định bằng một URL chỉ chứa lược đồ, tên máy chủ và các phần cổng. Định dạng là

http[s]://<hostname>[:<port>]

Tên máy chủ phải đủ điều kiện: chúng phải kết thúc bằng một dấu chấm (".").

Hiện chỉ cho phép các giao thức "http" và "https".

Số cổng được cung cấp dưới dạng số thập phân và phải được bỏ qua nếu sử dụng số cổng tiêu chuẩn: 80 cho http và 443 cho https.

Chúng tôi gọi URL bị giới hạn này là "trang web". Tất cả URL có cùng lược đồ, tên máy chủ và cổng đều được coi là một phần của trang web và do đó thuộc về tài sản web.

Ví dụ: thành phần có trang web https://www.google.com chứa tất cả các URL sau:

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

Nhưng không chứa các URL sau:

  • http://www.google.com/ (lược đồ không chính xác)
  • https://google.com/ (tên máy chủ không khớp)
  • https://www.google.com:444/ (cổng không khớp) REQUIRED

Thành phần của ứng dụng Android

Mô tả một thành phần ứng dụng Android.

Biểu diễn dưới dạng JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
Tên trường Loại Mô tả
packageName string Nội dung ứng dụng Android được xác định tự nhiên theo tên gói Java. Ví dụ: ứng dụng Google Maps sử dụng tên gói com.google.android.apps.maps. BẮT BUỘC
certificate object(CertificateInfo)

Do không có quá trình thực thi duy nhất đối với tên gói, nên chúng tôi cũng yêu cầu chứng chỉ ký, cùng với tên gói giúp xác định duy nhất một ứng dụng.

Khoá ký của một số ứng dụng được xoay vòng, do đó, các khoá này có thể được ký bằng các khoá khác nhau theo thời gian. Chúng tôi xem đó là những thành phần riêng biệt, vì chúng tôi sử dụng (tên gói, chứng chỉ) làm mã nhận dạng duy nhất. Điều này thường không gây ra bất kỳ vấn đề nào vì cả hai phiên bản ứng dụng sẽ đưa ra cùng một câu lệnh hoặc các câu lệnh tương tự. Tuy nhiên, các tài sản khác đưa ra câu lệnh về ứng dụng sẽ phải được cập nhật khi xoay vòng khóa.

(Lưu ý rằng cú pháp để xuất bản và truy vấn câu lệnh có chứa cú pháp dễ dàng cho phép bạn chỉ định ứng dụng mà nhiều chứng chỉ biết.) BẮT BUỘC

Thông tin về chứng chỉ

Mô tả chứng chỉ X509.

Biểu diễn dưới dạng JSON
{
  "sha256Fingerprint": string,
}
Tên trường Loại Mô tả
sha256Fingerprint string

Tệp tham chiếu SHA-265 viết hoa của chứng chỉ. Bạn có thể lấy chứng chỉ PEM như sau:

$ keytool -printcert -file $CERTFILE | grep SHA256:
SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
    42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

hoặc như sau:

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
    16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

Trong ví dụ này, nội dung của trường này sẽ là 14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5.

Nếu không dùng được các công cụ này, bạn có thể chuyển đổi chứng chỉ PEM sang định dạng DER, tính toán hàm băm SHA-256 của chuỗi đó và thể hiện kết quả dưới dạng chuỗi thập lục phân (nghĩa là các giá trị thập lục phân viết hoa của từng octet, phân tách bằng dấu hai chấm).