• Thứ Sáu, 14/04/2017 22:38 (GMT+7)

    Các ứng dụng bảo vệ dữ liệu người dùng như thế nào?

    Bùi Lê Duy
    Các ứng dụng mà chúng ta thường sử dụng hằng ngày đảm bảo cho dữ liệu cá nhân không bị thất thoát hoặc rơi vào tay kẻ xấu bằng một quy trình gọi là mã hóa.

    Trong thập kỷ vừa qua đã xảy ra nhiều vụ tấn công mạng mà đích ngắm là dữ liệu về thông tin cá nhân của người dùng, nên mã hóa hiện đang là công cụ tốt nhất để chống lại tệ nạn này. Các chuyên gia bảo mật ủng hộ cho giải pháp mã hóa đầu cuối, khiến kẻ xấu cũng như bên thứ ba không thể truy cập và xem được nội dung thực sự của dữ liệu.

    Tuy nghe đến nhiều nhưng chúng ta có hiểu rõ thế nào là mã hóa hay không? Bài viết phần nào làm sáng tỏ hơn công nghệ này.

    Mã hóa là gì?
    Mã hóa ngăn không cho truy cập trái phép vào dữ liệu của bạn, từ email cho đến tin nhắn WhatsApp và thông tin tài chính, bằng cách giữ cho đường truyền dữ liệu an toàn giữa các bên liên quan. Để làm vậy, công nghệ mã hóa "biến đổi" dữ liệu được gửi từ thiết bị này đến thiết bị kia thành một đoạn mã dài dòng, không thể đọc được nếu kẻ xấu có lấy được dữ liệu ấy.

    Khi dữ liệu được mã hóa, người gửi và người nhận là hai đối tượng duy nhất chỉ có thể giải mã được thông tin "biến đổi" ấy thành nguyên bản nhờ vào các khóa (key), mà các khóa này chỉ có người dùng liên quan mới có được.

    Ví dụ, với ứng dụng WhatsApp, mỗi một tin nhắn đều có hệ khóa và key riêng biệt và chỉ có người gửi và người nhận mới truy cập được những key ấy mà thôi. Điều này giúp người dùng tránh được những bên tò mò muốn xem lén nội dung. Ngoài người gửi và người nhận là có thể đọc được nội dung, ngay cả WhatsApp cũng không thể giải mã được nội dung ấy. Giải pháp này gọi là mã hóa đầu cuối.

    Nói đơn giản hơn, bạn hãy hình dung mã hóa giống như là dịch thông tin của bạn thành một thứ ngôn ngữ mà chỉ có bạn và người nhận hiểu được ngôn ngữ ấy mà thôi. Điều quan trọng hơn cả là tội phạm mạng không thể đọc được.

    An toàn, nhưng không hoàn toàn bảo mật

    Hầu hết ứng dụng phổ biến đảm bảo lưu giữ khóa mã hóa người dùng sao cho an toàn nhất có thể. Nhưng không phải ứng dụng nào cũng có thể giữ key của người dùng ở nơi hoàn toàn an toàn. Nhiều ứng dụng có tính năng mã hóa dữ liệu nhưng nếu người dùng không khóa ứng dụng bằng mật khẩu hay mã PIN thì bất kỳ ai có được thiết bị ấy cũng có thể truy cập vào ứng dụng và sẽ có thể thấy được tin nhắn gốc, không mã hóa. Do vậy, nhiều hệ điều hành đưa ra tính năng mã hóa mọi thứ trên thiết bị. Điều này giúp chống lại tệ nạn trộm cắp điện thoại để truy cập dữ liệu.

    Nếu thiết lập đúng quy cách, tin tặc có thể phải mất đến hàng tỷ năm mới có thể bẻ khóa được nếu sử dụng kỹ thuật tấn công Brute Force (hay còn gọi là phương pháp vét cạn). Đó là vì mã mã hóa sử dụng những thuật toán toán học phức tạp và các chuỗi số dài rất khó để giải mã.

    Tấn công Brute Force là phương pháp mà tin tặc thường dùng, bằng cách cố kết hợp nhiều mật khẩu hoặc khóa mã hóa cho đến khi nào tìm đúng được khóa/mật khẩu. Chúng thường thực hiện tấn công này bằng một phần mềm tấn công để quét các kết hợp này.

    Tuy nhiên, có vài loại mã hóa khác nhau, mỗi loại có các mức hiệu quả khác nhau, được đo bằng "bit". Số lượng bit trong mã hóa càng cao thì theo lý thuyết, càng khó cho tin tặc bẻ khóa được.

    Bit là gì

    Một khóa được xem là low-bit (có ít bit) là khóa có ít kết hợp hơn, nên dễ bẻ khóa hơn. Ví dụ, một khóa 5-bit có 32 khả năng kết hợp, khóa 6-bit có 64 kết hợp, khóa 7-bit có 128 kết hợp… Một khóa 10-bit có một nghìn kết hợp, khóa 20-bit có 1 triệu kết hợp, 30-bit 1 tỉ kết hợp.

    Mã hóa càng phức tạp thì độ khó bẻ khóa càng cao và càng khó giải mã được dữ liệu. Nhưng điều này không có nghĩa là không thể giải mã được, điều quan trọng là yếu tố thời gian và năng lực xử lý của máy tính.

    Giả sử một tin tặc có một máy tính có thể chạy thử 1 tỷ khóa mỗi giây và sử dụng kỹ thuật tấn công Brute Force để cố thử mọi kết hợp khả dĩ. Điều này có nghĩa là chúng có thể bẻ khóa trong vòng 1 giây. Nhưng với khả năng đó, chúng phải mất 1 tỷ giây (tương đương 34 năm) để bẻ khóa một khóa 60-bit bởi vì mỗi 30 bit thêm vào sẽ khiến chúng khó khăn hơn 1 tỷ lần.

    Một cơ quan tình báo như NSA của Mỹ có thể bẻ khóa 60-bit nhờ hệ thống siêu máy tính, nhưng một khóa 90-bit thì khó hơn 1 tỷ lần, còn khóa 120-bit hầu như không thể bẻ được với hạ tầng hiện tại.

    Hãy xem hầu hết ứng dụng Android, Apple và Windows đều sử dụng khóa mã hóa ít nhất là 128-bit AES (Advanced Encryption Standard), là thuật toán mã hóa chuẩn của chính phủ Mỹ cho mã hóa dữ liệu. Nên một khóa mã hóa 128-bit sẽ có 300 và 35 số 0 theo sau kết hợp, hoàn toàn an toàn. Thậm chí, với những dữ liệu nhạy cảm cao, chính phủ Mỹ còn yêu cầu mã hóa 192-bit và 256-bit.

    Bharat Mistry, tư vấn viên về bảo mật của Trend Micro, giải thích rõ hơn: "Bạn phải cần 50 siêu máy tính và khoảng 3,4x1.038 năm để bẻ khóa một mã hóa 256-bit."

    Nhưng điều trên không có nghĩa là mọi mã hóa là an toàn tuyệt đối bởi vì lỗi vẫn thuộc về con người. Mã hóa phát triển không tốt cũng vẫn có thể bẻ được vì những lỗi trong lập trình có thể dễ dàng khiến người dùng tin rằng mình được an toàn, mà thực ra là không. Ví dụ, các phương pháp mã hóa tự tạo hiếm khi đáp ứng được các tiêu chuẩn chung.

    Giữ an toàn

    Lỗi do yếu tố con người, tấn công từ bên trong và thiết lập bảo mật kém luôn là thách thức không nhỏ đối với những ai làm bảo mật CNTT, vì họ phải đối diện với việc phát triển công nghệ mã hóa phức tạp. Theo Mistry, vấn đề lớn nhất với mã hóa là bản thân khóa mã hóa, vì nó cần được chia sẻ giữa người gửi và người nhận. Mặc dù rất khó cho kẻ xấu định vị được khóa nhưng vẫn có vấn đề rủi ro nếu kẻ xấu có được khóa. Các nghiên cứu bảo mật hiện thời tập trung vào các kỹ thuật mới để không yêu cầu người dùng gửi khóa bảo mật cho mọi bên liên quan, mà một trong những kỹ thuật này được gọi là giao thức zero knowledge proof.

    Tuy chưa được sử dụng rộng rãi nhưng các chuyên gia dự kiến giao thức này sẽ trở nên phổ biến trong tương lai. Còn ở tương lai xa, đó có thể là khả năng giấu dữ liệu bên trong DNA.

    Nguồn: Wired