Phản hồi Nym đối với cuộc kiểm toán bảo mật của Cure53 (Tháng 7 năm 2024)
Kiểm toán đầy đủ mã, mạng lưới và các ứng dụng của Nym
Giới thiệu
NymVPN được thiết kế để đảm bảo sự riêng tư, an toàn và bảo mật cho các hoạt động giao tiếp trực tuyến của bạn. Tại Nym, tính minh bạch và sự tin tưởng của người dùng là tối quan trọng, đó là lý do tại sao mã của Nym là mã nguồn mở và trải qua các cuộc kiểm toán độc lập thường xuyên để đảm bảo các tiêu chuẩn cao nhất về bảo mật và quyền riêng tư.
Vào tháng 7 năm 2024, Nym đã trải qua một cuộc kiểm toán độc lập bởi Cure53, một công ty an ninh mạng có trụ sở tại Berlin với hơn 15 năm kinh nghiệm trong việc thực hiện các bài kiểm tra phần mềm và kiểm toán mã nguồn. Đánh giá mở rộng được thực hiện đối với các thành phần chính, bao gồm ứng dụng di động và desktop, hạ tầng VPN, triển khai mật mã và kiến trúc tổng thể của hệ thống.
Tất cả các lỗ hổng nghiêm trọng và có độ nghiêm trọng cao được xác định đã được giải quyết. Chúng tôi hiện đang chờ phản hồi từ Cure53 về báo cáo và các bản sửa lỗi của chúng tôi.
Báo cáo Cure53 đầy đủ được công bố tại đây. Bạn cũng có thể xem bài nói chuyện của Dr. Nadim Kobeissi cho OSTIF, trong đó ông thảo luận về cuộc kiểm toán của Nym và cung cấp thông tin chuyên sâu về một số vấn đề được phát hiện.
Tóm tắt đánh giá Nym thực hiện bởi Cure53
Cure53 đã tiến hành đánh giá bảo mật toàn diện hệ sinh thái Nym, bao gồm thử nghiệm thâm nhập, kiểm tra mã nguồn và đánh giá mã. Cuộc kiểm toán tập trung vào việc đánh giá mức độ bảo mật của các ứng dụng di động và máy tính để bàn, API backend, phần mềm VPN và cơ sở hạ tầng, cũng như mật mã của Nym. Nym đã hỗ trợ liên tục cho nhóm Cure53 trong suốt quá trình kiểm toán, đảm bảo sự hợp tác suôn sẻ và quy trình minh bạch.
Cure53 đã áp dụng chiến lược hộp pha lê, tận dụng quyền truy cập đầy đủ vào mã nguồn, bản dựng, tài liệu, môi trường test và các bài báo khoa học hỗ trợ. Cuộc kiểm toán kéo dài 56 ngày làm việc, có sự tham gia của một nhóm sáu chuyên gia cao cấp về an ninh mạng. Công việc được chia thành năm mảng (WPs):
-
- Ứng dụng di động Nym
-
- Ứng dụng Nym cho máy tính để bàn
-
- API backend của Nym
-
- Phần mềm và hạ tầng Nym VPN
-
- Mật mã Nym
Cuộc kiểm toán đã đạt được phạm vi bao phủ rộng rãi trong phạm vi đã định, xác định 43 phát hiện, bao gồm 7 lỗ hổng bảo mật - gồm các vấn đề nghiêm trọng và có mức độ cao - và 24 điểm yếu chung, được phân loại là có tiềm năng khai thác trung bình hoặc thấp và cho thấy Nym có cơ hội để tăng cường hệ thống hơn nữa.
Phần mềm và hạ tầng NymVPN được phát hiện ở trong tình trạng hoàn hảo từ góc độ bảo mật, không phát hiện ra vấn đề nào. Cure53 đã kết luận rằng tất cả các thành phần được kiểm tra đều có nền tảng bảo mật mạnh mẽ, chứng tỏ hệ thống có trạng thái ổn định và an toàn. Các ứng dụng máy tính để bàn được đánh giá là ở trạng thái tốt từ góc độ bảo mật, không có lỗ hổng bảo mật đáng kể nào được xác định. Đội ngũ kiểm toán nhấn mạnh rằng triển khai tổng thể của Nym rất vững chắc. Tương tự, backend và API của Nym được đánh giá ở trạng thái trung bình từ góc độ bảo mật. Đáng chú ý, báo cáo đã công nhận rằng một số lỗ hổng nghiêm trọng đã được giảm thiểu và ngăn chặn một cách hiệu quả, nhấn mạnh cách tiếp cận chủ động của chúng tôi đối với bảo mật và việc triển khai cẩn thận.
Những phát hiện chính
WP1: Kiểm tra thâm nhập Crystal-box và kiểm tra mã nguồn của ứng dụng di động Nym
Trong WP1, Cure53 đã thực hiện cả phân tích tĩnh và động kết hợp với thử nghiệm hộp trắng trên các ứng dụng di động NymVPN cho Android và iOS. Mục tiêu là xác định mọi điểm yếu, cấu hình sai hoặc rủi ro bảo mật trong các ứng dụng. Nhìn chung, các phát hiện có mức độ nghiêm trọng thấp hơn, không có lỗ hổng nghiêm trọng hoặc lỗ hổng có nguy cơ cao nào được xác định. Các vấn đề đã được xác định chủ yếu có mức độ trung bình, thấp hoặc mang tính thông tin và có thể được giải quyết một cách hiệu quả như là một phần của nỗ lực rộng lớn hơn nhằm củng cố các ứng dụng. Phân tích tĩnh nhằm tìm ra các thiết lập không tối ưu hoặc cấu hình sai trong các ứng dụng có thể dẫn đến những yếu điểm. Tuy nhiên, phân tích đã tiết lộ không có mối quan ngại nào về rủi ro cao.
Hơn nữa, Cure53 đã tiến hành một cuộc điều tra chuyên sâu về các vectơ tấn công phổ biến đối với Android, bao gồm khả năng truy cập vào các thành phần không được xuất, bỏ qua xác thực, bộ thu phát sóng lỗi và xác thực không đủ các mục bổ sung ý định. Không phát hiện lỗ hổng nào trong bất kỳ lĩnh vực nào, phản ánh sức mạnh của các biện pháp bảo mật của nền tảng.
Cure53 cũng xác nhận rằng cả ứng dụng Android và iOS đều không chứa thông tin nhạy cảm hoặc bí mật được mã hóa cứng, đây là một ưu tiên quan trọng về bảo mật.
Nhìn chung, các ứng dụng di động đã chứng minh được thế trận bảo mật tốt với bề mặt tấn công tối thiểu. Ngoại trừ một vài điểm nhỏ cần cải thiện, chẳng hạn như việc sử dụng không đúng cách bộ nhớ bảo mật gốc của ứng dụng iOS (NYM-01-024), không có lỗi bảo mật đáng kể nào được xác định trong các ứng dụng.
WP2: Kiểm tra thâm nhập Crystal-box và kiểm tra mã nguồn của ứng dụng máy tính để bàn Nym
WP2 tập trung vào các ứng dụng NymVPN desktop cho Windows, Linux và macOS. Đội ngũ test đã thực hiện một đánh giá kỹ lưỡng cả các thành phần giao diện người dùng để tìm các vấn đề của phía máy khách và lớp giao tiếp backend Rust. Nhìn chung, các ứng dụng máy tính để bàn đã cho thấy các biện pháp bảo mật mạnh mẽ.
Những phát hiện tích cực quan trọng bao gồm việc sử dụng framework React cho các thành phần frontend, giúp giảm đáng kể bề mặt tấn công. Nhóm không xác định được bất kỳ lỗ hổng nghiêm trọng nào ở phía máy khách, ngoại trừ một trường hợp hi hữu xảy ra khi URL kho lưu trữ độc hại có thể kích hoạt việc thực thi JavaScript tùy ý (XSS) nếu được nhấp vào trong một số điều kiện nhất định. Sự cố này được phân loại là rủi ro thấp, không có dữ liệu nhạy cảm hoặc lỗ hổng nghiêm trọng nào được xác định. Về phía backend, giao tiếp với daemon qua socket Unix (Linux) và pipe (Windows) đã được đánh giá cẩn thận và cho thấy không có lỗi lớn hoặc rủi ro bảo mật nào.
Mặc dù một vài vấn đề nhỏ đã được ghi nhận, nhưng những phát hiện này tập trung vào việc tăng cường bảo mật hơn là giải quyết các lỗi nghiêm trọng.
WP3: Kiểm tra thâm nhập Crystal-box và kiểm tra mã nguồn đối với API backend của Nym
WP3 tập trung vào API của các thành phần backend của Nym, bao gồm cổng và mixnode, trừ các trình xác thực. Quá trình test đã xem xét một cách kỹ lưỡng quá trình tuần tự hóa/hủy tuần tự hóa, tấn công SQL, cơ chế xác thực và ủy quyền, lỗ hổng SSRF, tấn công thời gian và điểm thực thi mã (code execution sink). Rất may, hệ thống backend Nym đã thể hiện mức độ bảo mật trung bình, với không có lỗ hổng thực thi mã trực tiếp, rủi ro SQLi, hoặc các vấn đề SSRF có thể khai thác rủi ro cao nào được xác định. Các cơ chế xác thực và ủy quyền trong mạng của chúng tôi được triển khai theo các tiêu chuẩn bảo mật, giúp giảm thiểu các lỗ hổng tiềm ẩn có thể bị bỏ qua một cách hiệu quả. Mặc dù các thành phần backend nhìn chung thể hiện tính bảo mật mạnh mẽ, nhưng một vài vấn đề đáng chú ý đã được xác định. Trong số đó, có hai kết quả được phân loại là mức độ cao hoặc nghiêm trọng (NYM-01-027, NYM-01-030 và NYM-01-032), mà chúng tôi sẽ đề cập dưới đây.
NYM-01-027 WP3: Tái sử dụng khóa nonce trong AES-CTR trong cổng Nym (Nghiêm trọng)
Trong quá trình xem xét mã nguồn của kho lưu trữ Nym, đã xác định rằng giao tiếp giữa cổng và máy khách gặp một lỗ hổng mã hóa nghiêm trọng. Cụ thể, đã phát hiện rằng quá trình bắt tay giữa các cổng Nym và máy khách có dữ liệu mã hóa giao tiếp sau đây sử dụng AES-CTR và một khóa độc nhất, không luân chuyển, cùng với một zero nonce không đổi. Điều này đặt tất cả giao tiếp vào tình trạng nguy hiểm nếu một plaintext duy nhất bị rò rỉ cho kẻ tấn công, vì nó cho phép kẻ tấn công phá vỡ mã hóa bằng cách áp dụng các triển khai XOR đơn giản giữa các bản mã hóa (ciphertexts) và bản rõ (plaintext) đã bị rò rỉ.
Mặc dù tính bảo mật của dữ liệu được truyền giữa máy khách và cổng chỉ bị đe dọa trong trường hợp bị rò rỉ plaintext, chúng tôi hoàn toàn thừa nhận mức độ nghiêm trọng của vấn đề này. Nym đã phản hồi nhanh chóng bằng cách thay thế mã hóa AES-CTR bằng lược đồ AES-GCM-SIV được đề xuất, giúp nâng cao đáng kể bảo mật giao tiếp trong phiên bản 2024.12-aero.
NYM-01-030 WP3: Cổng bỏ qua bước kiểm tra số sê-ri của thông tin xác thực (Nghiêm trọng)
Việc không kiểm tra số sê-ri thông tin xác thực ở cấp cổng không làm ảnh hưởng đến tính bảo mật vì giao thức zk-nyms dựa trên mô hình tiền điện tử ngoại tuyến, vốn được thiết kế để phát hiện và ngăn chặn nguy cơ chi tiêu hai lần. Trong các chương trình thanh toán trực tuyến bằng tiền điện tử, nhà cung cấp duy trì kết nối liên tục với một cơ quan tập trung (ví dụ: ngân hàng hoặc blockchain) và kiểm tra số sê-ri trong thời gian thực trước khi chấp nhận thanh toán. Với NymVPN, các cổng sẽ chủ động xác minh số sê-ri thông qua thông tin xác thực khi các giao dịch diễn ra. Ngược lại, tiền điện tử ngoại tuyến loại bỏ nhu cầu kết nối liên tục—các nhà cung cấp có thể chấp nhận thanh toán và deposit sau, với sự đảm bảo được mã hóa rằng bất kỳ nỗ lực nào để chi tiêu hai lần sẽ được xác định trong quá trình xác minh giao dịch. Giao thức zk-nyms tuân theo mô hình tiền điện tử ngoại tuyến này, đảm bảo rằng ngay cả khi không có kiểm tra số sê-ri tại cổng, các trình xác thực nym-API vẫn có thể phát hiện và ngăn chặn hành vi chi tiêu hai lần khi xác minh vé. Điều này đồng nghĩa không cần xác minh số sê-ri tại cổng với mục đích bảo mật. Tuy nhiên, việc kiểm tra cục bộ tại cổng có thể giúp phát hiện sớm, cải thiện tốc độ nhận diện các nỗ lực chi tiêu hai lần trong cùng một cổng. Mặc dù việc kiểm tra như vậy có thể tăng cường hiệu quả, nhưng chúng không phải là yếu tố thiết yếu đối với bảo mật cốt lõi của giao thức. Các đảm bảo mật mã được nhúng trong giao thức zk-nyms giúp việc chi tiêu hai lần được phát hiện một cách đáng tin cậy ở giai đoạn sau, cho phép bất kỳ hành vi độc hại nào cũng được xác định và đưa vào danh sách đen. Do đó, việc kiểm tra chi tiêu hai lần tại cổng nên được coi là biện pháp cải thiện hiệu suất tùy chọn hơn là yêu cầu bảo mật cơ bản.
Hơn nữa, trong hệ thống của chúng tôi, mỗi chứng chỉ zk-nym có một ngày hết hạn cố định, hiện tại được đặt là một tuần. Sau thời gian này, các thông tin xác thực đã hết hạn sẽ không còn được các node vào của mạng chấp nhận nữa. Cơ chế hết hạn này hạn chế thêm nữa ảnh hưởng của bất kỳ nỗ lực nào nhằm chi tiêu hai lần, đảm bảo rằng hệ thống vẫn bảo mật ngay cả khi không có các kiểm tra số sê-ri ở cấp cổng.
NYM-01-032 WP3: Các tham số bộ lọc Bloom tạo ra kết quả dương tính giả (Mức độ cao)
Chúng tôi nhận thấy rằng phần mã này đang được phát triển tích cực và không được sử dụng trong ứng dụng NymVPN tại thời điểm kiểm toán. Các tham số được cung cấp chỉ nhằm mục đích test. Như đã giải thích trong NYM-01-030 WP3, bộ lọc Bloom đã được thêm vào như một biện pháp kiểm tra bổ sung để phát hiện chi tiêu hai lần. Tuy nhiên, vì giao thức của chúng tôi xử lý việc chi tiêu hai lần theo thiết kế khác với thông thường, và các bộ lọc Bloom tạo ra quá nhiều tải (vì chúng tôi phải đồng bộ giữa các cổng và nym-api), đội ngũ quyết định loại bỏ chúng.
Ngoài những vấn đề ưu tiên cao này, cuộc kiểm toán cũng đã nêu bật một số lỗ hổng mức độ trung bình, đặc biệt liên quan đến các vectơ tấn công từ chối dịch vụ (DoS) tiềm ẩn. Những phát hiện này nhấn mạnh các khía cạnh mà backend của NymVPN có thể cải thiện khả năng phục hồi trước sự cố gián đoạn dịch vụ. Chúng tôi dự định giải quyết những điều này như một phần trong roadmap năm 2025.
Nhìn chung, API và các thành phần backend đã thể hiện một mức độ bảo mật đáng khen ngợi, với các lỗ hổng chủ yếu được giới hạn trong các trường hợp cụ thể hoặc cơ hội để củng cố thêm.
WP4: Kiểm tra thâm nhập Crystal-box và kiểm tra mã nguồn của phần mềm và cơ sở hạ tầng Nym VPN
WP4 bao gồm một đánh giá bảo mật toàn diện về phần mềm NymVPN, tập trung vào:
- Chức năng cốt lõi: Xử lý giao thức, mã hóa, quản lý mạng, phân giải DNS, và triển khai định tuyến IP, tunneling, và tích hợp toàn bộ ngăn xếp mạng.
- Tích hợp Giao diện người dùng: Giao diện người dùng dựa trên Tauri đã được đánh giá về thiết kế, khả năng sử dụng và tích hợp hiệu quả với lõi Rust thông qua FFI, cũng như hiệu suất cụ thể cho từng nền tảng trên Windows, macOS và Linux.
- Các biện pháp bảo mật chính: Lưu trữ thông tin xác thực an toàn, ngăn chặn rò rỉ, quản lý khóa và giảm thiểu các lỗ hổng VPN đã biết.
Việc triển khai xử lý giao thức, mã hóa, định tuyến IP, tạo đường hầm và tích hợp ngăn xếp mạng dựa trên Rust đã được xác nhận là đáng tin cậy, với nhận định là không có lỗ hổng nào được xác định. Các tính năng bảo mật chính, chẳng hạn như lưu trữ thông tin xác thực, ngăn ngừa rò rỉ và quản lý khóa mã hóa, được đánh giá là đáp ứng các tiêu chuẩn bảo mật cao và giảm thiểu rủi ro hiệu quả.
Giao diện desktop cho thấy đã kết hợp thành công khả năng sử dụng với tích hợp hiệu quả vào lõi Rust. Cơ chế xử lý lỗi và ghi nhật ký đã được xác nhận là toàn diện và được triển khai một cách chu đáo, cung cấp thông tin khắc phục sự cố quý giá mà không tiết lộ bất kỳ dữ liệu nhạy cảm nào.
Không phát hiện lỗ hổng nào trong quá trình phân tích WP4, và phần mềm NymVPN được khẳng định là có khả năng bảo mật xuất sắc.
WP5: Kiểm tra thâm nhập Crystal-box và kiểm tra mã nguồn chống lại mật mã Nym
WP5 tập trung vào đánh giá toàn diện mật mã được sử dụng trong nền tảng Nym. Bao gồm các thành phần chính như Coconut crate, zk-nyms (ecash) crate, giao thức Sphinx, giao thức Outfox và các hàm mật mã cơ bản phổ biến khác. Mã nguồn cho tất cả các chương trình mã hóa, được viết hoàn toàn bằng Rust, được khen ngợi vì tính tổ chức tuyệt vời, cho phép các kiểm toán viên nhanh chóng làm quen với việc triển khai.
Giao thức Coconut và e-cash đã được xem xét kỹ lưỡng và chứng minh việc sử dụng hiệu quả của các cơ chế làm mù để bảo vệ thông tin nhạy cảm, không phát hiện rò rỉ thông tin ngoài ý muốn. Hai NIZKP được sử dụng trong giao thức không cho thấy bất kỳ lỗ hổng nào có thể bị khai thác, cho phép bỏ qua hoặc đánh lừa trình xác minh. Ngoài ra, việc lựa chọn các thư viện mật mã cơ bản, đặc biệt là bls12_381, đã đảm bảo kiểm tra các node thành viên một cách nghiêm ngặt, ngăn chặn các cuộc tấn công sử dụng các điểm đường cong không hợp lệ hoặc các nhóm nhỏ không chính xác. Hơn nữa, việc tạo ngẫu nhiên cho các khóa mật mã hóa và nonce đã được xác nhận đã sử dụng các phương pháp mạnh mẽ và an toàn về mặt mã hóa, hỗ trợ tính toàn vẹn của quá trình tạo khóa trên toàn bộ nền tảng.
Bên cạnh những ưu điểm này, quá trình kiểm toán cũng đã xác định một số vấn đề được phân loại là nghiêm trọng hoặc có rủi ro cao. Chúng tôi sẽ đề cập đến từng vấn đề một cách riêng lẻ dưới đây.
NYM-01-009 WP5: Bỏ qua chữ ký EC BLS12-381 trong thư viện Coconut (Nghiêm trọng)
Cure53 quan sát thấy rằng hàm verify_partial_blind_signature, nhằm xác minh các chữ ký mù một phần trong giai đoạn phát hành, không bao gồm tất cả các kiểm tra cần thiết cho chữ ký được cung cấp, có thể cho phép kẻ tấn công bỏ qua xác thực chữ ký bằng cách sử dụng các điểm vô cực trên đường cong elip. Tuy nhiên, chúng tôi muốn làm rõ rằng trong giao thức Coconut, chức năng xác thực chi tiêu thông tin xác thực bao gồm các kiểm tra cần thiết và từ chối đáng tin cậy các thông tin xác thực không hợp lệ. Do đó, với thiết kế của giao thức, bất kỳ nỗ lực tấn công nào đều sẽ không thành công, vì các thông tin xác thực giả mạo sẽ bị phát hiện và từ chối ở giai đoạn sau. Điều này đảm bảo rằng tính bảo mật và toàn vẹn của hệ thống không bị xâm phạm trong thực tiễn.
Nói vậy, chúng tôi thừa nhận rằng các kiểm tra bổ sung được đề xuất bởi Cure53 có thể nâng cao độ tin cậy của các chức năng này nếu chúng được sử dụng ngoài ngữ cảnh cụ thể của Coconut. Vì mã của chúng tôi là mã nguồn mở và với mục đích cung cấp các thành phần có thể tái sử dụng cho cộng đồng rộng lớn hơn, chúng tôi đã triển khai các kiểm tra chữ ký được khuyến nghị cho các điểm vô hạn như một biện pháp phòng ngừa bổ sung trong bản phát hành 2024.13-magura. Điều này đảm bảo rằng các hàm có thể được sử dụng một cách đáng tin cậy trong các ngữ cảnh khác nhau trong khi vẫn duy trì các tiêu chuẩn bảo mật cao nhất.
NYM-01-014 WP5: Bỏ qua chữ ký một phần trong eCash ngoại tuyến (Nghiêm trọng)
Vấn đề này tương tự như vấn đề được mô tả ở trên nhưng áp dụng cho chương trình e-cash thay vì Coconut. Cũng giống như việc triển khai Coconut, tất cả các kiểm tra cần thiết đã được thực hiện trong giai đoạn chi tiêu của giao thức, đảm bảo rằng mọi nỗ lực tấn công đều sẽ không thành công. Có nghĩa là, trên thực tế, tính bảo mật và tính toàn vẹn của hệ thống không bao giờ bị đe dọa, mặc dù vấn đề này được phân loại là nghiêm trọng.
Tuy nhiên, giống như trong trường hợp của Coconut, chúng tôi đã chủ động thực hiện các kiểm tra chữ ký bổ sung được Cure53 khuyến nghị trong tất cả các hàm liên quan trong bản phát hành 2024.13-magura. Mặc dù những kiểm tra này không bắt buộc để bảo mật luồng giao thức hiện tại, nhưng chúng đã tăng cường tính mạnh mẽ của mã và đảm bảo rằng những hàm này có thể được tái sử dụng một cách đáng tin cậy trong các bối cảnh khác. Cách tiếp cận này nhấn mạnh cam kết của chúng tôi trong việc duy trì các tiêu chuẩn bảo mật cao, cho cả hệ thống của chúng tôi và cho cộng đồng mã nguồn mở nói chung.
NYM-01-033 WP5: Giả mạo chữ ký của chương trình Pointcheval-Sanders (Nghiêm trọng)
Cure53 đã xác định được một lỗ hổng trong quá trình triển khai hàm ký của chúng tôi trong chương trình chữ ký Pointcheval-Sanders. Cụ thể, lỗ hổng phát sinh vì trong quá trình triển khai của chúng tôi, giá trị ngẫu nhiên h trong bộ chữ ký (h, s) không được chọn ngẫu nhiên. Do đó, nếu chúng tôi chỉ ký các thuộc tính công khai, chữ ký sẽ dễ bị làm giả.
Tuy nhiên, điều quan trọng cần nhấn mạnh là lỗ hổng làm giả chữ ký này không gây ra bất kỳ rủi ro nào trong bối cảnh của giao thức Coconut hoặc e-cash. Cả hai giao thức này dựa vào các thuộc tính riêng tư theo thiết kế, do đó sử dụng quá trình phát hành mù để tính toán chữ ký. Trong giao thức phát hành mù, việc sử dụng một cam kết đối với các thông báo như một đầu vào cho hàm băm đảm bảo rằng các bộ thông báo khác nhau sẽ tạo ra các giá trị duy nhất cho h. Kết quả là, lỗ hổng này chỉ xuất hiện nếu các giao thức Coconut hoặc e-cash chỉ được sử dụng vớiỉ các thuộc tính công khai, điều này không xảy ra trong trường hợp của mạng Nym. Do đó, rủi ro mà Cure53 xác định không áp dụng cho hệ thống của chúng tôi, vì các giao thức đang sử dụng vốn đã giảm thiểu vấn đề này.
NYM-01-042 WP5: Tổng hợp lỗi đến chữ ký eCash ngoại tuyến vô hiệu (Nghiêm trọng)
Vấn đề này tương tự như các vấn đề NYM-01-009 và NYM-01-014, trong đó hàm tổng hợp độc lập cho các chữ ký có thể tạo ra một chữ ký không hợp lệ nếu kẻ tấn công có thể thao túng các chữ ký một phần để tạo ra điểm vô cực. Tuy nhiên, trong cả hai giao thức Coconut và e-cash, quy trình xác minh đều từ chối rõ ràng bất kỳ chữ ký nào taok ra điểm vô cực, vì vậy vấn đề này không làm tổn hại đến bảo mật hoặc tính toàn vẹn của bất kỳ giao thức nào. Tuy nhiên, phù hợp với các hành động đã thực hiện để khắc phục các vấn đề NYM-01-009 và NYM-01-014, chúng tôi đã triển khai thêm các kiểm tra trong hàm tổng hợp để củng cố thêm mã nguồn và ngăn chặn mọi hành vi lạm dụng trong các bối cảnh khác (https://github.com/nymtech/nym/blob/nym-binaries-v2024.13-magura/CHANGELOG.md).
NYM-01-005 WP5: Không kiểm tra điểm vô cực để tiết lộ plaintext cho ElGamal (mức độ cao)
Việc triển khai hiện tại của Coconut và e-cash không sử dụng mã hóa ElGamal (cũng không được sử dụng trong quá trình kiểm toán). Thay vào đó, chúng tôi sử dụng các cam kết Pedersen hiệu quả hơn, không mang lại những rủi ro tương tự. Do đó, vấn đề liên quan đến ElGamal không gây ra bất kỳ rủi ro bảo mật nào trong hệ thống hiện tại của chúng tôi. Chúng tôi cũng xóa bỏ Coconut crate và do đó xóa lược đồ ElGamal.
Tổng kết
Chúng tôi muốn cảm ơn đội ngũ Cure53 vì chuyên môn và sự tận tâm của họ trong suốt quá trình kiểm toán. Chúng tôi cũng đánh giá cao sự hợp tác và tính chuyên nghiệp được thể hiện trong cả giai đoạn lập kế hoạch và thực hiện kiểm toán. Cam kết của chúng tôi đối với bảo mật vẫn là ưu tiên hàng đầu, và chúng tôi mong muốn tiếp tục hợp tác với các chuyên gia để duy trì các tiêu chuẩn cao nhất cho hệ sinh thái.