Chuyển đến nội dung chính

Tài liệu

SHA-256 và dấu thời gian tin cậy: cách chứng minh file chưa bị thay đổi

Cách kiểm tra checksum SHA-256 của file trên Windows, macOS, Linux, xác minh dấu thời gian RFC 3161 và giá trị chứng cứ theo Luật Giao dịch điện tử.

Đăng ngày · 13 phút đọc

Trong trang này

Giá trị băm SHA-256 (hash, còn gọi là checksum SHA-256) xác định chính xác các byte của một tệp, còn dấu thời gian tin cậy chứng minh giá trị băm đó đã tồn tại vào một thời điểm nhất định. Kết hợp cả hai, bạn có thể cho thấy tệp chưa bị thay đổi kể từ thời điểm đó. Cả hai đều không chứng minh nội dung có đúng hay không, tệp có phải bản xác thực hay không, cũng như ai đã tạo ra tệp.

Hướng dẫn này dành cho các bộ phận tài chính, kế toán, giải quyết bồi thường, pháp chế và tuân thủ đang lưu tệp làm bằng chứng. Bạn sẽ biết cách kiểm tra checksum SHA-256 bằng công cụ có sẵn trên máy, cách xác minh dấu thời gian tin cậy theo RFC 3161, quy định của Luật Giao dịch điện tử số 20/2023/QH15 về thông điệp dữ liệu và dịch vụ cấp dấu thời gian, và cách dùng cả hai trong quy trình xét duyệt hồ sơ. Nội dung không phải là tư vấn pháp lý.

Giá trị băm SHA-256 chứng minh được gì và không chứng minh được gì

Giá trị băm SHA-256 là “dấu vân tay” 256 bit của một tệp, được viết bằng 64 ký tự thập lục phân (hexadecimal) và tính từ mọi byte nội dung của tệp theo thuật toán trong NIST FIPS 180-4. Khác với các checksum đơn giản như CRC-32, vốn chỉ phát hiện lỗi dữ liệu ngẫu nhiên, hàm băm mật mã được thiết kế sao cho trên thực tế không ai có thể tạo ra một tệp khác có cùng giá trị.

Giá trị băm chỉ nói về các byte, không nói về hình thức bên ngoài: hai tệp có giá trị băm khác nhau là hai tệp khác nhau, kể cả khi trông giống hệt nhau trên màn hình.

Thao tácGiá trị băm có đổi không?
Đổi tên, di chuyển hoặc sao chép tệpKhông
Đổi “ngày sửa đổi” (Date modified) trong trình quản lý tệpKhông, vì ngày này không thuộc nội dung tệp
Lưu lại tệp mà không có chỉnh sửa nhìn thấy đượcThường là có, vì ứng dụng ghi lại metadata (siêu dữ liệu) và cấu trúc bên trong
Sửa metadata, xuất hoặc chuyển đổi định dạngCó
Chụp ảnh màn hình, hoặc gửi ảnh qua ứng dụng nhắn tin có nén lại ảnhCó, vì kết quả là một tệp khác
Giá trị SHA-256 d5d601b2… của tệp minh họa giữ nguyên khi đổi tên, di chuyển, sao chép; đổi khi lưu lại, sửa metadata, chụp màn hình hoặc nhắn tin.

Giá trị băm đi theo các byte: thao tác không chạm vào byte thì giữ nguyên giá trị, còn bất kỳ thay đổi nào ở byte đều cho ra một giá trị hoàn toàn khác.

Như hình minh họa cho thấy, giá trị băm khác nhau nghĩa là các byte khác nhau, chứ chưa chắc là số tiền bị sửa hay gian lận. Giá trị băm trùng khớp nghĩa là các byte giống nhau, không có nghĩa nội dung là thật: ai cũng có thể băm một hóa đơn giả và giá trị băm của nó vẫn hoàn toàn ổn định. Người có quyền sửa tệp cũng có thể tính lại giá trị băm, nên giá trị băm chỉ là bằng chứng khi được ghi ở nơi mà bên giữ tệp không thể âm thầm viết lại.

