1 điểm bởi GN⁺ 2 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Certificate #5247 là chứng nhận CMVP cho Go Cryptographic Module và được đăng ký ở trạng thái Active theo tiêu chuẩn FIPS 140-3
  • Go Cryptographic Module là thư viện phần mềm cung cấp chức năng mật mã cho thư viện chuẩn Go và các ứng dụng Go khác, với mức bảo mật tổng thể là Level 1
  • Chứng nhận áp dụng khi vận hành ở approved mode, và Sunset Date được ghi là ngày 26 tháng 4 năm 2031
  • Lịch sử xác thực là Initial ngày 27 tháng 4 năm 2026, và phòng thử nghiệm là Lightship Security, Inc.
  • Nhà cung cấp là Geomys LLC, người phụ trách liên hệ là Filippo Valsorda, và tệp liên quan được cung cấp là Security Policy

Tổng quan chứng nhận

  • Certificate #5247 là mục chứng nhận trong Cryptographic Module Validation Program (CMVP) dành cho Go Cryptographic Module
  • Tiêu chuẩn là FIPS 140-3, trạng thái là Active, và mức bảo mật tổng thể được đăng ký là Level 1
  • Sunset Date được ghi là ngày 26 tháng 4 năm 2031
  • Lịch sử xác thực là Initial ngày 27 tháng 4 năm 2026, và phòng thử nghiệm là Lightship Security, Inc.

Thông tin mô-đun

  • Go Cryptographic Module là thư viện phần mềm cung cấp chức năng mật mã cho thư viện chuẩn Go và các ứng dụng Go khác
  • Module Type là Software, và Embodiment được ghi là MultiChipStand
  • Security Level Exceptions được đăng ký là Physical security: N/A, Non-invasive security: N/A

Điều kiện và giới hạn vận hành

  • Chứng nhận áp dụng khi vận hành ở approved mode
  • Với các SSP được tạo ra, ví dụ như khóa, được nêu rõ là không có bảo đảm cường độ tối thiểu
  • Với các SSP được nạp từ bên ngoài, ví dụ như khóa và chuỗi bit, hoặc các SSP được thiết lập là SSP nạp từ bên ngoài, được nêu rõ là không có bảo đảm bảo mật tối thiểu

Nhà cung cấp và tệp liên quan

  • Geomys LLC được đăng ký là nhà cung cấp, địa chỉ là 9450 SW Gemini Dr PMB 52960, Beaverton, OR 97008, United States
  • Người phụ trách liên hệ được ghi là Filippo Valsorda
  • Security Policy được cung cấp là tệp liên quan

1 bình luận

 
Ý kiến trên Lobste.rs
  • Đây là một hành trình khá dài. Có thể xem chi tiết trong bài viết năm ngoái, và một bài mới về chứng nhận cũng sẽ sớm được đăng
    Như thường lệ, nếu bạn không biết mình có cần FIPS 140-3 hay không thì có lẽ là không cần, nhưng nếu thực sự cần thì tôi khá chắc Go là một trong những cách dễ nhất và an toàn nhất để đạt được điều đó. Việc đặc biệt khó là vẫn tuân thủ các quy định của FIPS 140-3 mà đồng thời giữ nguyên mức độ bảo mật và sự tiện lợi vốn cung cấp cho những người dùng khác, nhưng tôi nghĩ họ đã làm khá tốt

    • Tôi đang xử lý các đợt triển khai bring-your-own-cloud quy mô lớn, nơi tuân thủ FIPS là bắt buộc trong một số môi trường khách hàng, nhưng đáng tiếc là hoàn toàn không dùng Go. Thay đổi này có thể trở thành động lực để áp dụng Go
  • Go chẳng phải dùng BoringSSL sao? Tôi tò mò không biết họ đã chứng nhận FIPS cho nó như thế nào

    • Không, đó là giải pháp trước đây. Cách mới là triển khai thuần Go, nên không cần CGO: https://go.dev/blog/fips140
    • Hiện tại, việc tuân thủ FIPS có thể thực hiện bằng cách dùng cây mã nguồn BoringSSL nhưng biên dịch theo OpenSSL. OpenSSL đang ở trạng thái tuân thủ, Red Hat làm như vậy trên RHEL và chúng tôi cũng dựa vào cách đó cho mọi workload. Về cơ bản nó giống như https://github.com/golang-fips/go
      Cách mới lần này là hoàn toàn native Go. Không còn là OpenSSL hay một đường vòng nào khác nữa, mà được giải quyết trực tiếp bằng thư viện chuẩn
  • Tôi tò mò không biết thực tế sẽ dẫn đến kết quả gì. Không rõ bây giờ Go có trở thành lựa chọn hấp dẫn hơn với một số công ty hay tổ chức hay không, hay đây thuần túy chỉ là thay đổi liên quan đến bảo mật

    • Về mặt bảo mật thì đây là một bước lùi, nhưng nó cho phép dùng trong một số môi trường chính phủ
    • Giờ đây các nhà thầu thuộc tổ hợp công nghiệp-quân sự Mỹ có thể tuyển thêm lập trình viên Go và cung cấp phần mềm dựa trên đó
    • Nhìn chung tôi thận trọng cho rằng đây gần như là điểm trừ cho bảo mật tổng thể. Vì bạn không thể dùng các mật mã hiện đại như (X)ChaCha20-Poly1305
    • Công ty chúng tôi cung cấp cả sản phẩm thương mại lẫn sản phẩm cho chính phủ, và với loại sau thì FIPS là yêu cầu bắt buộc. Phía Go phụ thuộc vào việc Red Hat xử lý đúng cách, và kết quả là tạo ra các binary có thể dùng trong mọi môi trường
  • Tốt đấy. Trước đây tôi từng triển khai bằng bản build FIPS Go của Red Hat, nhưng tôi luôn không thích việc để đáp ứng FIPS thì phải dùng một phiên bản khác cho toàn bộ stack Go
    Nhiều sản phẩm bán cho chính phủ Mỹ bị yêu cầu dùng FIPS, và vì không muốn tạo riêng phiên bản FIPS và không-FIPS, điều này có ý nghĩa lớn trong việc giúp các công ty có thể áp dụng Go