Đinh Gia Khánh
20-10-2008, 01:12 PM
Có rất nhiều thông tin mà chúng ta không muốn người khác biết khi gửi đi như: thông tin về Credit-Card, thông tin về kinh doanh của công ty, thông tin về tài khoản cá nhân, thông tin về cá nhân như số chứng minh thư, số thẻ...
Các thông tin bí mật được cung cấp cho các máy tính quan mạng Internet bằng nhiều phương thức khác nhau. Một cách bảo mật đơn giản nhưng minh bạch nhất là lưu các thông tin bí mật trên các bộ nhớ có thể xoá được (Removable Storage) như đĩa mềm. Tuy nhiên dạng bảo mật phổ biến nhất vẫn là dựa vào quá trình mã hoá dữ liệu (Encryption). Với quá trình mã hoá như vậy, chỉ có những người hoặc máy tính có “chìa khoá” (Key) mới giải mã được các thông tin này.
Quá trình mã hoá trong máy tính dựa vào khoa học về mật mã (Cryptography) đã được con người sử dụng từ lâu đời. Trước thời đại số hoá, người sử dụng mật mã nhiều nhất vẫn là chính phủ, chủ yếu trong mục đích quân sự. Hầu hết các phương pháp mã hoá được dùng hiện nay dựa vào các máy tính, đơn giản là do các mã do con người sinh ra rất dễ bị phá bởi công cụ máy tính.
Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại sau:
• Mã hoá với khoá đối xứng (Symmetric-key Encryption)
• Mã hoá với khoá công khai (Public-key Encryption)
Khoá đối xứng (Symmetric Key)
Trong phương pháp mã hoá với khoá đối xứng, mỗi máy tính có một khoá bí mật (dạng mã) dùng để mã hoá các gói thông tin trước khi chúng được gửi qua mạng tới các máy tính khác. Phương pháp mã hoá với khoá đối xứng đòi hỏi người sử dụng phải xác định được những máy tính nào đang liên lạc trao đổi thông tin với nhau để cài đặt khoá này trên mỗi máy.
Về cơ bản, mã hoá với khoá đối xứng giống như việc tạo một mã bí mật mà cả hai máy tính liên lạc với nhau phải cùng biết để giả mã các thông tin đã được mã hoá. Các mã này sẽ cung cấp khoá cho quá trình giải mã các thông điệp.
Ví dụ, người sử dụng có thể tạo một thông điệp đã mã hoá và gửi cho một người khác trong đó mỗi chữ cái đã bị thay thế bởi một chữ khác đứng sau nó hai vị trí trong bảng chữ cái. Khi đó chữ cái “A” trở thành “C” và “B” trở thành “D”. Để người nhận hiểu được nội dung thông điệp, người gửi phải thông báo cho người nhận biết được khoá là “Mỗi chữ cái đã được thay bằng chữ cái khác sau nó 2 vị trí trong bảng chữ cái”. Người nhận dùng khoá này để giải mã nội dung thông điệp trong khi những người khác thấy nội dung thông điệp là vô nghĩa.
Hệ Thống Chống Spam Bài !
Khoá công khai (Public Key)
Phương pháp mã hoá công khai là sự phối hợp giữa một khoá riêng (Private Key) và một khoá công khai (Public Key). Khoá riêng chỉ được biết bởi mỗi máy tính trong khi khoá công khai được máy tính này cung cấp cho các máy tính khác giao tiếp với nó. Để giải mã một thông điệp đã mã hoá, máy tính nhận thông điệp phải dùng khoá công khai được cung cấp bởi máy tính gửi thông điệp và khoá riêng của nó. Công cụ dùng phổ biến trong mã hoá với khoá công khai được gọi là PGP (Pretty Good Privacy) cho phép mã hoá mọi thứ.
Để thực hiện mã hoá công khai trên quy mô lớn như bảo mật Web Server đòi hỏi tiến hành nhiều cách khác nhau. Điều này chính là nguyên nhân ra đời của chứng thực số (Digital Certificate). Digital Certificate thực chất là một Bit thông tin chỉ ra rằng Web Server được hoàn toàn tin tưởng (Trust) bởi đối tượng độc lập gọi là Certificate Authority. Certificate Authority được coi như đối tượng trung gian mà cả hai máy tính đều tin tưởng. Khi đó mỗi máy tính sẽ cung cấp các khoá công khai cho máy tính kia.
Việc tiến hành mã hoá khoá công khai gọi là Secure Sockets Layer (SSL), được phát minh bởi Netscape. SSL là một giao thức bảo mật trên Internet sử dụng bởi các trình duyệt và các Web Server để truyền tải các thông tin nhạy cảm cần bảo mật. Giờ đây SSL là một phần của giao thức bảo mật toàn phần Transport Layer Security (TLS).
Trong các trình duyệt, người sử dụng có thể thấy rõ khi nào họ dùng giao thức bảo mật (Security Protocol) theo hai cách: khi trên cửa sổ gõ địa chỉ (Address Bar) của trình duyệt “http” được thay thế bới “https” và biểu tượng khoá móc trên thanh trạng thái (Status Bar) của trình duyệt.
Mã hoá khoá công khai được sử dụng trên rất nhiều máy tính và hầu hết các hệ thống đều kết hợp giữa khoá công khai và khoá đối xứng. Khi hai máy tính bắt đầu một phiên (Session) làm việc, một máy tính sẽ tạo ra khoá đối xứng và dùng phương pháp mã hoá khoá công khai gửi nó cho máy tính kia. Khi đó hai máy tính này có thể dùng mã hoá khoá đối xứng để trao đổi thông tin với nhau. Khi phiên làm việc kết thúc, mỗi máy tính lại loại bỏ khoá đối xứng đã được dùng trong phiên làm việc này. Ở các phiên làm việc sau, khoá mới sẽ lại được tạo ra và quá trình lại lặp lại như trên.
Giá trị băm (Hash)
Khoá sử dụng trong mã hoá khoá công khai được dựa vào giá trị băm (Hash value). Đây là một giá trị được tính toán từ một số được nhập vào, sử dụng thuật toán Hashing. Giá trị Hash là tổng của tất cả các giá trị gốc. Điều quan trọng nhất là gần như không thể tìm ra được từ giá trị gốc nếu không biết được dữ liệu đã dùng để tạo ra giá trị Hash.
Sau đây là một ví dụ:
Số nhập vào Thuật toán Hashing Giá trị Hash
10.667 Input # x 143 1.525.381
Có thể thấy rằng rất khó để tìm được ra rằng giá trị 1.525.381 là tích số của 10.667 và 143. Nhưng nếu biết được một thừa số là 143 thì có thể dễ dàng tính ra được giá trị ban đầu là 10.667. Trên thực tế mã hoá khoá công khai phức tạp hơn nhiều so với ví dụ trên.
Các khoá công khai thường dùng các thuật toán phức tạp và những giá trị Hash lớn để mã hoá thành những số 40-Bit hay thậm chí 128-Bit. Một số 128-Bit có 2 số mũ 128 cách kết hợp khác nhau (2^128 là một số có 67 chữ số).
Xác thực (Authentic)
Có các cách sau để xác thực một người hoặc một thông tin trong máy tính:
• Password: dùng tên truy nhập (User Name) và mật khẩu (Password) cho các Form đăng nhập xác thực thông tin. Khi máy tính đưa ra yêu cầu (Prompt), người sử dụng phải nhập vào tên truy nhập và mật khẩu. Sau đó máy tính sẽ so sánh thông tin người sử dụng nhập vào với một một secure file chuyên dùng để xác thực. Nếu tên truy nhập hoặc mật khẩu không khớp, người sử dụng sẽ không thể tiếp tục truy nhập.
• Pass Card: Card có từ tính giống như Credit Card, nó là Smart Card tinh vi được nhúng sẵn một Chip xử lý.
• Digital Signature: Chữ ký điện tử (Digital Signature) thực chất là phương thức để đảm bảo xác thực các tài liệu điện tử (E-mail, File text, bảng tính...). DSS (Digital Signature Standard) dựa trên một dạng của phương pháp mã hoá khoá công khai sử dụng thuật toán DSA (Digital Signature Algorithm). DSS được định dạng cho chữ ký điện tử và được chứng thực bởi chính phủ Mỹ. Thuật toán DSA gồm có một khoá riêng (Private Key) chỉ được biết bởi người chủ của tài liệu và một khoá công khai gồm bốn phần. Bầt kỳ thứ gì trong tài liệu bị thay đổi sau khi chữ ký điện tử được gắn kèm vào tài liệu này sẽ thay đổi cả giá trị mà chữ ký điện tử so sánh dẫn đến chữ ký này không có giá trị.
• Ngày nay các hình thức xác thực tinh vi hơn đã được đưa ra cho các hệ thống máy tính: hệ thống sử dụng sinh trắc học (Biometric) để xác thực. Biometric sử dụng các thông tin về sinh học để thẩm tra việc nhận dạng. Các phương pháp xác thực sinh trắc học bao gồm:
• Kiểm tra vân tay (Fingerprint scan).
• Kiểm tra võng mạc (Retina scan).
• Kiểm tra khuôn mặt (Face scan).
• Nhận dạng giọng nói (Voice identification).
Điều cần thiết để bảo mật trên máy tính là phải đảm bảo việc liên tục trong khi truyền và mã hoá dữ liệu. Có hai cách cơ bản như sau:
• Checksum: là phương pháp cổ điển nhất để đảm bảo chuẩn xác dữ liệu. Đây là phương pháp kiểm tra lỗi trong đó số Bit trong một đơn vị dữ liệu được cộng lại và truyền đi cùng với dữ liệu. Máy tính sẽ thu nhận và kiểm tra tổng số này, nếu tổng số bị sai, có thể đã xuất hiện lỗi trên đường truyền.
• CRC (Cyclic Redundancy Check): tương tự như Checksum nhưng CRC sử dụng phép chia đa thức để tính giá trị CRC có độ dài 16 hoặc 32 Bit. Nếu việc truyền dữ liệu an toàn thì giá trị CRC là đúng. Nếu có Bit nào đó bị lỗi, giá trị CRC sẽ không đồng nhất.
Sưu tầm by giakhanh_vn2000
Các thông tin bí mật được cung cấp cho các máy tính quan mạng Internet bằng nhiều phương thức khác nhau. Một cách bảo mật đơn giản nhưng minh bạch nhất là lưu các thông tin bí mật trên các bộ nhớ có thể xoá được (Removable Storage) như đĩa mềm. Tuy nhiên dạng bảo mật phổ biến nhất vẫn là dựa vào quá trình mã hoá dữ liệu (Encryption). Với quá trình mã hoá như vậy, chỉ có những người hoặc máy tính có “chìa khoá” (Key) mới giải mã được các thông tin này.
Quá trình mã hoá trong máy tính dựa vào khoa học về mật mã (Cryptography) đã được con người sử dụng từ lâu đời. Trước thời đại số hoá, người sử dụng mật mã nhiều nhất vẫn là chính phủ, chủ yếu trong mục đích quân sự. Hầu hết các phương pháp mã hoá được dùng hiện nay dựa vào các máy tính, đơn giản là do các mã do con người sinh ra rất dễ bị phá bởi công cụ máy tính.
Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại sau:
• Mã hoá với khoá đối xứng (Symmetric-key Encryption)
• Mã hoá với khoá công khai (Public-key Encryption)
Khoá đối xứng (Symmetric Key)
Trong phương pháp mã hoá với khoá đối xứng, mỗi máy tính có một khoá bí mật (dạng mã) dùng để mã hoá các gói thông tin trước khi chúng được gửi qua mạng tới các máy tính khác. Phương pháp mã hoá với khoá đối xứng đòi hỏi người sử dụng phải xác định được những máy tính nào đang liên lạc trao đổi thông tin với nhau để cài đặt khoá này trên mỗi máy.
Về cơ bản, mã hoá với khoá đối xứng giống như việc tạo một mã bí mật mà cả hai máy tính liên lạc với nhau phải cùng biết để giả mã các thông tin đã được mã hoá. Các mã này sẽ cung cấp khoá cho quá trình giải mã các thông điệp.
Ví dụ, người sử dụng có thể tạo một thông điệp đã mã hoá và gửi cho một người khác trong đó mỗi chữ cái đã bị thay thế bởi một chữ khác đứng sau nó hai vị trí trong bảng chữ cái. Khi đó chữ cái “A” trở thành “C” và “B” trở thành “D”. Để người nhận hiểu được nội dung thông điệp, người gửi phải thông báo cho người nhận biết được khoá là “Mỗi chữ cái đã được thay bằng chữ cái khác sau nó 2 vị trí trong bảng chữ cái”. Người nhận dùng khoá này để giải mã nội dung thông điệp trong khi những người khác thấy nội dung thông điệp là vô nghĩa.
Hệ Thống Chống Spam Bài !
Khoá công khai (Public Key)
Phương pháp mã hoá công khai là sự phối hợp giữa một khoá riêng (Private Key) và một khoá công khai (Public Key). Khoá riêng chỉ được biết bởi mỗi máy tính trong khi khoá công khai được máy tính này cung cấp cho các máy tính khác giao tiếp với nó. Để giải mã một thông điệp đã mã hoá, máy tính nhận thông điệp phải dùng khoá công khai được cung cấp bởi máy tính gửi thông điệp và khoá riêng của nó. Công cụ dùng phổ biến trong mã hoá với khoá công khai được gọi là PGP (Pretty Good Privacy) cho phép mã hoá mọi thứ.
Để thực hiện mã hoá công khai trên quy mô lớn như bảo mật Web Server đòi hỏi tiến hành nhiều cách khác nhau. Điều này chính là nguyên nhân ra đời của chứng thực số (Digital Certificate). Digital Certificate thực chất là một Bit thông tin chỉ ra rằng Web Server được hoàn toàn tin tưởng (Trust) bởi đối tượng độc lập gọi là Certificate Authority. Certificate Authority được coi như đối tượng trung gian mà cả hai máy tính đều tin tưởng. Khi đó mỗi máy tính sẽ cung cấp các khoá công khai cho máy tính kia.
Việc tiến hành mã hoá khoá công khai gọi là Secure Sockets Layer (SSL), được phát minh bởi Netscape. SSL là một giao thức bảo mật trên Internet sử dụng bởi các trình duyệt và các Web Server để truyền tải các thông tin nhạy cảm cần bảo mật. Giờ đây SSL là một phần của giao thức bảo mật toàn phần Transport Layer Security (TLS).
Trong các trình duyệt, người sử dụng có thể thấy rõ khi nào họ dùng giao thức bảo mật (Security Protocol) theo hai cách: khi trên cửa sổ gõ địa chỉ (Address Bar) của trình duyệt “http” được thay thế bới “https” và biểu tượng khoá móc trên thanh trạng thái (Status Bar) của trình duyệt.
Mã hoá khoá công khai được sử dụng trên rất nhiều máy tính và hầu hết các hệ thống đều kết hợp giữa khoá công khai và khoá đối xứng. Khi hai máy tính bắt đầu một phiên (Session) làm việc, một máy tính sẽ tạo ra khoá đối xứng và dùng phương pháp mã hoá khoá công khai gửi nó cho máy tính kia. Khi đó hai máy tính này có thể dùng mã hoá khoá đối xứng để trao đổi thông tin với nhau. Khi phiên làm việc kết thúc, mỗi máy tính lại loại bỏ khoá đối xứng đã được dùng trong phiên làm việc này. Ở các phiên làm việc sau, khoá mới sẽ lại được tạo ra và quá trình lại lặp lại như trên.
Giá trị băm (Hash)
Khoá sử dụng trong mã hoá khoá công khai được dựa vào giá trị băm (Hash value). Đây là một giá trị được tính toán từ một số được nhập vào, sử dụng thuật toán Hashing. Giá trị Hash là tổng của tất cả các giá trị gốc. Điều quan trọng nhất là gần như không thể tìm ra được từ giá trị gốc nếu không biết được dữ liệu đã dùng để tạo ra giá trị Hash.
Sau đây là một ví dụ:
Số nhập vào Thuật toán Hashing Giá trị Hash
10.667 Input # x 143 1.525.381
Có thể thấy rằng rất khó để tìm được ra rằng giá trị 1.525.381 là tích số của 10.667 và 143. Nhưng nếu biết được một thừa số là 143 thì có thể dễ dàng tính ra được giá trị ban đầu là 10.667. Trên thực tế mã hoá khoá công khai phức tạp hơn nhiều so với ví dụ trên.
Các khoá công khai thường dùng các thuật toán phức tạp và những giá trị Hash lớn để mã hoá thành những số 40-Bit hay thậm chí 128-Bit. Một số 128-Bit có 2 số mũ 128 cách kết hợp khác nhau (2^128 là một số có 67 chữ số).
Xác thực (Authentic)
Có các cách sau để xác thực một người hoặc một thông tin trong máy tính:
• Password: dùng tên truy nhập (User Name) và mật khẩu (Password) cho các Form đăng nhập xác thực thông tin. Khi máy tính đưa ra yêu cầu (Prompt), người sử dụng phải nhập vào tên truy nhập và mật khẩu. Sau đó máy tính sẽ so sánh thông tin người sử dụng nhập vào với một một secure file chuyên dùng để xác thực. Nếu tên truy nhập hoặc mật khẩu không khớp, người sử dụng sẽ không thể tiếp tục truy nhập.
• Pass Card: Card có từ tính giống như Credit Card, nó là Smart Card tinh vi được nhúng sẵn một Chip xử lý.
• Digital Signature: Chữ ký điện tử (Digital Signature) thực chất là phương thức để đảm bảo xác thực các tài liệu điện tử (E-mail, File text, bảng tính...). DSS (Digital Signature Standard) dựa trên một dạng của phương pháp mã hoá khoá công khai sử dụng thuật toán DSA (Digital Signature Algorithm). DSS được định dạng cho chữ ký điện tử và được chứng thực bởi chính phủ Mỹ. Thuật toán DSA gồm có một khoá riêng (Private Key) chỉ được biết bởi người chủ của tài liệu và một khoá công khai gồm bốn phần. Bầt kỳ thứ gì trong tài liệu bị thay đổi sau khi chữ ký điện tử được gắn kèm vào tài liệu này sẽ thay đổi cả giá trị mà chữ ký điện tử so sánh dẫn đến chữ ký này không có giá trị.
• Ngày nay các hình thức xác thực tinh vi hơn đã được đưa ra cho các hệ thống máy tính: hệ thống sử dụng sinh trắc học (Biometric) để xác thực. Biometric sử dụng các thông tin về sinh học để thẩm tra việc nhận dạng. Các phương pháp xác thực sinh trắc học bao gồm:
• Kiểm tra vân tay (Fingerprint scan).
• Kiểm tra võng mạc (Retina scan).
• Kiểm tra khuôn mặt (Face scan).
• Nhận dạng giọng nói (Voice identification).
Điều cần thiết để bảo mật trên máy tính là phải đảm bảo việc liên tục trong khi truyền và mã hoá dữ liệu. Có hai cách cơ bản như sau:
• Checksum: là phương pháp cổ điển nhất để đảm bảo chuẩn xác dữ liệu. Đây là phương pháp kiểm tra lỗi trong đó số Bit trong một đơn vị dữ liệu được cộng lại và truyền đi cùng với dữ liệu. Máy tính sẽ thu nhận và kiểm tra tổng số này, nếu tổng số bị sai, có thể đã xuất hiện lỗi trên đường truyền.
• CRC (Cyclic Redundancy Check): tương tự như Checksum nhưng CRC sử dụng phép chia đa thức để tính giá trị CRC có độ dài 16 hoặc 32 Bit. Nếu việc truyền dữ liệu an toàn thì giá trị CRC là đúng. Nếu có Bit nào đó bị lỗi, giá trị CRC sẽ không đồng nhất.
Sưu tầm by giakhanh_vn2000