SHA-256 được thiết kế để việc tìm ra hai đầu vào khác nhau có cùng giá trị băm là bất khả thi về mặt tính toán; NIST đánh giá khả năng chống va chạm (collision resistance) của SHA-256 ở mức khoảng 128 bit, còn của SHA-1 dưới 80 bit (trang các hàm băm của NIST, tiếng Anh). NIST đặt mốc loại bỏ dần SHA-1 trước ngày 31 tháng 12 năm 2030 (thông báo của NIST, tiếng Anh), và MD5 không còn chấp nhận được ở những nơi cần khả năng chống va chạm (RFC 6151). Nếu dùng làm bằng chứng, hãy chọn SHA-256 hoặc thuật toán mạnh hơn.

Cách kiểm tra checksum SHA-256 của file trên Windows, macOS và Linux

Để kiểm tra checksum SHA-256, hãy tính giá trị băm của tệp ngay trên máy của bạn rồi so sánh toàn bộ kết quả với giá trị mong đợi.

Hệ điều hànhLệnh
Windows (PowerShell)Get-FileHash .\hoa-don.pdf -Algorithm SHA256 (Microsoft, tiếng Anh)
Windows (Command Prompt)certutil -hashfile hoa-don.pdf SHA256 (Microsoft, tiếng Anh)
macOS (Terminal)shasum -a 256 hoa-don.pdf
Linux (shell)sha256sum hoa-don.pdf (trang man, tiếng Anh)
Mọi hệ thống có OpenSSLopenssl dgst -sha256 hoa-don.pdf

Nếu tên tệp có dấu cách hoặc chữ có dấu, hãy đặt đường dẫn trong dấu nháy kép, chẳng hạn Get-FileHash ".\Hóa đơn 2207.pdf" -Algorithm SHA256. Khi so sánh kết quả:

  1. Băm chính tệp cần kiểm tra, không băm một bản sao đã được mở và lưu lại trong ứng dụng.
  2. So sánh từng ký tự với giá trị mong đợi. Hệ thập lục phân không phân biệt chữ hoa và chữ thường: PowerShell in chữ hoa còn sha256sum in chữ thường, và cả hai là cùng một giá trị.
  3. Coi mọi kết quả không khớp hoàn toàn là một tệp khác. Chỉ kiểm tra ký tự đầu và cuối là chưa đủ.

Để kiểm chứng công cụ của bạn chạy đúng, hãy băm một tệp chứa đúng ba ký tự abc (printf abc > test.txt trên macOS và Linux, Set-Content -Path test.txt -Value abc -NoNewline trong PowerShell). Kết quả phải là ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. Nếu trình soạn thảo văn bản tự thêm ký tự xuống dòng ở cuối, kết quả thành edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb: một byte vô hình làm đổi giá trị băm.

Để đối chiếu với một tệp danh sách checksum đã công bố, chẳng hạn SHA256SUMS, hãy chạy sha256sum -c SHA256SUMS trên Linux hoặc shasum -a 256 -c SHA256SUMS trên macOS; mỗi tệp trong danh sách được báo là OK hoặc FAILED. Trong PowerShell, (Get-FileHash .\hoa-don.pdf).Hash -eq 'GIA_TRI_MONG_DOI' trả về True hoặc False mà không phân biệt chữ hoa, chữ thường.

Nguồn của giá trị mong đợi rất quan trọng. Checksum công bố cạnh một tệp chỉ bảo vệ bạn khỏi bản tải xuống bị hỏng, không bảo vệ khỏi người có thể sửa cả hai. Nếu dùng làm bằng chứng, hãy lấy giá trị từ một bản ghi độc lập như nhật ký tiếp nhận của bạn hoặc một dấu thời gian tin cậy.

Hãy thận trọng với các trang kiểm tra giá trị băm trực tuyến. Nhiều trang yêu cầu bạn tải tệp lên, nghĩa là bên thứ ba nhận được toàn bộ nội dung tệp, và bạn khó biết trang đó băm ngay trong trình duyệt hay trên máy chủ của họ. Với tài liệu mật như hồ sơ bồi thường, hợp đồng hay giấy tờ tùy thân, hãy dùng các lệnh cục bộ ở trên.

Dấu thời gian tin cậy bổ sung điều gì: quy trình RFC 3161

