Việc Git 3.0 chuyển sang SHA-256 có thể mang lại nhiều phiền phức hơn là bảo mật

Git 3.0 dự kiến sẽ dùng SHA-256 làm thuật toán hash mặc định, nhưng cú chuyển mình này có thể khiến cả hệ sinh thái nhức đầu mà chẳng thu lại mấy lợi ích bảo mật thực tế.
Theo bài viết từ GitButler, bản Git 3.0 sắp tới sẽ mang đến một breaking change (thay đổi gây đứt gãy) mà ít lập trình viên nào sẵn sàng đón nhận. Từ năm 2005, Git đã dùng SHA-1 để đánh mã định danh cho commit và file. Đến năm 2017, các nhà nghiên cứu đã chứng minh khả năng tấn công đụng độ (collision) SHA-1 trên lý thuyết. Điều này khiến đội ngũ phát triển Git quyết định lên kế hoạch chuyển sang dùng SHA-256 mặc định.
Vì sao lại quan trọng: Đổi thuật toán hash mặc định sẽ làm hỏng tính tương thích của hàng loạt công cụ, script và repo hiện có. Trên thực tế, việc vô tình xảy ra đụng độ SHA-1 gần như là không thể về mặt toán học. Bạn sẽ cần khoảng 1,4 triệu tỷ tỷ (1.4 septillion) file ngẫu nhiên trong cùng một dự án để vô tình dính một vụ đụng độ. Ngay cả các cuộc tấn công có chủ đích nhằm thay thế file hiện có bằng mã độc cũng vẫn ngoài tầm với. Việc nâng cấp này sửa một lỗ hổng trên lý thuyết, nhưng lại tạo ra rắc rối thật trong thực tế.
Tóm gọn lại: SHA-1 đúng là có điểm yếu mật mã học, nhưng code của bạn thực ra chẳng gặp nguy hiểm gì đâu.
Từ giờ đến lúc Git 3.0 chính thức ra mắt, kiểu gì nỗi lo âm thầm này cũng sẽ biến thành những tranh luận gay gắt.
Nguồn
- Git 3.0 and SHA-256 — https://blog.gitbutler.com/git-3-sha-256
- Hacker News Discussion — https://news.ycombinator.com/item?id=49924179

