Thời Dạ không đi học, hôm nay cậu ngồi trong thư viện, mượn mạng ở đây dùng.
Lúc Sở Anh Túng tan học đến tìm người, liền thấy cậu học đệ băng sơn này ngồi ở góc khuất trong một phòng media đa chức năng, trầm ngâm nhìn vào màn hình laptop, hàng lông mày nhíu lại như có như không.
— Vấn đề khó giải quyết đến vậy sao?
Sở Anh Túng bước vào, đóng cửa lại, nhìn Thời Dạ một lúc, chẳng hay tự lúc nào đã bóc hết chỗ quýt mang theo, lặng lẽ đặt bên cạnh tay Thời Dạ.
Thời Dạ ngẩng đầu nhìn Sở Anh Túng.
Sở Anh Túng: “Anh siêu yên lặng luôn! Không làm phiền em đâu!”
“…” Thời Dạ im lặng cúi đầu xuống.
Một lúc sau, Sở Anh Túng len lén nhìn vào màn hình của Thời Dạ, thấy lần này cậu hình như đang xem một tệp dll[1], nhìn tên hàm có vẻ là: CertDllVerifyMicrosoftRootCertificateChainPolicy…[2]
Sở Anh Túng không khỏi tò mò hỏi: “Không phải em muốn crack điện thoại sao? Sao lại xem mấy thứ chứng chỉ số hóa thế?”
Thời Dạ đáp: “ECC[3] cập nhật phiên bản mới, khả năng tương thích với IOS không tốt lắm, có thể có lỗ hổng.”
Sở Anh Túng nghe vậy, tinh thần phấn chấn: “Có lý!”
Anh cũng ghé mắt nhìn màn hình, lướt qua hàm mới được cập nhật.
Dựa theo so sánh sau khi cập nhật phiên bản, lần này Microsoft chủ yếu sửa đổi một số hàm liên quan đến chiến lược liên kết chứng chỉ, bổ sung thêm một số cổng vào để tương thích với giao thức mới.
Thời Dạ vừa suy ngẫm vừa gỡ lỗi, highlight một số đoạn code so sánh bộ nhớ.
Sở Anh Túng vẫn có thể hiểu được chút ít, liền tò mò nói: “Là chỗ này đang so sánh khóa công khai à?”
Thời Dạ nói: “Ừm.”
Chứng chỉ số hóa có thể ví như “visa” của con người, cần phải được cơ quan có thẩm quyền cấp.
Lấy thuật toán đường cong elliptic (ECC) do Microsoft phát minh ra làm ví dụ: Cơ quan cấp visa đầu tiên sẽ chọn một khóa bí mật, xác định một đường cong elliptic dựa trên khóa bí mật đó, đưa vào các tham số bổ sung, để có được một đáp án khác trên đường cong elliptic, đáp án này chính là khóa công khai.
Khóa bí mật chỉ có cơ quan cấp visa biết, nhưng khóa công khai thì được công bố rộng rãi trên mạng.
Khi cơ quan cấp visa cấp chứng chỉ số hóa cho một phần mềm nào đó, họ sẽ dùng khóa bí mật của mình, một số tham số cục bộ và giá trị băm để tạo ra chữ ký, cũng chính là “visa” của phần mềm đó.
Sau đó, bất kỳ ai trên mạng công cộng đều có thể sử dụng khóa công khai để so sánh “visa” của phần mềm này, tức là tự mình thực hiện một phép tính đường cong elliptic, có thể so sánh xem kết quả có trùng khớp hay không —
Trùng khớp thì chứng tỏ “visa” là do cơ quan chính thức cấp, không có vấn đề gì;
Nếu không trùng khớp, thì đây chính là “visa” không hợp lệ, phần mềm này đáng ngờ, là “người đen” không có hộ chiếu, không đáng tin cậy.
Toàn bộ quá trình cấp visa số hóa này là một chiến lược mã hóa bất đối xứng.
“Bất đối xứng” ở chỗ: Cơ quan cấp visa nắm giữ khóa bí mật, còn tất cả mọi người đều nắm giữ khóa công khai, toàn bộ quá trình chỉ có thể xác minh, nhưng không thể suy ngược lại.
Giống như quốc gia nắm giữ công nghệ chống giả của việc in tiền, tất cả mọi người đều có thể dùng những cách đơn giản như nhìn, sờ để kiểm tra dấu hiệu chống giả của đồng tiền, nhưng không ai có thể làm giả được dấu hiệu này.
Công nghệ này cũng có thể giúp phần mềm máy tính chống giả ở mức độ cao nhất, từ đó đảm bảo tính bảo mật của chính thiết bị.
Tuy nhiên, trong thế giới của Thời Dạ, không có gì là không thể.
Xét cho cùng — “Trên đời không có hệ thống nào an toàn tuyệt đối, chỉ có những lỗ hổng chưa được phát hiện”.
Cậu vừa suy ngẫm vừa gỡ lỗi thuật toán cấp visa ECC sau khi cập nhật, sau đó phát hiện ra một hàm có tên là “CertVerifyCertificateChainPolicy”, truyền liên tiếp bốn tham số liên quan đến chứng chỉ, hơn nữa không xử lý gì cả, liền truyền đến hàm tiếp theo.
Cậu trầm tư suy nghĩ.
Sở Anh Túng thấy Thời Dạ đột nhiên dừng lại ở một chỗ nhất định, không khỏi cũng nhìn chằm chằm một lúc, gãi đầu gãi tai hỏi: “Thời Tiểu Dạ, anh có thể hiểu được tham số OID[4], còn ba cái kia là gì?”
Thời Dạ cầm bút, thuận tay viết ra giấy mấy tham số đó, giải thích cho anh: “Giả sử khóa bí mật của chứng chỉ gốc là p, chúng ta không thể biết được khóa bí mật này, nhưng điểm cơ sở của ECC là G, vậy thì khóa công khai chính là pG. Mấy tham số này chỉ là đang tùy chỉnh tham số r, s của đường cong elliptic và khóa công khai…”
Nói đến đây, cậu đột nhiên dừng lại.
Sở Anh Túng bỗng nhiên “A” lên một tiếng, nói: “Vậy nếu kiểm tra như vậy, tự mình truyền tham số vào, dùng tham số tùy chỉnh giống hệt như vậy, chẳng phải có thể dùng bất kỳ khóa bí mật nào cũng có thể cấp visa sao?”
Thời Dạ im lặng một lúc, nói: “Anh nghĩ không tệ.”
Thời Dạ mở cửa sổ dòng lệnh trên máy tính, bắt đầu dùng lệnh openssl[5], tự mình tạo ra một loạt tham số, thử tạo chứng chỉ ECC mới.
Sau đó, cậu dùng chứng chỉ ECC giả mạo này, tùy tiện ký tên cho một phần mềm “ba không”.
Sở Anh Túng nhìn được một nửa, đã tự giác móc điện thoại của mình ra, kết nối với máy tính.
Tiếp đó, Thời Dạ thử cài đặt phần mềm vào điện thoại của anh —
Xác minh chữ ký số thành công.
Cài đặt phần mềm thành công.
Đến bước này, miệng Sở Anh Túng đã há hốc thành hình chữ “O”, kêu lên: “Woa woa woa woa woa woa chúng ta phát hiện ra một 0day! Thời Tiểu Dạ, phát tài rồi!”
Thời Dạ bình tĩnh: “Ừm.”
Cậu tiếp tục công việc tiếp theo, kiểm tra chứng chỉ số hóa giả mạo này, tên chỉ tùy tiện đặt là “1”, tên và ngày tháng của người ký tên đều không có, nhưng trong hệ thống lại là “chứng chỉ bình thường” đáng tin cậy.
Sở Anh Túng thì không bình tĩnh như vậy, cười ngây ngô xoay hai vòng tại chỗ, nhét hai múi quýt vào miệng Thời Dạ, vui vẻ nói: “Đây chính là lỗ hổng chứng chỉ số hóa, gửi cho Microsoft ít nhất cũng là mức độ ‘nguy hiểm’. Đến lúc đó tiền thưởng được gửi đến, Thời Tiểu Dạ, em sẽ thành triệu phú đấy!”
Quýt rất ngọt, Thời Dạ im lặng ăn, liếm môi.
Sở Anh Túng nhìn mà tim đập thình thịch, vui vẻ hôn cậu một cái.
Học trưởng cũng rất ngọt, Thời Dạ im lặng để anh hôn, sau đó mới thản nhiên nói: “Chưa gửi vội.”
Sở Anh Túng lúc này mới nhớ ra: “À đúng rồi, đây mới chỉ là bước đầu tiên, em thật sự định crack hệ điều hành IOS 13 sao?”
Thời Dạ: “Ừm.”
Vừa nói, tay Thời Dạ không ngừng nghỉ, đóng gói chứng chỉ vào gói crack IOS của mình.
Có được một 0day của Microsoft giá trị liên thành, dường như không tạo ra bất kỳ ảnh hưởng nào đối với cậu.
Có lẽ điều khiến cậu vui mừng hơn chính là bản thân có thể tiến thêm một bước trên con đường giải bài toán.
Sở Anh Túng bất giác cũng im lặng, nhìn sườn mặt tập trung của cậu, ngẩn người suy nghĩ một lúc.
Một lát sau, Sở Anh Túng nói: “A Dạ, em có từng nghĩ đến, sau khi crack được hệ thống, em có thể sẽ rất nổi tiếng, kiểu nổi tiếng mà em không nhất định thích…”
Thời Dạ dừng lại một chút.
Cậu thực sự chưa từng nghĩ đến — Rất nhiều thứ của thế giới thực tại, theo bản năng không nằm trong phạm vi ý thức của cậu.
Lúc này, Sở Anh Túng nói: “Năm đó, hình như là IOS 4, không phải là do một cậu học sinh cấp 3 ở châu Âu crack sao? Cậu ta nổi tiếng chỉ sau một đêm, còn bị Apple kiện. Tuy sau đó tòa án phán quyết là ‘tò mò trí tuệ’, không cấu thành tội…”
“Em biết.” Thời Dạ nói, “Đó là vùng xám của pháp luật.”
Sở Anh Túng cúi đầu nói: “Thời Tiểu Dạ, chúng ta có thể thử nghiệm vì mục đích học thuật, nhưng em có thể hứa với anh, sẽ không dùng nó để kiếm lời bất hợp pháp được không?”
Thời Dạ nhìn anh một lúc, khóe miệng như ẩn chứa nụ cười nhàn nhạt, nói: “Được.”
Sở Anh Túng lúc này mới sôi nổi trở lại, vui vẻ nói: “Tốt! Tiếp theo còn cần anh giúp gì không? Anh cũng muốn tham gia! Cả đời này anh chưa làm chuyện gì lớn như vậy — Kích thích quá!!”
Cả ngày hôm đó, Sở Anh Túng đều không nhịn được mà ở lì trong thư viện cùng Thời Dạ.
Họ cùng nhau xem những dòng code hàm khó hiểu, cùng nhau gỡ lỗi đủ loại tham số lộn xộn, cùng nhau bị những bài toán hóc búa hành hạ đến mức nghi ngờ nhân sinh.
Mỗi khi tế bào não chết đi, Sở Anh Túng lại lặng lẽ bóc một quả quýt đút cho Thời Dạ, Thời Dạ lại vô thức ăn hết… Kết quả là đến bữa tối cậu chẳng ăn nổi gì.
Sở Anh Túng ra ngoài mua hai bát hoành thánh lớn về, lại bắt đầu đút cho Thời Dạ từng miếng một, như sợ cậu không ăn tối sẽ đói.
Cuối cùng, hai người đành phải cùng nhau nằm vật ra sofa.
Sở Anh Túng là vì não bộ trống rỗng, mệt mỏi.
Thời Dạ là vì no quá.
Đến tối, quả nhiên Dư Cảnh Thụ lại bắt đầu tăng ca.
Ông dùng phần mềm nội bộ gửi tin nhắn cho Thời Dạ: 【Cố vấn tiên sinh, hôm nay con có tiến triển gì mới không? Bên này bọn chú đã chuẩn bị thêm một số tài liệu, con có thể xem qua.】
Thời Dạ: 【Có.】
Dư Cảnh Thụ rất ngạc nhiên: 【Có tiện giải thích cho chú một chút không?! Chú gọi điện thoại cho con ngay.】
Thời Dạ: 【Không tiện, Sở Anh Túng ngủ rồi.】
Dư Cảnh Thụ: 【Hai người đang ở ký túc xá sao? Chú có thể ra ngoài nghe điện thoại, sẽ không làm phiền đến nó đâu.】
Thời Dạ: 【Không, tôi đang nhìn anh ấy.】
Dư Cảnh Thụ: “???” Ý gì đây, sao con lại nhìn nó ngủ? Ngắn gọn quá vậy. Cứ mỗi lần nói chuyện với cậu nhóc này, tôi lại thấy mình sắp hói đầu rồi.
Thực ra, Thời Dạ chỉ là bị Sở Anh Túng quấn lấy thôi.
Anh học trưởng ngốc nghếch nằm nghiêng trên sofa, ngủ rồi mà miệng vẫn mấp máy, giống như một chàng tiên cá mắc cạn.
Thời Dạ đưa tay, rút dây cáp dữ liệu dưới người anh ra, cắm sạc cho chiếc điện thoại đã dùng cả ngày.
Sở Anh Túng mơ màng hừ hừ hai tiếng, đưa tay ôm lấy eo Thời Dạ, dụi dụi mặt vào eo cậu hai cái, rồi lại tiếp tục ngáy khò khò.
Thời Dạ: “…”
Thời Dạ đưa ngón tay ra, khẽ miết qua hàng mi run rẩy của Sở Anh Túng, đổi lấy hai tiếng hừ hừ như heo con.
Thời Dạ nghiêng đầu, lại đưa tay lần lượt lướt qua sống mũi, đầu lông mày, đôi môi hơi hé mở của anh, và rất nhiều nơi khác mà cậu cảm thấy hứng thú.
Bị làm phiền quá mức, Sở Anh Túng khó chịu trở mình, miệng còn vô thức chu ra.
Nhưng Thời Dạ như tìm được món đồ chơi mới, có cảm giác vui thích không thôi, hoàn toàn quên mất chiếc máy tính đang chạy chương trình của mình.
Sở Anh Túng ngủ thêm một lúc, cảm thấy cả người ngứa ngáy khó chịu, cuối cùng cũng bật dậy, dụi dụi mái tóc rối bù nói: “Thôi thôi, chúng ta về ký túc xá ngủ đi?”
Thời Dạ nhìn anh, ánh mắt sâu thẳm, nói: “Ừm.”
Mặt Sở Anh Túng đỏ bừng vì ngủ, mơ mơ màng màng đứng dậy thu dọn đồ đạc, ném vỏ quýt vào thùng rác, thuận miệng nói: “Giải bài tập mà, không cần gấp gáp, mai anh tan học lại đến tìm em…”
“Nhưng ‘bài tập’ này em rất thích, hy vọng ngày mai có thể bắt đầu làm việc sớm.” Thời Dạ đột nhiên nói, nghĩ ngợi một chút rồi bổ sung thêm một câu, “Hy vọng buổi tối cũng có thể làm.”
Sở Anh Túng ngẩn người một lúc: “Trời ạ, đây chính là cảnh giới của học thần sao? Không thể so sánh, không thể so sánh.”
Thời Dạ dừng lại một chút, nói: “… Có lẽ là vì, đề bài tương đối mới mẻ và thú vị.”
Sở Anh Túng oán giận: “Suốt ngày giải bài tập, không biết cân bằng giữa học tập và giải trí sao? Trong thời gian biểu của em có thể chừa một chút để chơi với anh không… Ê, em cười gì thế?”
Thời Dạ cười mà không nói.
Tác giả có lời muốn nói: Đừng suy nghĩ nhiều, lỗ hổng này đã được Microsoft vá vào tháng 1 năm 2020 rồi.
[1] dll: Dynamic Link Library, thư viện liên kết động, là một tập hợp các hàm, lớp và tài nguyên có thể được các chương trình khác sử dụng.
[2] CertDllVerifyMicrosoftRootCertificateChainPolicy: Một hàm trong thư viện dll CertDll.dll của Windows, được sử dụng để xác minh chuỗi chứng chỉ của Microsoft.
[3] ECC: Elliptic Curve Cryptography, thuật toán mã hóa đường cong elliptic, là một phương pháp mã hóa khóa công khai dựa trên cấu trúc đại số của các đường cong elliptic.
[4] OID: Object Identifier, mã định danh đối tượng, là một chuỗi các số được sử dụng để xác định duy nhất một đối tượng trong hệ thống thông tin.
[5] openssl: Một bộ công cụ mã nguồn mở để triển khai giao thức SSL/TLS