Dấu thời gian tin cậy là một tuyên bố có chữ ký của tổ chức cấp dấu thời gian (TSA, Time-Stamping Authority) độc lập, xác nhận rằng một giá trị băm cụ thể đã tồn tại vào một thời điểm cụ thể, theo định nghĩa trong RFC 3161. Ngày tháng của tệp và metadata không phải dấu thời gian tin cậy: “ngày sửa đổi”, ngày tạo của một tệp PDF hay ngày chụp của một bức ảnh do phần mềm trên một thiết bị mà bạn có thể không kiểm soát ghi ra, và có thể bị chỉnh sửa. Dấu thời gian tin cậy đến từ một bên thứ ba có đồng hồ và khóa ký tách biệt với của bạn.

Quy trình gồm bốn bước:

  1. Bạn tính giá trị băm SHA-256 của tệp.
  2. Bạn gửi giá trị băm, không phải tệp, đến TSA trong một yêu cầu dấu thời gian, thường kèm một số ngẫu nhiên dùng một lần (nonce) để phát hiện việc phát lại.
  3. TSA ký một token gắn giá trị băm của bạn với thời điểm TSA tạo token, theo giờ UTC, kèm số sê-ri và chính sách của TSA.
  4. TSA trả token về và bạn lưu nó cạnh tệp.
Luồng RFC 3161: chỉ giá trị băm SHA-256 đến TSA, nhận lại token có chữ ký; kiểm tra sau cho thấy các byte đã tồn tại không muộn hơn thời điểm T.

Token xác lập rằng các byte này đã tồn tại không muộn hơn một thời điểm; nó không cho biết nội dung có đúng hay không.

Như hình minh họa cho thấy, TSA không bao giờ nhìn thấy tệp, nên dấu thời gian dùng được cho tài liệu mật. Để xác minh, hãy tính lại giá trị băm của tệp, xác nhận nó khớp với giá trị băm bên trong token, kiểm tra chữ ký của TSA và xác nhận chuỗi chứng thư (certificate chain) của TSA dẫn tới một chứng thư gốc mà bạn tin cậy và được cấp cho mục đích đóng dấu thời gian. OpenSSL làm được tất cả (tài liệu OpenSSL, tiếng Anh):

Việc cần làmLệnh
Tạo yêu cầuopenssl ts -query -data hoa-don.pdf -sha256 -cert -out hoa-don.tsq
Đọc phản hồiopenssl ts -reply -in hoa-don.tsr -text
Xác minh tệp với phản hồiopenssl ts -verify -data hoa-don.pdf -in hoa-don.tsr -CAfile chain.pem

Yêu cầu được gửi đến điểm cuối (endpoint) của TSA bằng HTTP POST với kiểu nội dung application/timestamp-query. Đầu ra của -text hiển thị giá trị băm, số sê-ri và thời gian theo GMT. Khi xác minh thành công, lệnh in Verification: OK; nếu tệp khác với tệp đã được đóng dấu, lệnh in Verification: FAILED kèm lỗi “message imprint mismatch”. Tệp chain.pem chứa chứng thư gốc của TSA, -untrusted cung cấp các chứng thư trung gian còn thiếu, và -token_in xác minh riêng một token thay cho một phản hồi đầy đủ.

Chứng thư của TSA có thời hạn sử dụng và khóa có thể bị lộ. Một token vẫn có thể có giá trị sau khi chứng thư hết hạn, miễn là chứng thư còn hiệu lực lúc token được cấp và khóa chưa bị lộ, nhưng một lần kiểm tra thông thường nhiều năm sau có thể thất bại; -attime kiểm tra chuỗi chứng thư tại thời điểm của token. Hồ sơ lưu nhiều năm nên lưu cả thông tin thu hồi chứng thư và đóng dấu thời gian lại bằng dấu thời gian lưu trữ (archive timestamp) hoặc bản ghi chứng cứ (evidence record) (RFC 4998).

Tệp PDF cũng có thể mang token ngay bên trong dưới dạng dấu thời gian tài liệu, được quy định trong đặc tả PAdES của ETSI EN 319 142-1. Dấu thời gian này áp dụng cho mọi byte của PDF cho đến lúc nó được thêm vào; các chỉnh sửa sau đó không nằm trong phạm vi của nó. Acrobat liệt kê dấu thời gian tài liệu cùng các chữ ký trong ngăn Chữ ký (Signatures); mở phần thuộc tính (properties) để đọc thời gian, đơn vị cấp và trạng thái kiểm tra hợp lệ.

