|
|
Giao tiếp HTTP được coi là tốt cho các máy chủ Web thông thường chỉ chứa các trang thông tin thuần túy. Nhưng nếu bạn đang có ý định vận hành một trang thương mại điện tử hoặc các dịch vụ Web cần các giao dịch bảo mật, thì bạn cần bảo mật giao tiếp giữa máy chủ Web của bạn và khác hàng. Cách thức phổ biến nhất là sử dụng Secure Sockets Layer (SSL), cách thức dùng một khóa mã công khai để bảo vệ các thông tin bí mật của người dùng (như thẻ tín dụng hoặc số tài khoản ngân hàng) khi truyền qua môi trường Web. Trong bài báo này, chúng ta sẽ cùng thảo luận về cách thức hoạt động của SSL như thế nào và sẽ chỉ ra cho bạn cách để sử dụng nó trên các máy chủ Web Internet Information Services (IIS) của bạn.
SSL hoạt động như thế nào?
SSL dùng một chứng nhận số được phát hành bởi nhà cung cấp chứng nhận (CA) hợp lệ để xác thực cho cả hai bên trong giao dịch (máy khách và máy chủ). Nếu máy chủ Web được cài đặt để yêu cầu các kết nối bảo mật, nó sẽ từ chối các yêu cầu không được bảo mật. Để kết nối tới một trang bảo mật, máy khách phải dùng https:// ở đầu của URL thay cho http://.
Chú ý: Nếu một vài thành phần của trang web dùng http:// trong liên kết, các khách viếng thăm sẽ nhận được một thống báo nói rằng một số đối tượng trên trang web không bảo mật. Bạn có thể tránh những thông báo này bằng cách dùng https:// cho tất cả các liên kết hoặc dùng các đường dẫn tương đối không chứa “http://” hoặc “https://”.
Khi trình duyệt máy khách khởi tạo một kết nối bảo mật, quá trình “bắt tay” SSL diễn ra. Trình duyệt kiểm tra chứng nhận số để xác thực định danh của máy chủ, sự xác thực của nhà cung cấp chứng nhận và xác nhận chứng nhận đó chưa hết hạn. Tiếp theo máy khách và chủ thỏa thuận phương thức bảo mật và các khóa được sử dụng.
Khi quá trình bắt tay hoàn thành, một khóa mới được tạo ra, và khóa này được dùng để tạo các khóa cho phiên làm việc, những cái mà chính chúng được dùng để mã hóa các giao tiếp còn lại, dùng phương thức mã hóa được thỏa thuận giữa máy khác và chủ. Máy chủ sẽ xác thực máy khách nếu máy chủ được cấu hình để yêu cầu sự xác thực của máy khách.
Bổ sung SSL như thế nào?
Bước đầu tiên để bổ sung SSL cho trang Web của bạn là xin một chứng nhận SSL từ một nhà cung cấp chứng nhận chuyên phát hành các chứng nhận SSL. Chứng nhận SSL máy chủ Web thừa nhận tư cách đầy đủ cho cả tên miền và địa chỉ IP.
Để cấu hình Website IIS 6.0 của bạn (đang chạy trên Windows Server 2003) dùng mã hóa SSL xin theo các bước sau:
1. Mở IIS Manager từ menu Programs | Administrative Tools
2. Ở ô cửa sổ trái của bảng giao tiếp, mở rộng nút cho tên máy chủ Web của bạn và sau đó mở rộng thư mục các Website
3. Nhắp chuột phải vào Website mà bạn muốn dùng SSL, và sau đó chọn Properties từ menu ngữ cảnh. Nó sẽ mở trang Properties của Website.
4. Nhắp chuột vào thẻ Directory Security
5. Bên dưới Secure Communications, nhắp chuột vào nút Server Certificate. Nó sẽ khởi tạo Web Server Certificate Wizard.
6. Nhắp chuột vào nút Next trên trang đầu tiên của Wizard.
7. Trên trang Server Certificate, bạn sẽ nhìn thấy các tùy chọn sau: Tạo một chứng nhận mới, Gán một chứng nhận có sẵn, Nhập một chứng nhận từ một tệp tin sao lưu Key Manager, Nhập một chứng nhận từ một tệp tin .pfx hoặc Sao chép hay di chuyển một chứng nhận từ một máy chủ từ xa tới Website này. Chọn một lựa chọn thích hợp và theo lần lượt các bước.
Để nhập một chứng nhận bạn cần biết:
*
Đường dẫn nơi chứng nhận được lưu giữ
*
Mật khẩu tệp tin .pfx.
Để tạo một chứng nhận mới, bạn cần gửi yêu cầu tới nhà cung cấp chứng nhận trên mạng của bạn hoặc chuẩn bị yêu cầu và gửi thủ công tới một CA không thuộc mạng của bạn. Bạn phải nhập URL của Website và nếu bạn có ý định làm cho site có hiệu lực trên Internet thì tên phải trùng với tên miền đủ điều kiện bên ngoài của site. Nếu site chỉ hiệu lực cho các người dùng mạng intranet, bạn có thể dùng tên NetBIOS.
8. Nếu bạn tạo một chứng nhận mới, bạn sẽ cần nhập vị trí địa lý của bạn (quốc gia, bang/tỉnh và thành phố/khu vực) trên trang Geographical Information.
9. Yêu cầu chứng nhận sẽ được lưu như tệp văn bản nếu bạn chọn tạo yêu cầu thủ công và gửi đi sau đó. Nhập một tên cho tệp văn bản.
10. Xem lại thông tin yêu cầu trên trang Request File Summary và nhắp Next để tạo tệp. Bạn có thể gửi e-mail tới một nhà cung cấp chứng nhận.
Nếu bạn gửi yêu cầu tới một CA nội bộ:
11. Chắc chắn rằng cổng 443 được chọn ở trang SSL Port.
12. Chọn CA ở trang Choose a Certification Authority.
13. Xem lại thông tin yêu cầu và nhắp Next để gửi yêu cầu ở trang Certificate Request Submission.
Chú ý: Bạn có thể xóa yêu cầu bằng cách chạy lại Wizard. Quay lại thẻ Directory Security trên trang Properties của site và nhắp Server Certificate lần nữa. Wizard sẽ thông báo cho bạn biết rằng một yêu cầu chứng nhận đang chờ và hỏi nếu bạn muốn xử lý yêu cầu đang chờ và cài đặt chứng nhận hay xóa yêu cầu đang chờ.
Một khi bạn đã có chứng nhận, bạn có thể bảo mật Website với chúng theo những bước sau:
1. Trên thẻ Directory Security trang Properties của site, dưới phần Secure Communications, nhắp chuột vào nút Edit (chú ý rằng có tới ba nút Edit trên trang này, bạn phải nhắp chuột vào nút dưới phần Secure Communications).
2. Chọn vào nút có nhãn Require secure channel (SSL) ở đầu của hộp thoại Secure Communications. Nếu bạn muốn mã hóa 128 bit, chọn vào nút thích hợp như Hình C. Một vài trình duyệt cũ có thể không hỗ trợ mã hóa 128 bit.
3. Dưới mục Client Certificates, chọn nếu bạn muốn bỏ qua chứng nhận máy khách, chấp nhận chứng nhận máy khách, hoặc yêu cầu chứng nhận máy khách (cái sau là bảo mật nhất). Bạn cũng có thể ánh xạ chứng nhận máy khách sang tài khoản người dùng Windows và làm hiệu lực Certificate Trust List. Nhắp OK khi bạn đã kết thức cấu hình những cài đặt này.
4. Quay trở lại thẻ Directory Security, dưới mục Authentication and Access Control ở đầu trang, nhắp nút Edit.
5. Dưới mục Authenticated Access, bạn có thể chọn để yêu cầu tên người dùng và mật khẩu cho bắt kỳ hoặc tất cả các cách thức xác thực sau: Integrated Windows authentication, Digest authentication for Windows domain servers, Basic authentication, .NET Passport authentication. Sau khi cấu hình theo ý muốn, nhắp OK.
6. Nhắp OK lần nữa để đóng các hộp thoại và đóng IIS MMC.
Thử kết nối
Để kiểm chứng rằng kết nối SSL của bạn có hoạt động, trong trình duyệt nhập tên máy chủ (tên miền đầy đủ cho máy chủ Internet Web hoặc tên NetBIOS cho máy chủ intranet), đặt https:// ở đầu của URL. Bạn sẽ nhận được một thông báo rằng bạn sắp xem các trang web qua kết nối bảo mật. Nhắp OK. Website bảo mật sẽ phải hiển thị.
Theo Deb Shinder
|
 |
