Mạng sử dụng các thuật toán mã hoá theo nhiều cách: trong quá trình xác nhập người sử dụng (user), để bảo mật dữ liệu, để đảm bảo tính toàn vẹn của thông tin… Trên thực tế, chúng ta sử dụng mã hoá rất nhiều mà đôi khi không hề biết tới sự hiện diện của chúng.
Mã hoá càng phát triển, những nhận thức sai lầm xung quanh nó xuất hiện ngày càng nhiều. Đôi khi, sự nhận thức sai lệch cản trở chúng ta tiếp cận những lợi ích thiết thực mã hoá đem lại; sử dụng sai công cụ để thực thi một công việc bảo mật nào đó và đặt doanh nghiệp cuả mình trước những nguy cơ do các dữ liệu nhạy cảm và quan trọng không được bảo vệ ở mức cần thiết.
Sai lầm thứ nhất: Bảo mật song hành với sự toàn vẹn dữ liệu
Rất nhiều sản phẩm bảo mật có cả hai tính năng mã hoá dữ liệu và đảm bảo tính toàn vẹn của dữ liệu. Trên thực tế, nhiều thuật toán mã hoá được sử dụng để đảm bảo tính nguyên vẹn của thông tin. Tuy nhiên, mã hoá - quá trình xáo trộn dữ liệu để chúng không thể sắp xếp lại nếu không có “chìa khoá” hoặc cơ chế giải mã- lại không bảo đảm 100% tính toàn vẹn của thông tin.
Không chỉ bạn mà nhiều nhà quản trị thường có quan niệm sai rằng chỉ cần mã hoá là có thể đảm bảo được tính toàn vẹn của thông tin. Ngay cả khi dữ liệu đã được xáo trộn và không thể giải mã nếu thiếu “chìa khoá”, dữ liệu vẫn đơn thuần chỉ là những dòng “bit”. Trong trường hợp nắm bắt được dữ liệu (đã được mã hoá), tin tặc có thể chèn thêm nhiều bit mới hoặc thay đổi một số ký tự từ 1 thành 0 và ngược lại là đã làm dữ liệu thay đổi. Nếu tin tặc nắm được cấu trúc của dữ liệu, chúng sẽ chèn thêm những bit mới vào các vị trí thích hợp và khi đó, người nhận vẫn nhận được những dữ liệu có ý nghĩa nhưng bị sai lệch về nội dung kinh tế.
Vấn đề đã khá rõ ràng: cho cả tính bảo mật và tính toàn vẹn dữ liệu, bạn phải tích hợp cả mã hoá và các thuật toán bảo đảm tính toàn vẹn dữ liệu.
Sai lầm thứ 2: Checksum bảo vệ dữ liệu trong khi vận chuyển
Các hệ thống truyền thông kỹ thuật số trước đây cần có một cơ chế để xác thực tính nguyên vẹn của dữ liệu nhận được và dữ liệu gửi đi. Giải pháp cần có cơ chế tính tổng (checksum) thông qua thuật toán “băm” kiểm tra dư thừa dữ liệu theo vòng lặp (cyclic redundancy check- CRC).
Các thuật toán “băm” sản sinh ra những chuỗi ký tự có độ dài cố định từ các gói dữ liệu có kích thước thay đổi. Cùng một thuật toán nhưng áp dụng với những dữ liệu khác nhau sẽ mang lại kết quả khác nhau. Như vậy, một checksum sẽ được tính toán và được gửi đi cùng dữ liệu. Ngay sau khi dữ liệu được tiếp nhận, một checksum mới cũng sẽ được khởi tạo và được đối chiếu với checksum đã được gửi đi. Nếu hai giá trị trùng khớp, tính toàn vẹn của dữ liệu được đảm bảo trong quá trình truyền thông. Nếu hai giá trị không trùng khớp, dữ liệu đã bị thay đổi.
Checksum có thể là câu trả lời về tính toàn vẹn của dữ liệu trong quá trình vận chuyển nhưng đây không phải là một giải pháp hoàn hảo. Nguyên nhân là các checksum được “sản xuất” để đối phó với nguy cơ mất mát dữ liệu ngẫu nhiên (không phải do tin tặc). Với chủ ý gây hại, một tin tặc trình độ cao có thể sử dụng một dữ liệu giả, tính toán giá trị checksum cho dữ liệu giả và gửi tất cả tới người nhận. Trong trường hợp người nhận và người gửi đều không nhận biết và sẽ “không có ý kiến gì”.
Để đảm bảo tính toàn vẹn dữ liệu thực sự, các thuật mã hoá như mã hoá băm, mã xác nhận thông điệp (message authentication code- MAC) và chữ ký điện tử có thể cùng được triển khai đồng loạt. Về cơ bản, những biện pháp này sử dụng các hàm một chiều, nghĩa là dữ liệu không thể bị giải mã ngay cả khi đã biết khoá để mã hoá nó. Cách thức bảo đảm tính toàn vẹn dữ liệu này còn được biết tới như là “các thuật toán bảo mật và bảo đảm tính toàn vẹn dữ liệu”.
Người sử dụng không bị bắt buộc chọn lựa thuật đảm bảo tính toàn vẹn dữ liệu nhưng họ phải ra quyết định nên sử dụng sản phẩm nào. Trong quá trình thẩm định tính bảo mật của các sản phẩm, bạn cũng cần biết cơ chế mã hoá và bảo mật của sản phẩm.
Các thuật mã hoá bảo mật và đảm bảo tính toàn vẹn dữ liệu
Mã xác nhận thông điệp (MAC)
Checksum được khởi tạo đi kèm một “chìa khoá” bí mật. Cũng với khoá này, người nhận khởi tạo checksum thứ hai để so sánh với checksum thứ nhất. Chính vì vậy, chỉ những đối tượng người nhận (sở hữu bản sao chìa khoá) mới có thể xác minh tính toàn vẹn của dữ liệu. Bởi khoá là duy nhất đối với người gửi, một mã xác nhận thông điệp (MAC) cũng có thể cung cấp giải pháp xác nhận.
Thuật toán băm (Hash)
Thuật toán có thể chuyển đổi bất cứ thông điệp (có độ dài bất kỳ) thành một chuỗi các ký tự có độ dài cố định. Căn cứ theo thuộc tính, thuật toán băm không khác nhiều hình thức “tóm lược thông điệp” (message digest). Đương nhiên, tính năng hash sẽ không mang lại kết quả giống nhau sau khi xử lý những đầu vào (dữ liệu) khác nhau. Khi thuật toán có sử dụng tới một khoá, tính toàn vẹn dữ liệu có thể được đảm bảo nếu khoá được giữ bí mật. Ngoài ra, do bản chất một chiều của khoá, thuật toán băm thường đượ sử dụng để giấu những thông tin nhạy cảm trong cơ sở dữ liệu hoặc các tệp tin (thường là mật khẩu).
HMAC
Một biến thể của MAC sử dụng cả thuật toán băm và một chìa khoá. MD5 và SHA1 là những ví dụ của HMAC. Người sử dụng có thể cả hai biện pháp trong lúc lên cấu hình cho IPSec (giao thức Internet bảo mật). HMAC được sử dụng để đảm bảo tính toàn vẹn dữ liệu trong các kênh truyền thông, bao gồm cả các lớp socket bảo mật (SSL) hoặc bảo mật các lớp giao vận (TLS).
Chữ ký số (Digital Signature)
Sử dụng một cặp khoá công cộng và cá nhân (public/private). Người gửi sử dụng khoá bí mật (cá nhân) để mã hoá thông điệp. Người nhận tự tạo khoá giải mã (khoá công cộng) thông điệp nhận và so sánh kết quả để đảm bảo tính toàn vẹn của dữ liệu. Khoá công cộng đều có thể được tạo bởi bất kỳ ai, tuy nhiên bất cứ ai cũng có thể xác nhận tính toàn vẹn của dữ liệu. Chữ ký số được sử dụng nhiều trong email.
Sai lầm thứ 3: SSL chỉ đảm bảo dữ liệu giữa trình duyệt và một website
Các lớp socket bảo mật (SSL) được sử dụng để bảo mật thông tin truyền tải giữa các website và các trình duyệt web (web browser). Đa phần người sử dụng sẽ không mua hàng trên một website nếu website đó chưa được cấp “chứng chỉ SSL”. Trong khi đó, không nhiều người sử dụng và cả những người triển khai SSL chưa ý thức hết vai trò của SSL. Trên thực tế, SSL mang lại nhiều lợi ích hơn chỉ đơn thuần là một giải pháp cho thương mại điện tử.
Bạn nên biết rằng SSL bảo vệ nhiều thứ chứ không phải chỉ luồng dữ liệu vận chuyển qua lại giữa các website và các trình duyệt web.”Chứng chỉ SSL” khẳng định trình duyệt đã hướng người truy nhập tới đúng website của một công ty đã được đảm bảo. Đại diện chứng thực trung gian là các công ty kiểu VeriSign (CA- Certificate Authority). Nếu thiếu đi công đoạn kiểm tra, người sử dụng có thể bị lừa gửi những thông tin nhạy cảm như số thẻ tín dụng tới những website giả mạo (hình thức tấn công phissing).
SSL còn được sử dụng để xác minh và bảo vệ dữ liệu trao đổi giữa những website phi thươnng mại và trình duyệt, giữa trình duyệt và tường lửa và giữa website với các cơ sở dữ liệu đầu cuối (back-end).
Ngoài ra, các hình thức chuyển khoản tiền tệ không phải là dạng liên lạc duy nhất SSL đóng vai trò bảo vệ. Để triển khai cơ chế xác minh mang tính tương hỗ này, mỗi khách hàng cần được cấp chứng chỉ SSL riêng và máy chủ web (web server) cũng cần được lên cấu hình đòi hỏi xác minh khách truy nhập. Đây có lẽ là giải pháp tối ưu nhất, ví dụ đảm bảo chỉ những đối tượng sử dụng được phép mới có thể tiếp cận máy chủ Outlook Web Acccess (OWA). Một khi máy chủ OWA được lên cấu hình sử dụng SSL, hãy triển khai chính sách ứng dụng SSL ở cả hai đầu- máy chủ và máy khách. Chính thủ tục này đảm bảo rằng chỉ những người sử dụng được cấp chứng chỉ SSL mới có khả năng truy nhập vào hệ thống máy chủ OWA được phép (cũng thông qua cơ chế cấp chứng chỉ SSL). Mọi luồng dữ liệu trao đổi giữa máy chủ và máy khách đều đã được mã hoá.
Mã hoá là giải pháp tốt để bảo vệ các quá trình truyền thông và dữ liệu quan trọng. Tuy nhiên, nếu không nhận thức được những vấn đề kể trên, bạn sẽ không tận dụng hết những lợi ích mà mã hoá có thể đem lại. Nguy hiểm hơn, thực trạng không hiểu biết thấu đáo có thể khiến bạn chấp nhận sống trong môi trường “an ninh giải tạo”.
Trịnh Đức Cường