Kỹ thuật Diffie — Hellman là thuật toán mã hóa công cộng thực tế đầu tiên.
Trong thực tế, kỹ thuật này được ứng dụng rất nhiều cho việc quản lý khóa.
Cơ chế làm việc của kỹ thuật này là hai bên trao đổi có thể sử dụng kỹ thuật
Diffie — Hellman để tạo ra một giá trị bí mật dùng chung mà sau đó có thể được
dùng nhự một khóa chung cho thuật toán mã hóa khóa bí mật.
Khóa riêng Khóa công Khóa công Khóa riêng
của A cộng của B cộng của A của B
fr~—=—=——=—=—¬ r——=—————¬ f~—=—=—=—=—=—=¬ Ị Tính toán Tính toán khóa bí mật khóa bí mật Khóa bí mật ¡ Khóa bí mật chung chung rT~~~T~ ¬ Mã hóa '! Kỹ thuật mạng riêng äo VPN Kỹ thuật mạng riêng ảo VPN
Máy tính của A Máy tính của B |
Hình 3.10: Kỹ thuật DỰƒ71e — Hellman dùng khóa bí mật chung
Trong hình 3.10, A và B dùng kỹ thuật Diffie — Hellman để chia sẽ thông tin. Máy tính của người A sẽ dùng khóa riêng của mình ghép với khóa công cộng của B và dùng khóa này để tính toán ra một khóa mới gọi là khóa “bí mật chung”
(share secret key) và dùng khóa này để mã hóa dữ liệu và gửi cho máy tính của
người B. Đồng thời máy tính của người B cũng dùng khóa công cộng của người A ghép với khóa riêng của người B và cũng tính toán ra khóa “bí mật chung” và kết quả tính toán này cũng giống với kết quả tính toán trên máy tính của người A.
3.3.4.1 Mật mã khóa công cộng RSA (Ron Rivest, Adir Shamir,
Leonard Adelman):
Kỹ thuật khóa công cộng RSA dựa trên kỹ thuật là có thể tương đối đễ dàng
nhân hai giá trị A và B cho ra kết quả C nhưng không dễ dàng khi biết được C ta
có thể suy ngược lại hai giá trị A và B khi A và B là những giá trị tương đối lớn. Kỹ thuật này tạo ra các khóa công cộng phù hợp với các khóa riêng đặc biệt. Điều này tạo cho RSA những ưu điểm của việc cho phép người giữ một khóa riêng mã
hóa dữ liệu với khóa đó, vì thế bất kỳ người nào với một bản sao của khóa công cộng đều có thể giải mã nó sau đó.
Khóa RSA bao gồm ba giá trị số đặc biệt sử dụng trong các cặp để mã hóa và
giải mã đữ liệu. Khóa công cộng RSA gồm một giá trị khóa công cộng và một mạch toán modulus (mạch lấy giá trị tuyệt đối). Modulus là sản phẩm của hai số
lớn được chọn một cách ngẫu nhiên, được liên kết một cách toán học đến khóa
công cộng đã được chọn. Khóa riêng được tính toán từ hai số chính phát ra từ Modulus và giá trị khóa công cộng. Kỹ thuật RSA thường sử dụng một khóa có độ đài từ 56 — 128 bit.
Quá trình trao đổi đữ liệu đùng thuật toán RSA bao gồm 7 bước:
1. Người nhận yêu cầu khóa công cộng của người gửi.
2. Người gửi dùng hàm hash để giảm kích thước của thông điệp gốc
(original message), kết quá tạo ra “thông điệp phân loại” (message digest).
3. Người gửi mã hóa thông điệp phân loại bằng khóa riêng của mình và tạo ra chữ ký điện tử (signature).
4. Thông điệp được mã hóa và chữ ký điện tử được gửi đến người nhận
qua các phương thức truyền thông.
5. _ Ở phía người nhận khi nhận được thông điệp sẽ tiến hành việc giải mã
thông điệp và tái tạo lại thông điệp phân loại bằng cách sử dụng hàm
hash. :
6. Song song với việc tái tạo thông điệp phân loại, người nhận tiến hành giải mã chữ ký điện tử bằng cách sử dụng khóa công cộng của người gửi.
7. _ Cuối cùng, người nhận tiến hành việc so sánh kết quả của việc tái tạo thông điệp phân loại và kết quả giải mã chữ ký điện tử. Nếu hai kết quả
này giống nhau thì người nhận biết rằng thông điệp nhận được không bị ngăn chặn, giả mạo hay chỉnh sửa trong suốt quá trình truyền nếu ngược
lại nguời nhận sẽ loại bỏ thông tin nhận được.
Kỹ thuật Kỹ thuật
âoVÊN - Chữ ký điện ãoVPN Ò Chữ ký điện
tử tử
Ậ
Hàm Hàm Khóa công
Hash Hash cộng của
người gửi + Khóa riêng _
của người gửi
Máy tính của Máy tính của
người gửi người nhận
Hình 3.11: Kỹ thuật RSA dùng để gửi đữ liệu
3.3.5. Lựa chọn các phương pháp mã hóa:
Trong thực tế, không có phương pháp mã hóa nào là lý tưởng cho tất cả các tình trạng mạng mỗi phương pháp ứng dụng đều có những ưu và nhược điểm khác
nhau.
BẢNG SO SÁNH CÁC ƯU VÀ NHƯỢC ĐIỂM CỦA CÁC
PHƯƠNG PHÁP MÃ HÓA
Kiểu mã hóa Ưu điểm Nhược điểm - Tốc độ mã hóa và giải | -Các khóa giống
mã nhanh. nhau.
Khóa bí mật (mã hóa đối | - Có thể được bổ sung | - Khó khăn trong việc xứng) một cách dễ dang trong | phân phối khóa.
phần cứng. - Không hỗ trợ chữ ký
điện tử
Khóa công cộng (mã hóa
bất đối xứng)
- Sử dụng hai khóa khác
nhau.
- Tương đối dễ dàng
phân phối các khóa. - Cung cấp tín toàn vẹn
qua chữ ký điện tử. - Tốc độ chậm do đòi
hỏi phải tính toán nhiều.
Khi lựa chọn một thuật toán phù hợp để sử dụng, nguyên tắc chung là xác
định dữ liệu của chúng ta dễ bị ảnh hưởng ra sao và bao lâu thì thì dữ liệu cần phải
được bảo mật. Khi đã quyết định được thì ta sẽ lựa chọn một thuật toán mã hóa và
chiều dài thích hợp với các yêu cầu đó.
BẢNG SO SÁNH CHI PHÍ VÀ THỜI GIAN CÀN THIẾT ĐẺ
BÉ KHÓA CÓ CÁC ĐỘ DÀI KHÁC NHAU
Chiều dài khóa (bit) Giá (USD)
40 56 64 80 128
100.000 2s|j 35giờ| lInăm| 70.000 năm | 10 năm 1.000.000 2s| 3,5giờ| 37ngày| 7.000năm | 10! năm 100.000.000 2ms| 2 phút 9 giờ 70 năm | 101 năm
1.000.000.000 2 ms 13s 1 giờ 7 năm | 10! năm
100.000.000.000 2 0s 1s 32s 24 ngày | 10! năm
BÁẢNG SO SÁNH CHIÈÊU DÀI CỦA KHÓA BÍ MẬT VÀ KHÓA CÔNG CỘNG ĐÓI VỚI CÁC MỨC BẰNG NHAU
CỦA VIỆC BẢO MẬT
Chiều dài khóa bí mật (bit) Chiều dài khóa công cộng (bit)
56 384 64 512 80 768 112 1.792 128 2.304
CHƯƠNG 4:
GIAO THỨC IPSEC
Các giao thức TCP/IP nguyên thủy không bao gồm các đặc tính bảo mật do trong giai đoạn đầu của Internet khi mà người dùng thuộc các trường đại học và
các viện nghiên cứu thì vấn đề bảo mật không phải là quan trọng như hiện nay khi
các ứng dụng thương mại có mặt khắp nơi trên Internet.
Đề thiết lập tính bảo mật trong IP ở cấp độ gói, IETF đã đưa ra họ giao thức
IPSec. Họ giao thức IPSec đầu tiên cho việc xác thực, mã hóa các gói đữ liệu IP
được chuẩn hóa thành các RFC từ 1825 đến 1829 vào năm 1995. Họ giao thức này
mô tả kiến trúc cơ bản của IPSec bao gồm hai loại tiêu đề được sử dụng trong gói
IP để điều khiển quá trình xác thực và mã hóa: Một là xác thực tiêu đề IP - AH (IP
Authentication Header) điều khiển việc xác thực và hai là gói bảo mật tải ESP
(Encapsulating Security Payload) cho mục đích mã hóa.
Mục tiêu phát triển IPSec được nhắm cho họ giao thức IP kế tiếp là IPv6
nhưng đo IPv6 vẫn còn trong giai đoạn phát triển nên IPSec đã được thay đôi cho phù hợp với IPv4. Việc hỗ trợ IPSec chỉ là tùy chọn trong IPv4 nhưng đối với
IPv6 thì đã có sẵn IPSec.
4.1 DẠNG THỨC CỦA IPSEC:
Hoạt động của IPSec ở mức độ cơ bản đòi hỏi phải có các thành phần chính đó là:
Kết hợp bảo mật SA (Sercurity Association).
Xác thực tiêu đề AH (Authentication Header).
2y
hÐ
=
Bọc gói bảo mật tải ESP (Encapsulating Sercurity Payload).
4. Chế độ làm việc.
4.1.1 Kết hợp bảo mật SA (Sercurity Association):
Để hai bên có thể truyền đữ liệu đã được bảo mật (dữ liệu đã được xác thực
hay mã hóa hay cả hai) cả hai bên phải cùng thống nhất sử dụng giải thuật mã hóa,
làm cách nào đê chuyên khóa và chuyên khóa nêu cân. Tât cả các thỏa thuận trên
là do SA đảm trách. Việc giao tiếp giữa bên gửi và bên nhận đòi hỏi ít nhất một SA và có thê đòi hỏi nhiều hơn vì mỗi giao thức IPSec đòi hỏi phải có một SA cho
riêng nó. Do đó một gói được xác thực đòi hỏi một SA cho riêng nó. Do đó một gói được xác thực đòi hỏi một SA, một gói được mã hóa cũng yêu cầu phải có một SA, thậm chí nếu dùng chung một giải thuật cho xác thực và mã hóa thì cũng cần
phải có 2 SA khác nhau do sử dụng những bộ khóa khác nhau.
Một IPSec SA mô tả các vấn đẻ sau:
Giải thuật xác thực sử dụng cho AH và khóa của nó.
Giải thuật mã hóa ESP và khóa của nó.
Dạng thức và kích thước của bộ mật mã sử dụng trong giải thuật mã
hóa.
Giao thức, giải thuật, khóa sử dụng cho việc giao tiếp.
Giao thức, giải thuật mã hóa, khóa sử dụng cho việc giao tiếp riêng.
Khoảng thời gian mà khóa sẽ thay đổi.
Giải thuật xác thực, kiểu, chức năng sử dụng trong ESP và khóa được sử dụng bởi giải thuật đó.
Thời gian sống (time to live) của khóa. Thời gian sống của SA.
Địa chỉ nguồn của SA.
Có thể xem SA như một kênh bảo mật thông qua một mạng công cộng đến một người hay một nhóm làm việc cụ thê.
4.1.2 Xác thực tiêu đề AH (Authentication Header):
Trong hệ thống IPSec, xác thực tiêu đề AH được sử dụng cho các dịch vụ xác thực. AH được chèn vào giữa tiêu đề IP và nội dung phía sau mà không làm thay . đôi nội dung của gói đữ liệu.
Trước khi gắn AH
Tiêu đề IP gốc | TCP | Dữ liệu
IPv4 Sau khi gắn AH
Tiêu đề IP gốc TCP | Dữ liệu Trước khi gắn AH
Tiêu đề IP gốc | Các tiêu đề phụ | TCP | Dữ liệu
IPVỐ s¿ukúi gán An
:A- HÀ z_ | Hop— to — hop, định tuyến, :A
Tiêu đề IP gỗộc đích, phân mảnh TCP | Dữ liệu
Hình 4.1: Xác thực tiêu đề các gói IP ở IPv4 và IPv6
Xác thực tiêu đề gồm 5 trường: Trường tiêu đề kế tiếp (Next Header EField),
chiều đài tải (Payload Length), chỉ số tham số bảo mật SPI (Securit Parameter
Index), số tuần tự (Sequence Number), dữ liệu xác thực (Authentication Data).
Có hai khái niệm cần chú ý trong AH đó là: SPI và dữ liệu xác thực. Trong đó, SPI mang ý nghĩa chỉ ra các thiết bị nhận gói dữ liệu biết được họ giao thức bảo mật mà phía gửi dùng trong giao tiếp còn dữ liệu xác thực mang thông tin về
giải thuật mã hóa được định nghĩa bởi SPI.
Một phương pháp mặc định mới việc tính toán tổng kiểm tra (checksum) là HMAC (Hash — based message authentication code) kết hợp với MD5 và HMAC kết hợp với SHA — 1. Các phương pháp mặc định này là kết quả của những thay
đổi IPSec để cải thiện cơ chế xác thực bởi vì mặc định trước đó MD5 được phát
hiện là sẽ bị hiện tượng tấn công đụng độ (collision attacks), khi đó giá trị hàm
hash sẽ giống nhau cho hai mẫu tin khác nhau.
Thủ tục dùng cho các phương thức này giống nhau (HMAC - MD5 hay HMAC - SHA-—]1), tuy nhiên SHA - 1 có khả năng băm mạnh hơn MD5. Trong cả hai trường hợp, giải thuật hoạt động trên những khối đữ liệu 64 byte. Phương thức
HMAC — MDS§ sinh ra bộ xác thực 128 bit trong khi HMAC — SHA-—I sinh ra bộ xác thực 160 bit. Bởi vì chiều dài mặc định của bộ xác thực được định nghĩa trong
AH chỉ có 96 bit nên các giá trị xác thực sinh ra phải được chia nhỏ trước khi lưu vào trong trường xác thực của AH.
Khi nhận được gói đữ liệu, đầu nhận sẽ tính toán giá trị bộ xác thực của riêng nó là 128 bit hay 160 bit (tùy theo sử dụng phương thức nào), chia nhỏ nó ra tùy theo chiều đài được chỉ định trong trường xác thực và so sánh giá trị của nó với
giá trị xác thực nhận được. Khi mà cả hai giống nhau thì đữ liệu không bị thay đôi
trên đường truyền. Do có thể xảy ra một cuộc tấn công bằng cách chặn các gói và sau đó phát lại chúng vào thời điểm sau nên AH cung cấp dịch vụ chống phát lại để ngăn chặn các cuộc tắn công dựa trên phương thức trên.
Một điểm quan trọng là AH không giữ cho dữ liệu bí mật được. Nếu một
người tấn công chặn các gói trên mạng lại và sử dụng một mật mã thích hợp thì
cũng có thể đọc được nội dung của đữ liệu mặc dù không thể thay đổi được nội dung của dữ liệu. Để bảo mật dữ liệu chống lại việc nghe trộm thì chúng ta cần
phải sử dụng thành phần thứ hai của IPSec đó là ESP.
4.1.3. Bọc gói bảo mật tải ESP (Encapsulating Security Payload):
Bọc gói bảo mật tải ESP được sử dụng cho việc mã hóa dữ liệu. Giống như
tiêu đề AH, tiêu đề ESP được chèn vào giữa tiêu đề IP và nội dung tiếp theo của
gói. Tuy nhiên, ESP có nhiệm vụ mã hóa dữ liệu nên nội dung của gói sẽ bị thay
Trước khi gắn ESP
Tiêu đề IP gốc | TCP | Dữ liệu
IPv4 Sau khi gắn ESP
Dữ liệu Được mã hóa Ỳ Ậ Được xác thực
Trước khi gắn ESP
Tiêu đề IP gốc | Các tiêu đề phụ | TCP | Dữ liệu
IPv6 Sau khi gắn ESP
Hop — to — hop, định tuyến,
Tiêu đề IP gốc đích, phân mãnh chọn TCP | Dữ liệu
Được mã hóa
=
Được xác thực ứ
Hình 4.2: Bọc gói bảo mật tải ESP ở IPv4 và LPvó
Giống như tiêu đề AH, ESP gồm có SPI để chỉ cho bên nhận biết cơ chế bảo mật thích hợp cho việc xử lý gói. Số tuần tự trong tiêu đề ESP là bộ đếm sẽ tăng mỗi khi một gói được gửi đến cùng một địa chỉ và sử dụng cùng SPI. Số tuần tự
chỉ ra có bao nhiêu gói được gửi có cùng một nhóm các tham số. Số tuần tự giúp cho việc bảo mật chống lại các cuộc tấn công bằng cách ghép các gói và gửi chúng
sai thứ tự để làm rối loạn quá trình truyền thông. Phần còn lại của gói (ngoại trừ
xác thực dữ liệu) sẽ được mã hóa trước khi được gửi lên mạng.
ESP có thể hỗ trợ bất kỳ giao thức mã hóa nào. Người dùng có thể dùng
những giao thức khác nhau cho mỗi kết nối. Tuy nhiên, IPSec quy định mật mã DES — CBC ( DES with Cipher Block Chaining) là giá trị mặc định để bảo đảm hoạt động liên mạng.
Sử dụng ESP yêu cầu khóa DES 56 bit. Để sử dụng một chuỗi các từ mã, một vector 64 bit được khởi động và đữ liệu được xử lý theo từng khối 64 bit. Mặt
khác, ESP cũng có thể sử dụng cho mục đích xác thực. Trường xác thực ESP, một
trường tùy chọn trong tiêu đề ESP, bao gồm một kiểm tra tổng mã hóa (cryptographic checksum). Độ dài của tổng kiểm tra này thay đổi tùy theo giải thuật xác thực được sử dụng. Nó cũng có thể được bỏ qua nếu như dịch vụ xác
thực không được chọn trong ESP. Việc xác thực được tính toán sau khi tiến trình
mã hóa đữ liệu đã hoàn thành.
Dịch vụ xác thực cung cấp bởi AH khác so với ESP là địch vụ xác thực trong ESP không bảo mật tiêu đề IP đặt trước ESP mặc dù nó bảo mật tiêu đề IP đã bọc
trong gói trong chế độ đường hầm.
IPv4 | Tiêu đề IP gốc | AH | TCP | Dữ liệu
SA" XÃ Hop — to — hop, định tuyến, Đích tùy . IPv6 | Tiêu đề IP gắc đích, phân mãnh AH chọn TCP | Dữ liệu
Phần đuôi | Cấp quyền
ESP ESP
IPv4 Tiêu đề IP gốc | TCP | Dữ liệu
Tiêu đề | Tiêu đềIP .a_ | Phần đuôi | Cấp quyền