Giá trị băm và dấu thời gian có giá trị pháp lý thế nào tại Việt Nam

Giá trị băm và dấu thời gian có thể được dùng làm chứng cứ, nhưng mức độ thuyết phục còn phụ thuộc vào loại vụ việc, cơ quan giải quyết và các tình tiết cụ thể. Phần này là thông tin chung tính đến ngày 4 tháng 11 năm 2026, dựa trên các văn bản được liên kết bên dưới, không phải tư vấn pháp lý; hãy trao đổi với luật sư trước khi dựa vào nội dung này trong một tranh chấp.

Luật Giao dịch điện tử 2023: tệp của bạn là thông điệp dữ liệu

Luật Giao dịch điện tử số 20/2023/QH15 có hiệu lực từ ngày 1 tháng 7 năm 2024 và đã được các luật ban hành sau đó sửa đổi, bổ sung; các điều nêu dưới đây được đối chiếu với văn bản hợp nhất 154/VBHN-VPQH năm 2026 của Văn phòng Quốc hội. Theo khoản 4 Điều 3, thông điệp dữ liệu là thông tin được tạo ra, được gửi, được nhận, được lưu trữ bằng phương tiện điện tử, nên một tệp PDF hay bức ảnh bạn nhận qua email là một thông điệp dữ liệu.

  • Điều 8: thông tin trong thông điệp dữ liệu không bị phủ nhận giá trị pháp lý chỉ vì được thể hiện dưới dạng thông điệp dữ liệu.
  • Điều 10: thông điệp dữ liệu có giá trị như bản gốc khi thông tin được bảo đảm toàn vẹn kể từ lúc được khởi tạo lần đầu dưới dạng một thông điệp dữ liệu hoàn chỉnh, tức là chưa bị thay đổi, trừ những thay đổi về hình thức phát sinh trong quá trình gửi, lưu trữ hoặc hiển thị, và có thể truy cập, sử dụng được dưới dạng hoàn chỉnh.
  • Khoản 1 Điều 11: thông điệp dữ liệu được dùng làm chứng cứ theo quy định của Luật này và pháp luật về tố tụng.
  • Khoản 2 Điều 11: giá trị dùng làm chứng cứ được xác định căn cứ vào độ tin cậy của cách thức khởi tạo, gửi, nhận hoặc lưu trữ thông điệp dữ liệu; cách thức bảo đảm và duy trì tính toàn vẹn của thông điệp dữ liệu; cách thức xác định người khởi tạo, gửi, nhận thông điệp dữ liệu và các yếu tố phù hợp khác.

Điều 11 không nhắc đến giá trị băm hay dấu thời gian. Tuy vậy, giá trị băm ghi lại ngay khi tiếp nhận và dấu thời gian của một bên thứ ba có thể giúp bạn chứng minh rằng mình đã bảo đảm và duy trì tính toàn vẹn của tệp bằng một quy trình có thể kiểm chứng, đúng loại yếu tố mà khoản 2 yêu cầu xét đến. Đây là cách diễn giải từ văn bản luật, không phải một quy định cụ thể.

Dịch vụ cấp dấu thời gian là dịch vụ tin cậy phải có giấy phép

Điều 28 liệt kê dịch vụ cấp dấu thời gian là một trong ba dịch vụ tin cậy (cùng với dịch vụ chứng thực thông điệp dữ liệu và dịch vụ chứng thực chữ ký số công cộng). Dịch vụ tin cậy là ngành, nghề đầu tư kinh doanh có điều kiện và tổ chức cung cấp phải có giấy phép kinh doanh dịch vụ tin cậy. Khoản 1 Điều 29 đặt ra các điều kiện kinh doanh, trong đó có yêu cầu tổ chức phải là doanh nghiệp được thành lập và hoạt động hợp pháp trên lãnh thổ Việt Nam.

Điều 31 mô tả dịch vụ này theo bốn ý:

  • Dịch vụ cấp dấu thời gian là dịch vụ gắn thông tin về thời gian vào thông điệp dữ liệu.
  • Dấu thời gian được tạo ra dưới dạng chữ ký số.
  • Thời gian được gắn vào thông điệp dữ liệu là thời gian tổ chức cung cấp dịch vụ nhận được thông điệp dữ liệu đó và được chứng thực bởi chính tổ chức này.
  • Nguồn thời gian của tổ chức cung cấp phải theo quy định của pháp luật về nguồn thời gian chuẩn quốc gia.

