2.2.1. Mã hóa
Kỹ thuật bảo mật dữ liệu đơn giản nhất đó là mã hố. Mã hố được xây dựng dựa trên ý tưởng biến đổi dữ liệu đầu vào (ở dạng bản rõ, dễ đọc) sang một dạng mới (dạng bản mã, khó nhận biết) bằng cách sử dụng một khoá cụ thể, thường là một chuỗi ngẫu nhiên có độ dài từ 8 đến 24 byte. Sơ đồ q trình mã hố và giải mã dữ liệu được mơ tả trong hình vẽ 2.3.
Trước khi trao đổi dữ liệu, bên gửi và bên nhận thống nhất với nhau về thuật tốn và khố dùng cho q trình mã hoá và giải mã. Bên gửi mã hoá dữ liệu rồi gửi cho bên nhận. Khi tới đích, bên nhận giải mã dữ liệu rồi chuyển cho ứng dụng. Trên đường truyền dữ liệu có thể bị chặn bởi kẻ tấn cơng, tuy nhiên do khơng có khố giải mã nên kẻ tấn cơng không thể đọc được nội dung dữ liệu. Mức độ can thiệp của kẻ tấn cơng phụ thuộc phần lớn vào thuật tốn dùng để mã hoá, một thuật toán được gọi là an tồn khi nó thoả mãn các điều kiện: kích thước của khoá phải lớn, độ mật của khoá phải cao.
Một số thuật toán mã hoá khoá đối xứng được sử dụng phổ biến hiện này là: DES, AES, Triple-DES, RC2, và RC4….
Hình 2.3: Sơ đồ hệ thống mã hóa khóa đối xứng
Các thuật tốn mã hố khố đối xứng chỉ an tồn khi khố chia sẻ được giữ bí mật. Nếu bên gửi và bên nhận ở xa nhau thì việc trao đổi khố sẽ gặp rất nhiều khó khăn. Tuy nhiên, vấn đề trên sẽ được giải quyết khi hệ thống mã hoá khoá bất đối xứng được đưa vào sử dụng.
Mã hóa khóa bất đối xứng sử dụng khóa cơng khai (public key) của bên nhận để mã hóa thơng điệp rồi gửi cho bên nhận, khi nhận được thơng điệp, bên nhận dùng khóa riêng (Private Key) để giải mã thơng điệp. Lược đồ mã hóa khóa bất đối xứng được mơ tả bởi hình 2.4
Hình 2.4: Sơ đồ hệ thống mã hóa khóa bất đối xứng
Một số thuật tốn mã hố khố cơng khai thường được sử dụng là: RSA (Ron Rivest, Adi Shamir và Leonard Adleman) và thuật toán DH (Diffie- Hellman)… [6]
Hàm băm một chiều nhận một chuỗi đầu vào có độ dài bất kỳ và sinh ra một chuỗi có độ dài cố định. Chuỗi này thể hiện đặc trưng nội dung của thông điệp ban đầu và được gọi là bản tóm lược thơng điệp. Các bản tóm lược thơng điệp có hai đặc tính quan trọng:
(1). Tính một chiều: khả năng lấy lại thơng điệp ban đầu từ bản tóm lược của nó là điều cực kỳ khó khăn.
(2). Tính bất xung đột: khó có thể sinh ra một bản tóm lược từ hai thơng điệp khác nhau.
Bản tóm lược thông điệp thường được dùng để tạo ra chữ ký số và mã xác thực thông điệp, cả hai sẽ được đề cập đến trong phần tiếp theo. Các thuật toán băm thường được sử dụng hiện này là MD5, SHA-1, SHA-256, SHA-512. Hàm băm MD5 cho bản tóm lược dữ liệu có độ dài 16 bytes, hàm băm SHA-1 cho độ dài bản tóm lược là 20 bytes.
2.2.3. Mã xác thực thông điệp - MAC
Mã xác thực thơng điệp dùng để đảm bảo tình tồn vẹn của dữ liệu trên đường truyền. MAC được tạo ra qua việc sử dụng hàm băm một chiều trên thơng điệp gửi đi và khố bí mật dùng để mã hố thơng điệp. MAC ln luôn phụ thuộc vào cả thơng điệp đang được xử lý lẫn khố được dùng để mã hoá.
Bên gửi tính tốn MAC rồi bổ sung vào thơng điệp trước khi gửi đi, tại nơi nhận một giá trị MAC mới được tính từ dữ liệu thu được và so sánh với MAC được bên gửi đích kèm. Nếu hai giá trị này giống nhau, thông điệp gửi đi không bị thay đổi, ngược lại, thông điệp bị thay đổi nội dung trên đường truyền. Chỉ có bên nhận và bên gửi mới tạo được ra mã xác thực giống nhau vì chí có họ mới có khố bí mật.
Mã hố khố cơng khai ngồi mục đích giải quyết vấn đề quản lý, phân phối khố cịn được dùng vào việc xác thực, trong trường hợp này khoá riêng được dùng để tạo ra tài liệu xác thực, tài liệu đó được gọi là chữ ký số. Chữ ký số được dùng để xác nhận các bên tham gia giao tiếp và tránh sự tấn công kiểu trung gian xảy ra. Quan hệ giữa chữ ký số và MAC có thể so sánh với quan hệ giữa mã hố khố cơng khai và mã hố khố đối xứng; người gửi dùng khoá riêng để ký vào thông điệp và người nhận dùng khố cơng khai của người gửi để xác nhận chữ ký của người gửi. Chữ ký số cịn có một thuộc tính quan trọng hơn đó là tính khơng thể chối cãi (nonrepudation). Cả người gửi và người nhận có thể tạo ra mã xác thực thơng điệp nhưng chỉ có người ký thơng điệp mới có thể tạo ra chữ ký. Vì vậy, người nhận ln ln chứng minh rằng người gửi đã ký vào thông điệp và không thể chối cãi được. Hình vẽ 2.5 là sơ đồ xác thực dữ liệu của người dùng qua việc sử dụng chữ ký số.
Hình 2.5: Sơ đồ xác thực dữ liệu dùng chữ ký số
2.2.5. Chứng chỉ số và cơ quan cung cấp chứng chỉ số
Do khố cơng khai được cơng bố một cách rộng rãi cho nên khi người gửi và người nhận trao đổi khố cơng khai với nhau, kẻ tấn cơng có thể chặn các
khố này trên đường truyền và thay vì gửi khố đó, họ sẽ gửi khố của mình có cho các bên. Vậy làm thế nào để các bên tham gia giao tiếp nhận được khố cơng khai của nhau? Ta có thể gửi trực tiếp, tuy nhiên như đã nói, cách này khơng an tồn.
Vấn đề sẽ được giải quyết với sự tham gia của bên thứ ba tin cậy, gọi là cơ quan chứng thực (CA). Tài liệu dùng để chứng thực gọi là chứng chỉ số (hay chứng chỉ điện tử - digital certificate). Mỗi chứng chỉ số thông thường bao gồm các thông tin sau:
• Version: Phiên bản của chứng chỉ số • Serial Number: số sê ri của chứng chỉ số
• Issuer Name: tên của người ký chứng chỉ số (như VeriSign). • Subject Name: tên của chứng chỉ/người giữ khố
• Period of validity: ngày hết hạn của chứng chỉ.
• Subject: bao gồm những thơng tin về thực thể được chứng nhận. • Public key: khóa cơng khai được chứng nhận.
• Signature: chữ ký điện tử do CA ký trên tồn bộ tài liệu có trong chứng chỉ nhằm đảm bảo giá trị của chứng thực của chứng chỉ số
Như vậy, giải pháp quản lý khố chánh sự tấn cơng trung gian đã được tạo ra. CA khơng có quyền truy cập đến khoá riêng của bất kỳ ai, có nghĩa CA không thể đọc được bất kỳ thông điệp nào. Hơn nữa, một chứng chỉ số có thể được sử dụng để xác nhận khố cơng khai của một người đối với một người, một CA không cần phải tham gia trực tiếp vào q trình chứng thực khố cơng khai của hai bên. Đây là một điều rất thuận lợi trong quá trình giao tiếp.
Các kỹ thuật an ninh được mơ tả ở trên (mã hố, hàm băm, mã hố khố cơng khai và chữ ký số) được coi là các biện pháp an ninh cơ bản. Các biện pháp này có thể được tổ hợp để xây dựng một cơ chế bảo mật phức tạp. PKC có thể chậm hơn SKC hàng nghìn lần nhưng có thể kết hợp hai kỹ thuật này một cách đơn giản, sử dụng PKC để trao đổi các khố bí mật và SKC mã hố dữ liệu trao đổi. Tương tự, chữ ký số thường khá chậm và chỉ hiệu quả với các thơng điệp nhỏ tuy nhiên có thể kết hợp chữ kỹ số với các bản tóm lược thơng điệp. Đầu tiên tính tốn bản tóm lược của một thơng điệp, sau đó dùng khố riêng ký vào bản tóm lược đó. Như vậy, các thơng điệp lớn có thể ký một cách dễ dàng. Tổ hợp của bản tóm lược thơng điệp với chữ ký số được dùng để đảm bảo tính tồn vẹn dữ liệu và xác thực người gửi mà khơng cần khố chia sẻ.