Huy hiệu thực sự ghi lại điều gì
Huy hiệu commit đã xác minh là kết quả của một lần kiểm tra chữ ký, không phải lời giới thiệu nhân cách. Khi bạn thấy “Verified” bên cạnh một commit trên GitHub, nền tảng chỉ cho bạn biết một điều hẹp: nó đã kiểm tra một chữ ký mật mã gắn với commit đó và lần kiểm tra đã thành công.
GitHub đánh dấu một commit đã ký là Verified khi chữ ký của nó được xác minh thành công. Nguồn
Huy hiệu gắn với một commit, không gắn với một con người. Nó cũng không phải chỉ báo bảo mật trực tiếp cho tài khoản bạn đang xem hôm nay. Kết quả xác minh là một bản ghi lịch sử của lần kiểm tra đã diễn ra tại một thời điểm.
Khi quá trình xác minh đã được ghi lại, bản ghi có thể tồn tại ngay cả sau khi khóa ký bị thu hồi hoặc hết hạn. Nguồn
Sự tồn tại lâu dài đó quan trọng với người điều tra. Huy hiệu có thể vẫn hiển thị trên một commit cũ ngay cả sau khi khóa ký tạo ra nó đã bị thu hồi hoặc hết hạn. Khóa bị thu hồi không xóa ngược huy hiệu, và khóa hết hạn không làm commit cũ trở thành chưa xác minh. Vì vậy, huy hiệu cho bạn biết chữ ký đã được kiểm tra thành công khi nó được ghi lại, chứ không phải khóa vẫn đáng tin cậy, tài khoản vẫn an toàn, hay người giữ tài khoản hiện tại chính là người đã ký.
Bước 1: Tách ba câu hỏi
Khi ai đó chỉ vào một commit đã xác minh như bằng chứng cho một tuyên bố về lập trình viên, họ thường đang trộn ba câu hỏi khác nhau. Hãy tách chúng ra trước khi đánh giá bất cứ điều gì.
| Câu hỏi | Huy hiệu đã xác minh có thể cho thấy gì | Điều nó không thể tự chứng minh |
|---|---|---|
| Commit này có được ký và xác minh không? | GitHub đã ghi lại một lần xác minh chữ ký thành công cho commit đó. | Ai đã viết mã, hoặc mã có tốt hay không. |
| Ai đang kiểm soát tài khoản hiện tại? | Không trực tiếp. Huy hiệu gắn với commit, không gắn với quyền đăng nhập hiện tại. | Người đó có còn sở hữu tài khoản không, hoặc tài khoản đã đổi chủ chưa. |
| Người này có đúng là người họ tự nhận, hoặc làm việc ở nơi họ tự nhận không? | Không trực tiếp. | Danh tính, việc làm, hoặc quyền đại diện cho một tổ chức. |
Huy hiệu đã xác minh chỉ trả lời hàng đầu tiên. Hàng thứ hai và thứ ba cần bằng chứng riêng. Đây cũng là nguyên tắc được mô tả trong hướng dẫn của chúng tôi về những gì tìm kiếm hồ sơ công khai có thể và không thể tiết lộ về một người: một dấu vết công khai là manh mối, không phải kết luận.
Bước 2: Đọc commit, không chỉ đọc huy hiệu
Huy hiệu là một lối tắt, và lối tắt che giấu bối cảnh. Hãy mở chính commit đó và xem những gì xung quanh kết quả xác minh.
- Trường tác giả commit và trường người commit. Đây là các mục siêu dữ liệu, không phải bằng chứng về ai đã gõ mã. Chúng có thể được đặt thành bất kỳ giá trị nào trong nhiều quy trình làm việc.
- Khóa ký được hiển thị. GitHub liên kết kết quả xác minh với một khóa. Hãy ghi chú xem khóa được trình bày là thuộc về một tài khoản, một tổ chức, hay một bot.
- Kho lưu trữ và nhánh. Một commit đã xác minh trong bản fork cá nhân có trọng lượng tổ chức thấp hơn một commit được hợp nhất vào dự án đang được duy trì, nhưng cả hai đều không chứng minh việc làm.
- Ngày tháng. Một commit đã xác minh cũ là một điểm dữ liệu lịch sử. Nó không nói gì về tình trạng bảo mật hiện tại của tài khoản.
Không trường nào trong số này, dù riêng lẻ hay kết hợp, xác lập rằng người giữ tài khoản chính là người được nêu tên trong tiểu sử hoặc rằng người đó làm việc ở nơi hồ sơ nói họ làm việc.
Bước 3: Kiểm tra quyền kiểm soát tài khoản hiện tại một cách riêng biệt
Một commit đã xác minh là bản ghi về một commit. Quyền kiểm soát tài khoản là câu hỏi riêng, và các trang công khai hiếm khi trả lời trực tiếp. Điều bạn có thể làm là tìm kiếm sự nhất quán và liên tục.
- So sánh lịch sử công khai của tài khoản theo thời gian. Một lịch sử đóng góp dài và mạch lạc là manh mối, không phải bằng chứng.
- Tìm cùng handle hoặc tên hiển thị trên các nền tảng khác. Handle trùng khớp là manh mối. Chúng không chứng minh các tài khoản thuộc cùng một người, vì handle không duy nhất trên các nền tảng và có thể bị tái sử dụng hoặc chiếm dụng.
- Coi văn bản hồ sơ, ảnh đại diện và tiểu sử là những tuyên bố của chủ tài khoản, không phải sự thật đã xác minh.
Nếu ai đó trình bày huy hiệu đã xác minh như bằng chứng rằng họ hiện đang kiểm soát một tài khoản, đó là một lỗi phân loại. Huy hiệu không đo lường bảo mật đăng nhập hiện tại, và nó không xác nhận rằng người đang nói với bạn là chủ tài khoản.
Bước 4: Tìm bằng chứng độc lập
Bằng chứng độc lập là bất cứ thứ gì không xuất phát từ chính tài khoản đưa ra tuyên bố. Ví dụ bao gồm danh sách thành viên nhóm do chính tổ chức công bố, danh sách bài nói trên trang hội nghị, hoặc một kho lưu trữ được duy trì dưới tài khoản tổ chức với hồ sơ công khai riêng. Ngay cả những thứ này cũng chỉ là sự củng cố, không phải bằng chứng danh tính. Nhiệm vụ của bạn là quyết định sự kết hợp này đáng được coi trọng đến mức nào, không phải tuyên bố chắc chắn.
Bảng quyết định: nên coi trọng huy hiệu đã xác minh đến mức nào
| Tình huống | Cách hiểu hợp lý | Điều chưa chắc chắn còn lại |
|---|---|---|
| Có huy hiệu, khóa vẫn liên kết với tài khoản, commit gần đây | Chữ ký đã được xác minh và liên kết khóa là hiện tại. | Không chứng minh người đó kiểm soát tài khoản hay đã viết mã. |
| Có huy hiệu, khóa đã bị thu hồi hoặc hết hạn | Việc xác minh đã được ghi lại khi nó xảy ra. | Không nói gì về độ tin cậy của khóa hiện tại hay bảo mật tài khoản. |
| Huy hiệu chỉ có trên các commit cũ | Bản ghi xác minh lịch sử. | Không ngụ ý gì về hoạt động hay quyền kiểm soát hiện tại. |
| Không có huy hiệu | Không có chữ ký đã xác minh trên commit đó. | Sự vắng mặt không phải bằng chứng của hành vi sai trái; nhiều quy trình hợp pháp không ký mọi commit. |
| Huy hiệu cộng với handle trùng khớp ở nơi khác | Một manh mối đáng theo dõi. | Handle không duy nhất; các tài khoản có thể thuộc những người khác nhau. |
| Huy hiệu cộng với đề cập trong hồ sơ tổ chức | Sự củng cố cho một mối liên hệ có thể có. | Không chứng minh việc làm hay quyền đại diện cho tổ chức. |
Sai lầm thường gặp
- Coi huy hiệu là kiểm tra danh tính. Đó là kết quả chữ ký, không phải kiểm tra lý lịch.
- Cho rằng huy hiệu lịch sử chứng minh bảo mật tài khoản hiện tại. Bản ghi có thể tồn tại sau khi khóa bị thu hồi hoặc hết hạn, nên huy hiệu không phải đèn trạng thái trực tiếp.
- Nhầm siêu dữ liệu tác giả và người commit với quyền tác giả. Các trường này là tuyên bố trong đối tượng commit, không phải sự thật đã xác minh về ai đã viết mã.
- Coi handle trùng khớp là bằng chứng về một người. Cùng một handle trên hai nền tảng là manh mối. Nó không chứng minh các tài khoản thuộc cùng một cá nhân.
- Đọc huy hiệu trên bản fork như sự chứng thực của tổ chức. Một commit đã xác minh trong bản fork cá nhân không xác lập rằng một tổ chức đã xem xét hoặc chứng thực công việc.
- Cho rằng commit không ký là đáng ngờ. Nhiều người đóng góp và quy trình hợp pháp không ký mọi commit.
Danh sách tự kiểm tra
Trước khi bạn lặp lại một tuyên bố về lập trình viên dựa trên huy hiệu đã xác minh, hãy chạy danh sách kiểm tra này.
- Tôi đã mở commit và ghi chú tác giả, người commit, khóa, kho lưu trữ và ngày tháng chưa?
- Tôi đã tách “chữ ký đã xác minh” khỏi “quyền kiểm soát tài khoản” và khỏi “danh tính hoặc việc làm” chưa?
- Tôi đã kiểm tra xem khóa còn liên kết với tài khoản không, hay bản ghi có thể tồn tại sau khi thu hồi hoặc hết hạn chưa?
- Tôi đã tìm ít nhất một nguồn không xuất phát từ chính tài khoản đó chưa?
- Tôi đã mô tả handle trùng khớp như một manh mối thay vì bằng chứng về một người chưa?
- Tôi đã tránh tuyên bố huy hiệu chứng minh bảo mật hiện tại, quyền tác giả, hoặc việc làm chưa?
Bảo vệ dấu vết của chính bạn
Nếu bạn ký commit, hãy nhớ rằng huy hiệu đã xác minh là một bản ghi bạn để lại. Nó có thể tồn tại lâu hơn khóa đã tạo ra nó. Trước khi thu hồi hoặc luân chuyển khóa ký, hãy quyết định bạn muốn các commit cũ được đọc như thế nào, và giữ ghi chú của riêng bạn về việc khóa nào được dùng khi nào. Nếu bạn duy trì hồ sơ công khai, hãy xem lại các handle bạn đã dùng theo thời gian và kiểm tra xem tài khoản cũ có còn trỏ đến bạn không. Một công cụ tìm kiếm tên người dùng như TraceSeek có thể giúp bạn rà soát các handle công khai đã biết của chính mình trên 3.000+ nền tảng; lần quét đầu tiên miễn phí và không yêu cầu đăng ký hay đăng nhập, và kết quả thường được trả về trong 20–30 giây. Hãy coi kết quả đầu ra là danh sách manh mối cần xem xét, không phải xác minh danh tính. TraceSeek không thay đổi cài đặt nền tảng, không đảm bảo có kết quả trùng khớp, và không xác minh danh tính của bất kỳ ai. Về cách chúng tôi định hình bằng chứng và giới hạn, xem phương pháp luận của chúng tôi.
Sự thật chính
- GitHub đánh dấu một commit đã ký là Verified khi chữ ký của nó được xác minh thành công.
- Khi quá trình xác minh đã được ghi lại, bản ghi có thể tồn tại ngay cả sau khi khóa ký bị thu hồi hoặc hết hạn.
- Huy hiệu commit đã xác minh là kết quả chữ ký cho một commit cụ thể, không phải bằng chứng về quyền kiểm soát tài khoản hiện tại hay danh tính.
- Các định danh công khai trùng khớp trên các nền tảng là manh mối, không phải bằng chứng các tài khoản thuộc cùng một người.
- TraceSeek bao phủ 3.000+ nền tảng và cung cấp lần quét đầu tiên miễn phí không cần đăng ký hay đăng nhập.