Nghị định 23/2025/NĐ-CP quy định về chữ ký điện tử và dịch vụ tin cậy; nghị định được ban hành ngày 21 tháng 2 năm 2025 và có hiệu lực từ ngày 10 tháng 4 năm 2025.

Dấu thời gian RFC 3161 do tổ chức nước ngoài cấp

Các Điều 28, 29 và 31 mô tả dịch vụ cấp dấu thời gian là dịch vụ tin cậy do doanh nghiệp được cấp phép tại Việt Nam cung cấp. Về yếu tố nước ngoài, Điều 26 và Điều 27 của Luật chỉ nói đến chữ ký điện tử nước ngoài, chứng thư chữ ký điện tử nước ngoài và tổ chức cung cấp dịch vụ chứng thực chữ ký điện tử nước ngoài; riêng Điều 27 để tổ chức, cá nhân tự lựa chọn và tự chịu trách nhiệm về việc chấp nhận chúng trong giao dịch quốc tế. Luật không có quy định riêng về dấu thời gian do tổ chức nước ngoài cấp. Vì vậy, đừng mô tả một dấu thời gian RFC 3161 do tổ chức ở nước ngoài cấp là “được pháp luật Việt Nam công nhận”, hay là dịch vụ cấp dấu thời gian theo Điều 31.

Cách đọc thận trọng, vốn là suy luận từ văn bản chứ không phải một quy định của luật, là coi dấu thời gian đó như một chứng cứ kỹ thuật bạn có thể đưa ra để chứng minh độ tin cậy theo Điều 11, và để cơ quan giải quyết đánh giá cùng các chứng cứ khác. Nếu hồ sơ có thể trở thành tranh chấp, hãy hỏi luật sư, kiểm tra cả các nghị định hướng dẫn như Nghị định 23/2025/NĐ-CP và cân nhắc dùng thêm dịch vụ của một tổ chức có giấy phép kinh doanh dịch vụ tin cậy tại Việt Nam.

Bộ luật Tố tụng dân sự: dữ liệu điện tử là một nguồn chứng cứ

Theo Bộ luật Tố tụng dân sự số 92/2015/QH13 (văn bản hợp nhất năm 2025), chứng cứ được thu thập từ nhiều nguồn, trong đó có tài liệu đọc được, nghe được, nhìn được và dữ liệu điện tử (khoản 1 Điều 94). Khoản 3 Điều 95 nêu các hình thức thể hiện của thông điệp dữ liệu điện tử, như chứng từ điện tử, thư điện tử và fax, theo quy định của pháp luật về giao dịch điện tử. Khoản 2 Điều 108 yêu cầu Tòa án đánh giá từng chứng cứ, sự liên quan giữa các chứng cứ và khẳng định tính hợp pháp, tính liên quan, giá trị chứng minh của từng chứng cứ. Các điều này không đặt ra một tiêu chuẩn riêng cho giá trị băm hay dấu thời gian; tiêu chí về độ tin cậy nằm ở Điều 11 Luật Giao dịch điện tử. Một giá trị băm hay dấu thời gian là một cách để chứng minh, không phải chứng cứ tự động được chấp nhận. Tố tụng hình sự và tố tụng hành chính có bộ luật riêng, không được xem xét ở đây.

So với EU: dấu thời gian điện tử đủ điều kiện theo eIDAS

Nếu đối tác hoặc hợp đồng của bạn thuộc luật EU, Quy định (EU) số 910/2014 (eIDAS) phân biệt dấu thời gian điện tử thông thường với dấu thời gian điện tử đủ điều kiện (qualified). Theo Điều 41 (văn bản hợp nhất trên EUR-Lex, tiếng Anh), dấu thời gian điện tử không bị từ chối hiệu lực pháp lý và khả năng được chấp nhận làm chứng cứ chỉ vì ở dạng điện tử hoặc vì không đáp ứng yêu cầu của dấu thời gian đủ điều kiện, còn dấu thời gian đủ điều kiện được hưởng giả định về tính chính xác của ngày giờ và tính toàn vẹn của dữ liệu gắn với ngày giờ đó. Trạng thái đủ điều kiện của một nhà cung cấp có thể tra cứu trong eIDAS Dashboard. Cơ chế này của EU không tự động áp dụng cho tranh chấp theo pháp luật Việt Nam.

