Năm 2001 đánh dấu cột mốc thời gian đầy thú vị đối với lĩnh vực mật mã học nói riêng và bảo mật thông tin nói chung, khi mà Tiêu chuẩn mã hóa tiên tiến (Advanced Encryption Standard - AES) - một thuật toán mã hóa khối mới đã được hoàn thiện, đồng thời giúp cho thuật toán mã hóa an toàn hiệu suất cao trở nên phổ biến và dễ tiếp cận hơn.
Được thiết kế để thay thế các thuật toán mật mã cũ hơn vốn đã bắt đầu cho thấy điểm yếu trong toán học và đồng thời dễ bị tổn thương trước sức mạnh tính toán ngày càng mạnh mẽ nằm trong tay những kẻ tấn công, có thể nói AES đã trở thành công cụ lấy lại quyền lực cho người dùng - những người đang phải cố gắng bảo vệ dữ liệu của họ trước các mối đẽ dọa ngày một gia tăng. Tất nhiên tin tặc cũng nhanh chóng nhận ra rằng các cuộc tấn công Brute Force nói chung và tấn công vào đặc điểm toán học của AES nói riêng đã không còn hiệu quả như trước và thay vào đó, chúng phải cần đến một cách tiếp cận mới.
Và chỉ một năm sau, hacker đã có lời đáp trả xứng đáng cho AES. Differential Fault Analysis (Phân tích lỗi khác biệt) hay còn được gọi tắt DFA, là một kỹ thuật tấn công được thiết kế để khôi phục các khóa mật mã từ ứng dụng bằng cách tiêm “lỗi” mật mã vào ứng dụng khi chạy, và quan sát những thay đổi trong hành vi của ứng dụng đó. Lỗi có thể được tiêm theo nhiều cách khác nhau, chẳng hạn như mức năng lượng khác nhau trong các thiết bị phần cứng hoặc thay đổi bit bộ nhớ trong phần mềm.
Ví dụ: Thẻ thông minh chứa bộ xử lý nhúng có thể phải chịu nhiệt độ cao, điện áp không được hỗ trợ hoặc ép xung quá cao, điện trường hay từ trường mạnh hoặc thậm chí bức xạ ion hóa và gây ảnh hưởng đến hoạt động của bộ xử lý. Bộ xử lý có thể bắt đầu xuất kết quả không chính xác do hỏng dữ liệu vật lý, điều này có thể giúp nhà phân tích mật mã suy ra các hướng dẫn mà bộ xử lý đang chạy hoặc trạng thái dữ liệu bên trong của nó là gì.
Những kẻ tấn công tiêm lỗi tại nhiều phần khác nhau của ứng dụng, cho đến khi chúng tìm thấy một nơi mà lỗi thay đổi dữ liệu đầu ra xuất hiện theo một cách cụ thể. DFA và một số phép toán có thể cho phép các khóa mật mã được phục hồi. Khi các khóa đó được phục hồi, mọi dữ liệu được mã hóa với chúng đều dễ bị tổn thương và có nguy cơ bị xâm phạm.
- Đã có 12.449 vụ vi phạm dữ liệu nghiêm trọng được ghi nhận trong năm 2018, tăng 424% so với năm 2017
Ban đầu, DFA là một cuộc tấn công chủ yếu chống lại các thiết bị phần cứng, nơi mà mã máy (machine code) thường không có sẵn để những kẻ tấn công có thể tiếp cận. Nhưng đối với trường hợp của phần mềm thì mọi chuyện lại đơn giản hơn nhiều, vì thông thường các khóa mật mã được hiển thị rõ ràng bên trong mã ứng dụng, do đó những công cụ như trình phân tách có thể dễ dàng hiển thị thông tin về chúng. Trong thời gian dài, nếu một đoạn mã đang được dùng để thực hiện ghi mã hóa, nó sẽ được giữ trong một môi trường an toàn, nơi những kẻ tấn công không thể dễ dàng tiếp cận mã ứng dụng để tìm các khóa đó.
Tuy nhiên điều này cũng đã thay đổi đáng kể, vì người tiêu dùng ngày nay sở hữu rất nhiều ứng dụng trên điện thoại di động, máy tính để bàn, TV thông minh và thậm chí cả ô tô. Các ứng dụng phần mềm cần được bảo vệ đối với các đoạn chương trình và khóa mật mã của chúng. Mã hóa Whitebox đã được giới thiệu vào năm 2002 để giải quyết mối quan tâm về vấn đề này, tức là cùng năm với bài báo về DFA đầu tiên được xuất bản.
Cụ thể, mã hóa Whitebox đã được giới thiệu để có thể cung cấp các phương thức triển khai mã hóa an toàn trong những ứng dụng mà kẻ tấn công có thể thao túng mã và dữ liệu theo ý muốn. Có thể hiểu nôm na mã hóa Whitebox là cách để có cùng một kết quả đầu ra cho một đầu vào nhất định như phương án triển khai mật mã thông thường, nhưng cách thức nó được thực hiện lại hoàn toàn khác với triển khai mật mã tiêu chuẩn. Điều này khiến kẻ tấn công gặp rất nhiều khó khăn trong việc nắm bắt được chuyện gì đang xảy ra.
Chính bởi những khó khăn gặp phải khi đối phó với mã hóa Whitebox trên các thiết bị phần cứng, những kẻ tấn công đã quyết định bắt đầu sử dụng DFA như một kỹ thuật chống lại mã hóa whitebox trong triển khai phần mềm.
DFA đang ngày càng trở nên phổ biến hơn. Các nhà nghiên cứu bảo mật đang nói nhiều hơn về những cuộc tấn công DFA tại các hội nghị, diễn đàn, họ tự tay tiến hành các cuộc tấn công DFA trên cả phần cứng và phần mềm rồi sau đó giải thích rõ từng bước. DFA không còn hoàn toàn là một cuộc tấn công với phạm vi giới hạn trong các học viện hoặc phòng thí nghiệm bảo mật cao cấp. Những cuộc tấn công DFA trong thế giới thực đang xảy ra ngày một dày đặc, và với sự phổ biến cũng như “vũ khí hóa” mã tấn công, tần suất của các cuộc tấn công DFA được báo cáo sẽ còn gia tăng hơn nữa trong tương lai.
Khi DFA đạt được những tiến bộ về tính hiệu quả cũng như mức độ phổ biến, bạn bắt buộc phải đảm bảo được rằng các biện pháp phòng vệ của mình vẫn có thể theo kịp và đáp ứng yêu cầu về bảo mật đối với các đoạn chương trình mã hóa trong ứng dụng. Tất nhiên cũng có một số bước bạn có thể thực hiện để đảm bảo rằng hệ thống của mình đủ sức chống lại các cuộc tấn công DFA.
Đầu tiên là phải đảm bảo rằng bạn đang sử dụng một phương thức triển khai mã hóa whitebox hiện đại, được thiết kế để bảo vệ chống lại DFA, cũng như đã được thử nghiệm trong việc chống lại các phiên bản mới nhất của hình thức tấn công này. Bởi vì các cuộc tấn công thường phát triển tinh vi theo thời gian. Điều quan trọng là bạn phải sử dụng những phương thức triển khai whitebox đủ hiện đại để theo kịp các cuộc tấn công vốn phát triển tinh vi và nhanh chóng qua từng ngày.
Thứ hai, bạn nên đảm bảo rằng ứng dụng của mình đang được bảo vệ bởi app shielding nhằm khiến kẻ tấn công gặp nhiều rắc rối hơn trong việc thực thi DFA ngay từ đầu. Các ứng dụng được thiết lập với obfuscation sẽ khiến kẻ tấn công gặp nhiều khó khăn hơn trong quá trình xác định xem đâu là vị trí thích hợp để tiêm lỗi, đồng thời ứng dụng cũng có thể phát hiện ra khi bị tấn công, và ngay lập tức hành động để ngăn chặn cuộc tấn công trước khi chúng tiến triển sang giai đoạn nguy hiểm hơn.