SHA-1 là gì?
SHA trong SHA-1 là viết tắt của Thuật toán băm an toànvà, đơn giản, bạn có thể nghĩ nó như là một loại vấn đề toán học hay phương pháp xáo trộn dữ liệu được đưa vào đó. Được phát triển bởi NSA Hoa Kỳ, đây là một thành phần cốt lõi của nhiều công nghệ được sử dụng để mã hóa các truyền dẫn quan trọng trên internet. Các phương thức mã hóa phổ biến SSL và TLS, mà bạn có thể đã nghe nói đến, có thể sử dụng hàm băm như SHA-1 để tạo các chứng chỉ đã ký mà bạn thấy trong thanh công cụ của trình duyệt.
Đó là rất nhiều thông tin kỹ thuật, nhưng để đặt nó đơn giản: một băm không giống như mã hóa, vì nó được sử dụng để xác định nếu một tập tin đã thay đổi.
Công nghệ này ảnh hưởng đến tôi như thế nào?
Giả sử bạn cần truy cập trang web riêng tư. Ngân hàng, email của bạn, ngay cả tài khoản Facebook của bạn - tất cả đều sử dụng mã hóa để giữ dữ liệu bạn gửi cho họ riêng tư. Trang web chuyên nghiệp sẽ cung cấp mã hóa bằng cách lấy chứng chỉ từ cơ quan đáng tin cậy - bên thứ ba, được tin cậy để đảm bảo rằng mã hóa ở cấp độ, riêng tư giữa trang web và người dùng và không bị bất kỳ bên nào theo dõi. Mối quan hệ này với bên thứ ba, được gọi là Tổ chức phát hành chứng chỉ, hoặc là CA, là rất quan trọng, vì bất kỳ người dùng nào cũng có thể tạo chứng chỉ "tự ký" - thậm chí bạn có thể tự thực hiện trên máy chạy Linux với SSL mở. Symantec và Digicert là hai công ty CA được biết đến rộng rãi.
Hãy xem qua một kịch bản lý thuyết: How-To Geek muốn tiếp tục đăng nhập vào phiên của người dùng một cách riêng tư bằng mã hóa, vì vậy nó đề xuất một CA như Symantec với một yêu cầu đăng kí chứng chỉ, hoặc là CSR. Họ tạo ra một khóa công khai và khóa riêng để mã hóa và giải mã dữ liệu được gửi qua internet. Yêu cầu CSR gửi khóa công khai tới Symantec cùng với thông tin về trang web. Symantec kiểm tra khóa chống lại hồ sơ của nó để xác minh rằng dữ liệu không thay đổi bởi tất cả các bên, bởi vì bất kỳ thay đổi nhỏ nào trong dữ liệu làm cho hàm băm hoàn toàn khác nhau.
Bởi vì băm dễ giám sát và không thể (một số sẽ nói “khó”) để đảo ngược, chữ ký băm chính xác, được xác minh có nghĩa là chứng chỉ và kết nối có thể được tin cậy và dữ liệu có thể được đồng ý gửi mã hóa từ đầu đến cuối. Nhưng nếu băm không thực sự độc đáo?
Một cuộc tấn công va chạm là gì, và nó có thể xảy ra trong thế giới thực?
Bạn có thể đã nghe nói về "Vấn đề sinh nhật" trong toán học, mặc dù bạn có thể không biết nó được gọi là gì. Ý tưởng cơ bản là nếu bạn thu thập một nhóm người đủ lớn, rất có thể là hai hoặc nhiều người sẽ có cùng ngày sinh. Cao hơn bạn mong đợi, trên thực tế, đủ để nó có vẻ giống như một sự trùng hợp kỳ lạ. Trong một nhóm nhỏ với 23 người, có 50% cơ hội hai người sẽ chia sẻ sinh nhật.
Tìm các hash phù hợp trong hai tệp được gọi là va chạm va chạm. Ít nhất một cuộc tấn công va chạm quy mô lớn được biết là đã xảy ra đối với băm MD5. Nhưng vào ngày 27 tháng 2 năm 2017, Google đã công bố SHAttered, vụ va chạm được chế tạo đầu tiên cho SHA-1. Google có thể tạo một tệp PDF có cùng giá trị SHA-1 như một tệp PDF khác, mặc dù có nội dung khác nhau.
SHAttered được thực hiện trên một tập tin PDF. PDF là một định dạng tệp tương đối lỏng lẻo; rất nhiều thay đổi nhỏ, mức bit có thể được thực hiện mà không ngăn người đọc mở nó hoặc gây ra bất kỳ sự khác biệt rõ ràng nào. Các tệp PDF cũng thường được sử dụng để phân phối phần mềm độc hại. Mặc dù SHAttered có thể hoạt động trên các loại tệp khác, như ISO, chứng chỉ được chỉ định cứng nhắc, khiến cho khả năng tấn công đó khó xảy ra.
Vậy cuộc tấn công này sẽ dễ dàng như thế nào? SHAttered được dựa trên một phương pháp được Marc Stevens phát hiện vào năm 2012, yêu cầu trên 2 ^ 60,3 (9,23 nghìn tỷ) hoạt động SHA-1 - một con số đáng kinh ngạc. Tuy nhiên, phương pháp này vẫn hoạt động ít hơn 100.000 lần so với yêu cầu để đạt được kết quả tương tự với lực lượng vũ phu. Google nhận thấy rằng với 110 card đồ họa cao cấp hoạt động song song, sẽ mất khoảng một năm để tạo ra một vụ va chạm. Việc thuê thời gian tính toán này từ Amazon AWS sẽ tốn khoảng 110.000 đô la. Hãy nhớ rằng khi giá giảm cho các bộ phận máy tính và bạn có thể nhận được nhiều quyền lực hơn cho ít hơn, các cuộc tấn công như SHAttered trở nên dễ dàng hơn để kéo ra.
110.000 đô la có thể có vẻ như rất nhiều, nhưng nó nằm trong phạm vi khả năng chi trả của một số tổ chức - có nghĩa là những người thực thụ cuộc sống thực có thể giả mạo chữ ký tài liệu kỹ thuật số, can thiệp vào các hệ thống sao lưu và kiểm soát phiên bản như Git và SVN.
May mắn thay, có những yếu tố giảm thiểu ngăn chặn các cuộc tấn công như vậy. SHA-1 hiếm khi được sử dụng cho chữ ký số nữa. Tổ chức phát hành chứng chỉ không còn cung cấp chứng chỉ được ký với SHA-1 và cả Chrome và Firefox đã bỏ hỗ trợ cho họ. Bản phân phối Linux thường phát hành thường xuyên hơn một lần mỗi năm, khiến cho kẻ tấn công không thể tạo ra một phiên bản độc hại và sau đó tạo ra một đệm để có cùng một mã băm SHA-1.
Mặt khác, một số cuộc tấn công dựa trên SHAttered đã xảy ra trong thế giới thực. Hệ thống điều khiển phiên bản SVN sử dụng SHA-1 để phân biệt các tập tin. Tải lên hai tệp PDF có băm SHA-1 giống nhau vào một kho lưu trữ SVN sẽ làm cho nó bị hỏng.
Làm thế nào tôi có thể bảo vệ bản thân khỏi các cuộc tấn công SHA-1?
Không có nhiều người dùng điển hình làm. Nếu bạn đang sử dụng tổng kiểm tra để so sánh tệp, bạn nên sử dụng SHA-2 (SHA-256) hoặc SHA-3 thay vì SHA-1 hoặc MD5. Tương tự, nếu bạn là nhà phát triển, hãy đảm bảo sử dụng các thuật toán băm hiện đại hơn như SHA-2, SHA-3 hoặc bcrypt. Nếu bạn lo ngại rằng SHAttered đã được sử dụng để cung cấp cho hai tệp riêng biệt cùng một mã băm, Google đã phát hành một công cụ trên trang web SHAttered có thể kiểm tra cho bạn.
Tín dụng hình ảnh: Lego Firefox, nhiều băm, xin vui lòng không làm tổn hại đến tác giả web, Google.