Dùng giá trị băm và dấu thời gian trong quy trình xét duyệt hồ sơ

Giá trị băm và dấu thời gian chỉ có ích khi được ghi lại đúng thời điểm và được lưu tách khỏi tệp:

  1. Băm ngay khi tiếp nhận, trước khi bất kỳ ai mở, đổi tên, chú thích hay lưu lại tệp. Hãy làm việc trên bản sao.
  2. Ghi giá trị băm vào hồ sơ vụ việc cùng với tên tệp, nguồn, kênh nhận, thời điểm nhận và người nhận. Với hóa đơn điện tử, hãy lưu cả tệp dữ liệu hóa đơn nếu nhà cung cấp gửi kèm, không chỉ tệp PDF.
  3. Lưu bản gốc ở chế độ chỉ đọc, ở nơi mọi thay đổi đều được ghi nhật ký.
  4. Đóng dấu thời gian cho một bảng kê (manifest), tức một tệp văn bản liệt kê từng tên tệp cùng giá trị băm, để một token xác định thời điểm cho mọi tệp trong danh sách.
  5. So sánh khi nhận lại tệp. Giá trị băm khác nghĩa là một phiên bản mới cần xét duyệt lại từ đầu, bất kể tên tệp ghi gì.
  6. Giữ một bộ hồ sơ xác minh gồm tệp, bản ghi giá trị băm, token, chuỗi chứng thư và các lệnh, để người khác có thể lặp lại phép kiểm tra nhiều năm sau.

Giá trị băm cho bạn biết một tệp có phải là tệp bạn đã ghi hay không. Hướng dẫn kiểm tra file PDF có bị chỉnh sửa không giải thích cách xem bên trong tệp đã thay đổi gì, còn hướng dẫn kiểm tra hóa đơn trước khi thanh toán chỉ cách đối chiếu hóa đơn với hồ sơ mua hàng và thanh toán. Siêu dữ liệu nguồn gốc có chữ ký, được trình bày trong hướng dẫn về C2PA, watermark AI và công cụ phát hiện ảnh, là một cơ chế khác: nó ghi lại cách một nội dung được tạo ra, còn giá trị băm và dấu thời gian chỉ cố định các byte theo thời gian.

Với hóa đơn điện tử, cần phân biệt hai lớp bảo đảm khác nhau. Theo Nghị định 254/2026/NĐ-CP, có hiệu lực từ ngày 1 tháng 7 năm 2026, hóa đơn điện tử phải theo định dạng chuẩn dữ liệu và có chữ ký của người bán cùng thời điểm ký số; hóa đơn điện tử có mã thì có thêm mã của cơ quan thuế. Dữ liệu hóa đơn cũng là cơ sở dữ liệu phục vụ quản lý thuế và cung cấp thông tin hóa đơn cho các tổ chức, cá nhân có liên quan. Chữ ký của người bán và giá trị băm bạn ghi khi tiếp nhận trả lời hai câu hỏi khác nhau: chữ ký cho biết người bán đã ký nội dung nào, còn giá trị băm của bạn cho biết bạn đã nhận tệp nào.

Báo cáo Fileverity dùng SHA-256 và RFC 3161 như thế nào

Mỗi báo cáo Fileverity ghi lại giá trị băm SHA-256 của tệp đã được kiểm tra, để người xem xét sau này xác nhận các phát hiện thuộc về tệp nào. Khi cấp báo cáo, dữ liệu báo cáo, trong đó có giá trị băm này, được đóng dấu thời gian qua dịch vụ cấp dấu thời gian RFC 3161 của DigiCert. Trang Tin cậy và bảo mật mô tả cách báo cáo được niêm phong và xác minh. Báo cáo PDF còn mang dấu thời gian tài liệu PAdES có chuỗi chứng thư dẫn tới một chứng thư gốc trong Adobe Approved Trust List.