|
1. Những điều căn bản về mã hoá
Khi bắt đầu tìm hiểu về mã hoá, chúng ta thường đặt ra những câu hỏi chẳng hạn như là: Tại sao cần phải sử dụng mã hoá ? Tại sao lại có quá nhiều thuật toán mã hoá ?v..v…
Tai sao cần phải sử dụng mã hoá ?
Thuật toán Cryptography đề cập tới nghành khoa học nghiên cứu về mã hoá và giải mã thông tin. Cụ thể hơn là nghiên cứu các cách thức chuyển đổi thông tin từ dạng rõ (clear text) sang dạng mờ (cipher text) và ngược lại. Đây là một phương pháp hỗ trợ rất tốt cho trong việc chống lại những truy cập bất hợp pháp tới dữ liệu được truyền đi trên mạng, áp dụng mã hoá sẽ khiến cho nội dung thông tin được truyền đi dưới dạng mờ và không thể đọc được đối với bất kỳ ai cố tình muốn lấy thông tin đó.
Nhu cầu sử dụng kỹ thuật mã hoá ?
Không phai ai hay bất kỳ ứng dụng nào cũng phải sử dụng mã hoá. Nhu cầu về sử dụng mã hoá xuất hiện khi các bên tham gia trao đổi thông tin muốn bảo vệ các tài liệu quan trọng hay gửi chúng đi một cách an toàn. Các tài liệu quan trọng có thể là: tài liệu quân sự, tài chính, kinh doanh hoặc đơn giản là một thông tin nào đó mang tính riêng tư.
Như chúng ta đã biết, Internet hình thành và phát triển từ yêu cầu của chính phủ Mỹ nhằm phục vụ cho mục đích quân sự. Khi chúng ta tham gia trao đổi thông tin, thì Internet là môi trường không an toàn, đầy rủi ro và nguy hiểm, không có gì đảm bảo rằng thông tin mà chúng ta truyền đi không bị đọc trộm trên đường truyền. Do đó, mã hoá được áp dụng như một biện pháp nhằm giúp chúng ta tự bảo vệ chính mình cũng như những thông tin mà chúng ta gửi đi. Bên cạnh đó, mã hoá còn có những ứng dụng khác như là bảo đảm tính toàn vẹn của dữ liệu.
Tại sao lại có quá nhiều thuật toán mã hoá ?
Theo một số tài liệu thì trước đây tính an toàn, bí mật của một thuật toán phụ thuộc vào phương thức làm việc của thuật toán đó. Nếu như tính an toàn của một thuật toán chỉ dựa vào sự bí mật của thuật toán đó thì thuật toán đó là một thuật toán hạn chế (Restricted Algrorithm). Restricted Algrorithm có tầm quan trọng trong lịch sử nhưng không còn phù hợp trong thời đại ngày nay. Giờ đây, nó không còn được mọi người sử dụng do mặt hạn chế của nó: mỗi khi một user rời khỏi một nhóm thì toàn bộ nhóm đó phải chuyển sang sử dụng thuật toán khác hoặc nếu người đó người trong nhóm đó tiết lộ thông tin về thuật toán hay có kẻ phát hiện ra tính bí mật của thuật toán thì coi như thuật toán đó đã bị phá vỡ, tất cả những user còn lại trong nhóm buộc phải thay đổi lại thuật toán dẫn đến mất thời gian và công sức.
Hệ thống mã hoá hiện nay đã giải quyết vấn đề trên thông qua khoá (Key) là một yếu tố có liên quan nhưng tách rời ra khỏi thuật toán mã hoá. Do các thuật toán hầu như được công khai cho nên tính an toàn của mã hoá giờ đây phụ thuộc vào khoá. Khoá này có thể là bất kì một giá trị chữ hoặc số nào. Phạm vi không gian các giá trị có thể có của khoá được gọi là Keyspace . Hai quá trình mã hoá và giải mã đều dùng đến khoá. Hiện nay, người ta phân loại thuật toán dựa trên số lượng và đặc tính của khoá được sử dụng.
Nói đến mã hoá tức là nói đến việc che dấu thông tin bằng cách sử dụng thuật toán. Che dấu ở đây không phải là làm cho thông tin biến mất mà là cách thức chuyển từ dạng tỏ sang dạng mờ. Một thuật toán là một tập hợp của các câu lệnh mà theo đó chương trình sẽ biết phải làm thế nào để xáo trộn hay phục hồi lại dữ liệu. Chẳng hạn một thuật toán rất đơn giản mã hoá thông điệp cần gửi đi như sau:
Bước 1: Thay thế toàn bộ chữ cái “e” thành số “3”
Bước 2: Thay thế toàn bộ chữ cái “a” thành số “4”
Bước 3: Đảo ngược thông điệp
Trên đây là một ví dụ rất đơn giản mô phỏng cách làm việc của một thuật toán mã hoá. Sau đây là các thuật ngữ cơ bản nhất giúp chúng ta nắm được các khái niệm:
- Sender/Receiver: Người gửi/Người nhận dữ liệu
- Plaintext (Cleartext): Thông tin trước khi được mã hoá. Đây là dữ liệu ban đầu ở dạng rõ
- Ciphertext: Thông tin, dữ liệu đã được mã hoá ở dạng mờ
- Key: Thành phần quan trọng trong việc mã hoá và giải mã
- CryptoGraphic Algorithm: Là các thuật toán được sử dụng trong việc mã hoá hoặc giải mã thông tin
- CryptoSystem: Hệ thống mã hoá bao gồm thuật toán mã hoá, khoá, Plaintext, Ciphertext
Kí hiệu chung: P là thông tin ban đầu, trước khi mã hoá. E() là thuật toán mã hoá. D() là thuật toán giải mã. C là thông tin mã hoá. K là khoá. Chúng ta biểu diễn quá trình mã hoá và giải mã như sau:
- Quá trình mã hoá được mô tả bằng công thức: EK(P)=C
- Quá trình giải mã được mô tả bằng công thức: DK(C)=P
Minh hoạ quá trình mã hóa và giải mã
Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo các mục tiêu sau:
a. Confidentiality (Tính bí mật): Đảm bảo dữ liệu được truyền đi một cách an toàn và không thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu gốc ban đầu. Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu.
b. Authentication (Tính xác thực): Giúp cho người nhận dữ liệu xác định được chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Kẻ giả mạo không thể có khả năng để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệu. Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được.
c. Integrity (Tính toàn vẹn): Giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban đầu băng dữ liệu giả mạo
d. Non-repudation (Tính không thể chối bỏ): Người gửi hay người nhận không thể chối bỏ sau khi đã gửi hoặc nhận thông tin.
2. Độ an toàn của thuật toán
Nguyên tắc đầu tiên trong mã hoá là “Thuật toán nào cũng có thể bị phá vỡ”. Các thuật toán khác nhau cung cấp mức độ an toàn khác nhau, phụ thuộc vào độ phức tạp để phá vỡ chúng. Tại một thời điểm, độ an toàn của một thuật toán phụ thuộc:
- Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật toán lớn hơn giá trị của thông tin đã mã hóa thuật toán thì thuật toán đó tạm thời được coi là an toàn.
- Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá lâu thì thuật toán đó tạm thời được coi là an toàn.
- Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá lơn so với lượng dữ liệu đã được mã hoá thì thuật toán đó tạm thời được coi là an toàn
Từ tạm thời ở đây có nghĩa là độ an toàn của thuật toán đó chỉ đúng trong một thời điểm nhất định nào đó, luôn luôn có khả năng cho phép những người phá mã tìm ra cách để phá vỡ thuật toán. Điều này chỉ phụ thuộc vào thời gian, công sức, lòng đam mê cũng như tính kiên trì bên bỉ. Càng ngày tốc độ xử lý của CPU càng cao, tốc độ tính toán của máy tính ngày càng nhanh, cho nên không ai dám khẳng định chắc chắn một điều rằng thuật toán mà mình xây dựng sẽ an toàn mãi mãi. Trong lĩnh vực mạng máy tính và truyền thông luôn luôn tồn tại hai phe đối lập với nhau những người chuyên đi tấn công, khai thác lỗ hổng của hệ thống và những người chuyên phòng thủ, xây dựng các qui trình bảo vệ hệ thống. Cuộc chiến giữa hai bên chẳng khác gì một cuộc chơi trên bàn cờ, từng bước đi, nước bước sẽ quyết định số phận của mối bên. Trong cuộc chiến này, ai giỏi hơn sẽ dành được phần thắng. Trong thế giới mã hoá cũng vậy, tất cả phụ thuộc vào trình độ và thời gian…sẽ không ai có thể nói trước được điều gì. Đó là điểm thú vị của trò chơi.
3. Phân loại các thuật toán mã hoá
Có rất nhiều các thuật toán mã hoá khác nhau. Từ những thuật toán được công khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung cho việc mã hoá dữ liệu; đến những thuật toán mã hoá không được công bố. Có thể phân loại các thuật toán mã hoá như sau:
Phân loại theo các phương pháp:
- Mã hoá cổ điển (Classical cryptography)
- Mã hoá đối xứng (Symetric cryptography)
- Mã hoá bất đối xứng(Asymetric cryptography)
- Hàm băm (Hash function)
Phân loại theo số lượng khoá:
- Mã hoá khoá bí mật (Private-key Cryptography)
- Mã hoá khoá công khai (Public-key Cryptography)
3.1 Mã hoá cổ điển:
Xuất hiện trong lịch sử, các phương pháp này không dùng khoá. Thuật toán đơn giản và dễ hiểu. Những từ chính các phương pháp mã hoá này đã giúp chúng ta tiếp cận với các thuật toán mã hoá đối xứng được sử dụng ngày nay. Trong mã hoá cổ điển có 02 phương pháp nổi bật đó là:
- Mã hoá thay thế (Substitution Cipher):
Là phương pháp mà từng kí tự (hay từng nhóm kí tự) trong bản rõ (Plaintext) được thay thế bằng một kí tự (hay một nhóm kí tự) khác để tạo ra bản mờ (Ciphertext). Bên nhận chỉ cần đảo ngược trình tự thay thế trên Ciphertext để có được Plaintext ban đầu.
- Mã hoá hoán vị (Transposition Cipher):
Bên cạnh phương pháp mã hoá thay thế thì trong mã hoá cổ điển có một phương pháp khác nữa cũng nổi tiếng không kém, đó chính là mã hoá hoán vị. Nếu như trong phương pháp mã hoá thay thế, các kí tự trong Plaintext được thay thế hoàn toàn bằng các kí tự trong Ciphertext, thì trong phương pháp mã hoá hoán vị, các kí tự trong Plaintext vẫn được giữ nguyên, chúng chỉ được sắp xếp lại vị trí để tạo ra Ciphertext. Tức là các kí tự trong Plaintext hoàn toàn không bị thay đổi bằng kí tự khác.
3.2 Mã hoá đối xứng:
Ở phần trên, chúng ta đã tìm hiểu về mã hoá cổ điển, trong đó có nói rằng mã hoá cổ điển không dùng khoá. Nhưng trên thực nếu chúng ta phân tích một cách tổng quát, chúng ta sẽ thấy được như sau:
- Mã hoá cổ điển có sử dụng khoá. Bằng chứng là trong phương pháp Ceaser Cipher thì khoá chính là phép dịch ký tự, mà cụ thể là phép dịch 3 ký tự. Trong phương pháp mã hoá hoán vị thì khóa nằm ở số hàng hay số cột mà chúng ta qui định. Khoá này có thể được thay đổi tuỳ theo mục đích mã hoá của chúng ta, nhưng nó phải nằm trong một phạm vi cho phép nào đó.
- Để dùng được mã hoá cổ điển thì bên mã hoá và bên giải mã phải thống nhất với nhau về cơ chế mã hoá cũng như giải mã. Nếu như không có công việc này thì hai bên sẽ không thể làm việc được với nhau.
Mã hoá đối xứng còn có một số tên gọi khác như Secret Key Cryptography (hay Private Key Cryptography), sử dụng cùng một khoá cho cả hai quá trình mã hoá và giải mã.
Quá trình thực hiện như sau:
Trong hệ thống mã hoá đối xứng, trước khi truyền dữ liệu, 2 bên gửi và nhận phải thoả thuận về khoá dùng chung cho quá trình mã hoá và giải mã. Sau đó, bên gửi sẽ mã hoá bản rõ (Plaintext) bằng cách sử dụng khoá bí mật này và gửi thông điệp đã mã hoá cho bên nhận. Bên nhận sau khi nhận được thông điệp đã mã hoá sẽ sử dụng chính khoá bí mật mà hai bên thoả thuận để giải mã và lấy lại bản rõ (Plaintext).
Hình vẽ trên chính là quá trình tiến hành trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hoá đối xứng. Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí mật chính là khoá. Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá có thể tiến hành một cách công khai, nhưng bước thoả thuận về khoá trong việc mã hoá và giải mã phải tiến hành bí mật. Chúng ta có thể thấy rằng thuật toán mã hoá đối xứng sẽ rất có lợi khi được áp dụng trong các cơ quan hay tổ chức đơn lẻ. Nhưng nếu cần phải trao đổi thông tin với một bên thứ ba thì việc đảm bảo tính bí mật của khoá phải được đặt lên hàng đầu.
Mã hoá đối xứng có thể được phân thành 02 loại:
- Loại thứ nhất tác động trên bản rõ theo từng nhóm bits. Từng nhóm bits này được gọi với một cái tên khác là khối (Block) và thuật toán được áp dụng gọi là Block Cipher. Theo đó, từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài. Đối với các thuật toán ngày nay thì kích thước chung của một Block là 64 bits.
- Loại thứ hai tác động lên bản rõ theo từng bit một. Các thuật toán áp dụng được gọi là Stream Cipher. Theo đó, dữ liệu của văn bản được mã hoá từng bit một. Các thuật toán mã hoá dòng này có tốc độ nhanh hơn các thuật toán mã hoá khối và nó thường được áp dụng khi lượng dữ liệu cần mã hoá chưa biết trước.
Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES…
- DES: viết tắt của Data Encryption Standard. Với DES, bản rõ (Plaintext) được mã hoá theo từng khối 64 bits và sử dụng một khoá là 64 bits, nhưng thực tế thì chỉ có 56 bits là thực sự được dùng để tạo khoá, 8 bits còn lại dùng để kiểm tra tính chẵn, lẻ. DES là một thuật toán được sử dụng rộng rãi nhất trên thế giới. Hiện tại DES không còn được đánh giá cao do kích thước của khoá quá nhỏ 56 bits, và dễ dàng bị phá vỡ.
- Triple DES (3DES): 3DES cải thiện độ mạnh của DES bằng việc sử dụng một quá trình mã hoá và giải mã sử dụng 3 khoá. Khối 64-bits của bản rõ đầu tiên sẽ được mã hoá sử dụng khoá thứ nhất. Sau đó, dữ liệu bị mã hóa được giải mã bằng việc sử dụng một khoá thứ hai. Cuối cùng, sử dụng khoá thứ ba và kết quả của quá trình mã hoá trên để mã hoá.
C = EK3(DK2(EK1(P)))
P = DK1(EK2(DK3(C)))
- AES: Viết tắt của Advanced Encryption Standard, được sử dụng để thay thế cho DES. Nó hỗ trợ độ dài của khoá từ 128 bits cho đến 256 bits.
3.3 Mã hoá bất đối xứng:
Hay còn được gọi với một cái tên khác là mã hoá khoá công khai (Public Key Cryptography), nó được thiết kế sao cho khoá sử dụng trong quá trình mã hoá khác biệt với khoá được sử dụng trong quá trình giải mã. Hơn thế nữa, khoá sử dụng trong quá trình giải mã không thể được tính toán hay luận ra được từ khoá được dùng để mã hoá và ngược lại, tức là hai khoá này có quan hệ với nhau về mặt toán học nhưng không thể suy diễn được ra nhau. Thuật toán này được gọi là mã hoá công khai vì khoá dùng cho việc mã hoá được công khai cho tất cả mọi người. Một người bất kỳ có thể dùng khoá này để mã hoá dữ liệu nhưng chỉ duy nhất người mà có khoá giải mã tương ứng mới có thể đọc được dữ liệu mà thôi. Do đó trong thuật toán này có 2 loại khoá: Khoá để mã hoá được gọi là Public Key, khoá để giải mã được gọi là Private Key.
Mã hoá khoá công khai ra đời để giải quyết vấn đề về quản lý và phân phối khoá của các phương pháp mã hoá đối xứng. Hình minh hoạ ở trên cho chúng ta thấy được quá trình truyền tin an toàn dựa vào hệ thống mã hoá khoá công khai. Quá trình truyền và sử dụng mã hoá khoá công khai được thực hiện như sau:
- Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên một server chịu trách nhiệm quản lý khoá.
- Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử dụng khoá công khai của bên nhận cùng với thuật toán đã thống nhất để mã hoá thông tin được gửi đi.
- Khi nhận được thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của mình để giải mã và lấy ra thông tin ban đầu.
Vậy là với sự ra đời của Mã hoá công khai thì khoá được quản lý một cách linh hoạt và hiệu quả hơn. Người sử dụng chỉ cần bảo vệ Private key. Tuy nhiên nhược điểm của Mã hoá khoá công khai nằm ở tốc độ thực hiện, nó chậm hơn rất nhiều so với mã hoá đối xứng. Do đó, người ta thường kết hợp hai hệ thống mã hoá khoá đối xứng và công khai lại với nhau và được gọi là Hybrid Cryptosystems. Một số thuật toán mã hoá công khai nổi tiếng: Diffle-Hellman, RSA,…
3.4 Hệ thống mã hoá khoá lai (Hybrid Cryptosystems):
Trên thực tế hệ thống mã hoá khoá công khai chưa thể thay thế hệ thống mã hoá khoá bí mật được, nó ít được sử dụng để mã hoá dữ liệu mà thường dùng để mã hoá khoá. Hệ thống mã hoá khoá lai ra đời là sự kết hợp giữa tốc độ và tính an toàn của hai hệ thống mã hoá ở trên. Dưới đây là mô hình của hệ thống mã hoá lai:
Nhìn vào mô hình chúng ta có thể hình dung được hoạt động của hệ thống mã hoá này như sau:
- Bên gửi tạo ra một khoá bí mật dùng để mã hoá dữ liệu. Khoá này còn được gọi là Session Key.
- Sau đó, Session Key này lại được mã hoá bằng khoá công khai của bên nhận dữ liệu.
- Tiếp theo dữ liệu mã hoá cùng với Session Key đã mã hoá được gửi đi tới bên nhận.
- Lúc này bên nhận dùng khoá riêng để giải mã Session Key và có được Session Key ban đầu.
- Dùng Session Key sau khi giải mã để giải mã dữ liệu.
Như vậy, hệ thống mã hoá khoá lai đã tận dụng tốt được các điểm mạnh của hai hệ thống mã hoá ở trên đó là: tốc độ và tính an toàn. Điều này sẽ làm hạn chế bớt khả năng giải mã của tin tặc.
4. Một số ứng dụng của mã hoá trong Security
Một số ứng dụng của mã hoá trong đời sống hằng ngày nói chung và trong lĩnh vực bảo mật nói riêng. Đó là:
- Securing Email
- Authentication System
- Secure E-commerce
- Virtual Private Network
- Wireless Encryption
|
 |
|
|
 |
|
|