Dấu thời gian hoặc dấu niêm phong PDF chỉ được ghi nhận khi việc kiểm tra hợp lệ thành công. Nếu dịch vụ hoặc dữ liệu cần cho việc kiểm tra không khả dụng, báo cáo vẫn được giao, kèm ghi chú nêu rõ bằng chứng đó không có. Fileverity mô tả đây là dấu thời gian tin cậy theo RFC 3161, không phải dấu thời gian điện tử đủ điều kiện theo eIDAS, và không tuyên bố đây là dịch vụ cấp dấu thời gian được cấp phép theo Điều 31 Luật Giao dịch điện tử của Việt Nam. Trang xác minh hiển thị các kết quả được ghi nhận khi cấp báo cáo và cho phép đối chiếu một bức ảnh hoặc tệp dữ liệu của báo cáo ngay trên thiết bị của bạn.

Dấu thời gian xác lập rằng dữ liệu đã tồn tại vào một thời điểm, chứ không xác lập rằng các sự kiện trong tài liệu hay các phát hiện là đúng. Fileverity không giữ bản gốc của bạn làm kho lưu trữ dài hạn, vì vậy hãy giữ bản sao của riêng bạn; giá trị băm được ghi lại cho phép bạn chứng minh sau này đó là tệp đã được kiểm tra. Phân tích tài liệu bao quát những gì giá trị băm không thể cho biết: văn bản, cấu trúc tệp, các phiên bản đã lưu có thể khôi phục và việc kiểm tra hợp lệ chữ ký PDF được hỗ trợ.

Ví dụ minh họa: hai tệp PDF cho một hóa đơn đang tranh chấp

Ví dụ này là hư cấu và các giá trị băm được rút gọn. Ngày 3 tháng 3, một kế toán viên phụ trách công nợ phải trả nhận được hóa đơn số 2207 dưới dạng tệp PDF đính kèm email từ một nhà cung cấp. Trước khi mở tệp, kế toán viên lưu nguyên bản và tính giá trị băm SHA-256, bắt đầu bằng 9f3c1a. Kế toán viên ghi lại giá trị băm, người gửi, mã định danh thư (Message-ID) và thời điểm nhận, rồi viết một bảng kê một dòng, đóng dấu thời gian cho bảng kê và lưu token. Hóa đơn ghi 148.500.000 ₫ và được duyệt chi.

Sáu tuần sau, nhà cung cấp nói hóa đơn là 184.500.000 ₫ và gửi “cùng tệp PDF đó”. Giá trị băm của tệp này bắt đầu bằng 41d7b2. Kế toán viên xử lý như sau:

  1. Giá trị băm khác nhau nghĩa là hai tệp có byte khác nhau. Điều đó không cho biết khác ở đâu hay ai đã thay đổi.
  2. Kế toán viên chạy openssl ts -verify -data intake-manifest.txt -in intake.tsr -CAfile chain.pem, rồi tìm trong bảng kê giá trị băm của bản gốc đã lưu. Thời điểm trên token là ngày 3 tháng 3.
  3. Kế toán viên so sánh hai tệp PDF như trong hướng dẫn kiểm tra file PDF có bị chỉnh sửa không, và đề nghị nhà cung cấp, qua đầu mối liên hệ đã đăng ký khi thiết lập nhà cung cấp, gửi tệp hóa đơn điện tử gốc từ hệ thống lập hóa đơn của họ.

Hồ sơ chỉ hỗ trợ một kết luận hẹp. Bản của bên mua đã tồn tại, không thay đổi, vào ngày 3 tháng 3, và tệp PDF của nhà cung cấp là một tệp khác. Chưa xác lập được ai đã sửa tệp nào, và chính hồ sơ email, chứ không phải dấu thời gian, cho thấy nhà cung cấp đã gửi gì. Số tiền phải trả được xác định từ đơn đặt hàng, chứng từ nhận hàng và hợp đồng, như trong hướng dẫn kiểm tra hóa đơn trước khi thanh toán. Một dấu thời gian lấy sau khi tranh chấp phát sinh sẽ không chứng minh được gì về ngày 3 tháng 3: token chỉ xác định thời điểm nó được cấp.

Câu hỏi thường gặp

SHA-256 còn an toàn không?

Còn, khi dùng để kiểm tra tính toàn vẹn và làm bằng chứng. Chính sách của NIST cho phép các cơ quan liên bang dùng SHA-2, gồm SHA-256, cho mọi ứng dụng sử dụng thuật toán băm an toàn (chính sách của NIST, tiếng Anh). MD5 và SHA-1 là các hàm cần tránh. Với hồ sơ lưu nhiều năm, hãy lên kế hoạch đóng dấu thời gian lại khi thuật toán và chứng thư cũ dần lỗi thời.

Hai tệp khác nhau có thể có cùng giá trị băm SHA-256 không?

Về mặt toán học thì có, vì số tệp có thể có nhiều hơn rất nhiều so với số giá trị 256 bit. SHA-256 được thiết kế để việc tìm ra một cặp như vậy là bất khả thi về mặt tính toán, và mức chống va chạm ước tính khoảng 128 bit phản ánh điều đó. Vì thế, giá trị băm trùng khớp là bằng chứng thực tiễn mạnh cho thấy các byte giống hệt nhau, chứ không phải một chứng minh toán học.

Dấu thời gian tin cậy có chứng minh ai là người tạo ra tệp không?

Không. Dấu thời gian chỉ gắn một giá trị băm với một thời điểm, ngoài ra không có gì khác. Nó không xác định người tạo ra tệp, không cho thấy nội dung là đúng, và không cho biết tệp có được tạo ra ngay trước lúc đóng dấu hay không. Việc xác định ai tạo ra tệp cần các bằng chứng khác, chẳng hạn chữ ký số hoặc hồ sơ của chính người gửi.

Giá trị băm SHA-256 có phải là chữ ký số không?

Không. Giá trị băm không gắn với một người ký nào. Theo khoản 3 Điều 22 Luật Giao dịch điện tử, chữ ký số xác nhận chủ thể ký và khẳng định sự chấp thuận của họ đối với thông điệp dữ liệu, cho phép phát hiện mọi thay đổi sau thời điểm ký và phải được chứng thư chữ ký số bảo đảm. Dấu thời gian được tạo ra dưới dạng chữ ký số (khoản 2 Điều 31), nhưng chữ ký đó là của tổ chức cấp dấu thời gian, không phải của người tạo ra tệp.

Dấu thời gian RFC 3161 có được pháp luật Việt Nam công nhận không?

Điều 27 của Luật Giao dịch điện tử chỉ nói đến chữ ký điện tử và chứng thư chữ ký điện tử nước ngoài, còn Điều 31 mô tả dịch vụ cấp dấu thời gian của một tổ chức có giấy phép. Vì vậy đừng khẳng định rằng một dấu thời gian RFC 3161 do tổ chức nước ngoài cấp được pháp luật Việt Nam công nhận. Bạn có thể trình nó như một chứng cứ kỹ thuật về tính toàn vẹn theo Điều 11, và để cơ quan giải quyết đánh giá cùng các chứng cứ khác; với hồ sơ có thể thành tranh chấp, hãy hỏi luật sư.

Đổi tên hoặc sao chép tệp có làm thay đổi giá trị băm không?

Không. Giá trị băm chỉ được tính từ nội dung, nên đổi tên, di chuyển hay sao chép đều cho cùng một giá trị. Lưu lại tệp trong một ứng dụng thường làm giá trị đổi, kể cả khi nhìn không thấy gì khác.

Dùng trang kiểm tra SHA-256 trực tuyến có an toàn không?

Chỉ với những tệp mà bạn có thể công bố. Nhiều trang kiểm tra trực tuyến tải tệp lên, nên bên vận hành nhận được toàn bộ nội dung. Với tệp mật, hãy dùng Get-FileHash, certutil, shasum hoặc sha256sum trên chính máy của bạn; kết quả như nhau và không có gì rời khỏi thiết bị.

Tác giả Yang Zheng · Người kiểm duyệt Bill Liu

Hướng dẫn liên quan

Tất cả hướng dẫn

Kiểm tra những tài liệu đứng sau mọi quyết định.

Xem xét tài liệu được nộp trước khi duyệt hồ sơ bồi thường, thanh toán hóa đơn hoặc dựa vào một bản tường trình bằng văn bản. Kiểm tra lịch sử tệp, chữ ký, các trường trên bản quét và văn bản do AI viết (hỗ trợ tiếng Anh, Pháp, Đức, Tây Ban Nha và Trung), với bằng chứng mà đội ngũ của bạn có thể truy ngược về nguồn.