CHƯƠNG 2 BẢO MẬT MẠNG RIấNG ẢO
2.2 Cụng nghệ bảo mật mạng riờng ảo
2.2.3 Tớnh bảo mật
2.2.3.1 Mó húa đối xứng
Encrypt
Encrypt Ecryption DecryptDecrypt Message Clear Message Clear Message Shared Secret Key Shared Secret Key
Hỡnh 2. 10: Mó hoỏ khoỏ bớ mật hay đối xứng
Thuật toỏn đối xứng đựoc định nghĩa là một thuật toỏn khoỏ chia sẻ sử dụng để mó hoỏ và giải mó một bản tin. Cỏc thuật toỏn mó hoỏ đối xứng sử dụng chung một khoỏ để mó hoỏ và giải mó bản tin, điều đú cú nghĩa là cả bờn gửi và bờn nhận đó thoả thuận, đồng ý sử dụng cựng một khoỏ bớ mật để mó hoỏ và giải mó.
Khi ta cú nhiều sự trao đổi với N người khỏc nhau thỡ ta phải giữ và dấu N khoỏ bớ mật với mỗi khoỏ được dựng cho mỗi sự trao đổi.
Ưu điểm của mó hoỏ khoỏ đối xứng:
+ Thuật toỏn này mó hoỏ và giải mó rất nhanh, phự hợp với một khối lượng lớn thụng tin.
+ Chiều dài khoỏ từ 40ữ168 bit.
+ Cỏc tớnh toỏn toỏn học dễ triển khai trong phần cứng. + Người gửi và người nhận chia sẻ chung một mật khẩu. Cơ chế mó hoỏ đối xứng nảy sinh vấn đề đú là:
+ việc nhận thực bởi vỡ đặc điểm nhận dạng của nhận dạng của một bản tin khụng thể chỳng minh được.
+ Do hai bờn cựng chiếm giữ một khoỏ giống nhau nờn đều cú thể tạo và mó hoỏ và cho là người khỏc gửi bản tin đú. Điều này gõy nờn cảm giỏc khụng tin cậy về nguồn gốc của bản tin đú.
Một số thuật toỏn đối xứng như DES (Data Encryption Standard) cú độ dài khoỏ là 56 bit, 3DES cú độ dài khoỏ là 168 bit và AES (Advanced Encryption Standard) cú độ dài khoỏ là 128 bit, 256 bit hoặc 512 bit. Tất cả cỏc thuật toỏn này sử dụng cựng một khoỏ để mó hoỏ và giải mó thụng tin.
a. Cỏc chế độ làm việc ECB, CBC
Tựy thuộc vào cỏch thức chuyển cỏc khối plaintext đầu vào thành cỏc khối ciphertext đầu ra mà cỏc thuật toỏn mật mó khối được phõn loại theo cỏc chế độ làm việc khỏc nhau, trong đú cú ECB, CBC và OFB.
Chế độ sỏch mó điện tử ECB (Electronic Code Book Mode): đối với thuật toỏn mật mó khối ECB, một khối plaintext đầu vào được ỏnh xạ tĩnh thành một khối ciphertext đầu ra. Với những nguồn tài nguyờn bộ nhớ hưu hạn, cú thể xõy dựng một bảng tra cứu (loopup table) hay danh sỏch mó điện tử (Electronic Code Book) để ỏnh xạ ngược một khối ciphertext về dạng plaintext tương ứng.
Hỡnh 2. 11: Chế độ chớnh sỏch mó điện tử ECB
Như vậy, cỏc thuật toỏn mật mó ở chế độ ECB khụng an toàn đối với những tấn cụng kiểu phỏt lại (replay attacks), trong đú kẻ tấn cụng lưu lại khối ciphertext (cú khả năng chứa thụng tin mật) để cú thể giải mó ở những thời điểm sau đú.
P1 P2 P3 E E E C1 C2 C3 C1 C2 C3 D D D P1 P2 P3 Phớa phỏt Phớa thu
Chế độ chuỗi khỗi mật mó CBC (Cipher Block Chaining Mode) để ngăn chặn cỏc tấn cụng kiểu phỏt lại, cỏc thuật toỏn mật mó khối hiện nay thường hoạt động ở chế độ CBC. Mỗi khối plaintext được XOR với khối ciphertext trước đú rồi mới thực hiện mật mó. Như vậy cỏc khối plaintext giống nhau xuất hiện trong cựng một bản tin sẽ tạo thành cỏc khối ciphertext khỏc nhau.
Tại phớa thu, mỗi ciphertext sau khi thực hiện giải mó sẽ được XOR với khối ciphertext thu được trước đú để nhận được khố plaintext tương ứng. Nếu một lỗi bit xảy ra thỡ sẽ làm sai toàn bộ khối plaintext tương ứng, cựng với một lỗi bit trong khối plaintext kế tiếp. Như vậy ảnh hưởng của lỗi chỉ giới hạn trong hai khối plaintext mà thụi.
Hỡnh 2. 12: Thuật toỏn mật mó khối ở chế độ CBC
Bất cứ bản tin được mật mó CBC nào cũng phải được khởi tạo bởi một vộc tơ IV (Initialization Vector). IV được truyền qua kờnh khụng an toàn ở thời điểm bắt đầu của phiờn truyền dẫn. Để trỏnh cỏc tấn cụng kiểu lặp lại, giỏ trị IV chỉ sử dụng một lần. Điều này cú thể thực hiện được bằng cỏch gỏn giỏ trị ngẫu nhiờn những tăng đơn thuần cho IV. b. Thuật toỏn DES
Chuẩn mật mó dữ liệu DES được đưa ra từ năm 1977 tại Mỹ và đó được sử dụng rộng rói. DES là cơ sở để xõy dựng thuật toỏn tiờn tiến hơn là 3DES. Hiện nay DES vẫn được sử dụng cho những ứng dụng khụng đũi hỏi tớnh an toàn cao, và khi chuẩn mật mó AES chưa chớnh thức thay thế nú.
P1 P2 P3 E E E IV C2 C3 C1 C2 C3 D D D P1 P2 P3
Phớa phỏt Phớa thu
C1
Key (64 bớt)
Round 1 Paintext Block
(64 bit) Hoỏn vị khởi tạo
(IP) Round 2 Round 16 Bỏ Parity (56 bit) Hoỏn vị đảo (RP) Ciphertext Block (64 bits)
Hỡnh 2. 13: Sơ đồ thuật toỏn DES
DES là sự kết hợp của hai kỹ thuật cơ bản trong mật mó là xỏo trộn (confusion) và xếp lại (defusion). Hai kỹ thuật này được thực hiện trong một vũng (round) với đầu vào là khối dữ liệu plaintext và khoỏ. DES cú 16 vũng, và hai kỹ thuật trờn được thực hiện trờn khối plaintext 16 lần. Mỗi vũng của thuật toỏn DES đều cú một khoỏ 48 bit riờng bằng cỏch liờn tục dịch và hoỏn vị khoỏ 56 bit trong từng vũng một.
Độ dài khoỏ là 56 bit nhưng thực chất là 64 bit, trong đú cú 8 bit kiểm tra chẵn lẻ và cỏc bit này bị loại bỏ khi khoỏ được đưa vào thuật toỏn DES.
Trước khi thực hiện thuật toỏn DES, khối plaintext 64 bit đi qua bước hoỏn vị khởi tạo IP (Initial Permutation), khụng phụ thuộc vào khoỏ. Sau khi thực hiện 16 vũng lặp, dữ liệu đi qua bước hoỏn vị đảo RP (Reversed Permutation) và tạo thành một khối bản tin mó hoỏ (ciphertext). Thực chất cỏc bước hoỏn vị này khụng làm tăng tớnh an toàn cho DES.
Trung tõm của vũng xử lý DES là mạng Fiestel (tờn của nhà khoa học tại IBM). Sơ đồ mạng Fiestel như hỡnh vẽ:
Li-1 Ri-1 Khoỏi-1 Li Ri Khoỏi S-Box (Thay thế) Hoỏn vị mở rộng Hoỏn vị nộn Dịch Dịch P-Box (Hoỏn vị) 32 56 48 48 56 32 32 32 32 Mạng Fiestel Hỡnh 2. 14: Mạng Fiesel
Khối 64 bit plaintext đầu vào được chia thành hai khối 32 bit: khối phải (Ri-1) và khối trỏi (Li-1). Khối phải đầu vào thành khối trỏi đầu ra (Li). Khối phải cũng đi vào một mạch xử lý: Đầu tiờn, nú được chuyển thành 48 bit bởi hoỏn vị mở rộng EP (Expansion Permutation); sau đú thực hiện phộp toỏn logic XOR với một khoỏ 48 bit; 48 bit sau khi đó XOR với khoỏ được đưa tới 8 khối thay thế S-Box (Box substitution), mỗi khối cú 6 đầu vào, 4 đầu ra; 32 bit sau khi đi ra khỏi cỏc khối thay thế S được đưa tới khối hoỏn vị P-Box (P_ Box permutation). Đầu ra của mạch xử lý được XOR với khối trỏi (Li-1) và trở thành khối phải của dữ liệu đầu ra (Ri).
Mỗi vũng trong thuật toỏn DES đều cú một khoỏ 48 bằng cỏch liờn tục dịch và hoỏn vị khoỏ 56 bit trong từng vũng một.
Một phiờn bản của DES là 3 DES được gọi như thế bởi vỡ thuật toỏn thực hiện ba hoạt động mó hoỏ dữ liệu. Nú thực hiện một quỏ trỡnh mó hoỏ, một quỏ trỡnh giải mó và sau đú là quỏ trỡnh mó hoỏ khỏc, mỗi quỏ trỡnh thực hiện với một khoỏ 56 bit khỏc nhau. Qỳa trỡnh này tạo ra một khoỏ kết hợp 168 bit, cung cấp phương thức mó hoỏ mạnh. Tất cả cỏc sản phẩm và phần mềm Cisco VPN đều hỗ trợ thuật toỏn mó hoỏ 3DES với khoỏ 168 bit và thuật toỏn DES 56 bit.
2.2.3.2 Mó húa bất đối xứng
Thuật toỏn mó hoỏ khoỏ cụng cộng được định nghĩa là một thuật toỏn sử dụng một cặp khoỏ để mó hoỏ và giải mó bảo mật một bản tin. Theo thuật toỏn này thỡ sử dụng một khoỏ để mó hoỏ và một khoỏ khỏc để giải mó nhưng hai khoỏ này cú liờn quan với nhau
tạo thành một cặp khoỏ duy nhất của một bản tin, chỉ cú hai khoỏ này mới cú thể mó hoỏ và giải mó cho nhau.
Encrypt
Encrypt EncryptedMessage DecryptDecrypt Messageclear
clear Message
Public Key Private
Key
Hỡnh 2. 15: Thuật toỏn mó hoỏ khoỏ cụng cộng
Ưu điểm của thuật toỏn mó hoỏ khoỏ cụng cộng:
+Khoỏ cụng cộng của khoỏ đụi cú thể được phõn phỏt một cỏc sẵn sang mà khụng sợ rằng điều này làm ảnh hưởng đến việc sử dụng cỏc khoỏ riờng. Khụng cần phải gửi một bản sao chộp khoỏ cụng cộng cho tất cả cỏc đỏp ứng mà chỳng ta cú thể lấy nú từ một mỏy chủ được duy trỡ bởi một cụng ty hay là nhà cung cấp dịch vụ.
+ Cho phộp xỏc thực nguồn phỏt của bản tin.
Nhươc điểm của mó hoỏ khoỏ cụng cộng là quỏ trỡnh mó hoỏ và giải mó rất chõm, chậm hơn nhiều so với mó hoỏ khoỏ bớ mật. Do đú nú thường được sử dụng để mó hoỏ cỏc khoỏ phiờn, một lượng dữ liệu nhỏ. Một số thuật toỏn sử dụng mó hoỏ khoỏ cụng cộng như RSA, Diffie-Hellman.
a. Thuật toỏn RSA
Kỹ thuật mó hoỏ khoỏ cụng cộng RSA được phỏt triển năm 1977, và cỏi tờn RSA bắt nguồn từ tờn của ba nhà phỏt triển là: Ron Rivest, Adir Shamir và Leonard Adleman.
Cơ sở của thuật toỏn dựa trờn tớnh phức tạp của phộp phõn tớch một số tự nhiờn lớn thành cỏc ước số nguyờn tố, được hiểu là cú thể dễ dàng nhõn A và B được kết quả là C nhưng khụng dễ dàng suy ra A và B khi biết C, với A, B là những số tương đối lớn.
Hàm một chiều trong thuật toỏn RSA cú dạng y= f(x)= Xe Cỏc bước thực hiện thuật toỏn RSA:
Bước 1: Tạo khoỏ
- Tạo hai số nguyờn lớn p,q - Tớnh n = p.q; 0(n)=(p-1)(q-1)
- Chọn ngẫu nhiờn 1<e<0(n) thoả gcd (0(n), e)=1 - Tớnh d=e-1mod 0(n)
- Khoỏ cụng khai Ku=[e,n] - Khoỏ bớ mật Kr=[d,n] Bước 2: Mật mó
- Đoạn tin x<n
- Mật mó y=Xemod n Bước 3 Giải mó - Khối tin mó:y
- Giải mó y=Xemod n.
Khoỏ RSA bao gồm ba giỏ trị số đặc biệt được sử dụng trong cỏc cặp để mó hoỏ và giải mó dữ liệu. Khoỏ cụng cộng RSA gồm một giỏ trị khoỏ cụng cộng (thường là 317 hay 65.537) và một mạch toỏn modulus để lấy giỏ trị tuyệt đối. Modulus là sản phẩm của hai số lớn chớnh đượ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 khoỏ cụng cụng được chọn. Khoỏ riờng được tớnh toỏn từ hai số chớnh phỏt ra từ modulus và giỏ trị khoỏ cụng cộng.
Thực tế, để thực hiện thuật toỏn mật mó khoỏ cụng khai RSA cũn phải liờn quan đến một loạt cỏc vấn đề lý thuyết số phức tạp, như thuật toỏn Euclide để tỡm ƯSCLN của hai số nguyờn, thuật toỏn Miller-Rabin để kiểm tra tớnh nguyờn tố của cỏc số tự nhiờn lớn.
Kỹ thuật này tạo ra cỏc khoỏ cụng cộng phự hợp với cỏc khoỏ riờng đặc biệt. Điều này tạo cho RSA những ưu điểm là cho phộp người giữa một khoỏ riờng mó hoỏ dữ liệu với khoỏ đú, vỡ thế bất kỳ người nào cú một bản sao của khoỏ cụng cộng đều cú thể giải mó nú sau đú.
b. Thuật toỏn Diffie-Hellman
Kỹ thuật Diffie-Hellman là thuật toỏn mó hoỏ khoỏ cụng cộng thực tế đầu tiờn và trong thực tế kỹ thuật này được ỳng dụng rất nhiều cho việc quản lý khoỏ. Thuật toỏn DH cho phộp tự động bảo mật trao đổi khoỏ qua một mạng khụng an toàn.
Với DH, mỗi đối tượng ngang hàng tạo ra một cặp khoỏ chung và riờng. Khoỏ riờng được tạo ra bởi mỗi đối tượng ngang hàng và được giữ bớ mật, khụng bao giờ chia sẻ. Khoỏ chung được tớnh toỏn từ khoỏ riờng bởi mỗi đối tượng ngang hàng và được truyền trờn kờnh khụng an toàn. Mỗi đối tượng tổ hợp khoỏ chung của đối tượng ngang hàng khỏc với khoỏ riờng của chỳng, và tớnh toỏn để tao ra cựng một số mật mó chia sẻ. Số mật
mó chia sẻ đựoc biến đổi thành một khoỏ chia sẻ. Khoỏ mật mó chia sẻ luụn truyền trờn một kờnh khụng an toàn.
Trao đổi khoỏ DH là một phương thức trao đổi khoỏ chung cung cấp cho hai đối tượng ngang hàng IPSec thiết lập một mật mó chia sẻ mà chỉ chỳng biết.
Quỏ trỡnh DH cú thể chia thành 5 bước:
1.Quỏ trỡnh DH bắt đầu với mỗi đối tượng ngang hàng tạo ra một số nguyờn lớn p và q. Mỗi đối tượng ngang hàng gửi cho đối tượng khỏc số nguyờn này của chỳng. Vớ dụ, A gửi p tới B. Mỗi đối tượng ngang hàng sau đú sẽ sử dụng giỏ trị p, q để tạo ra g, p là primitive root.
2. Mỗi đối tượng tạo ra một khoỏ DH riờng A là Xa, B là Xb.
3. Mỗi đối tượng ngang hàng tạo ra một khoỏ DH chung. Khoỏ riờng của mỗi đối tượng là sự kết hợp của số Prime p và primitive root g. Đối với A là Ya = g^Xa mod p, với B là Yb=g^Xb mod p.
4. Cỏc khoỏ chung Ya và Yb được trao đổi trong cụng cộng.
5. Mỗi đối tượng ngang hàng tạo ra một số mật mó chia sẻ ZZ bằng cỏch tổ hợp khoỏ chung nhận được từ đối tượng ngang hàng tương ứng với khoỏ riờng của nú. Đối với A là ZZ= YbXa mod p, đối với B là ZZ= YaXb mod p. Số mật mó chia sẻ ZZ được sử dụng trong việc tỡm ra cỏc khoỏ mật mó và xỏc thực.
Vớ dụ mụ tả hoạt động của thuật toỏn trao đổi khoỏ DH
1. Tạo ra một số nguyên là p rất lớ n gửi p đến B
Nhận q Tạo ra g
2. Tạo ra khoá cục bộ Xa 3. Tạo ra khoá chung Ya=g^Xa mod p 4. Gửi khoá chung Ya
5. Tạo ra số mật mã chia sẻ ZZ=Yb^Xa mod p 6. Tạo ra khoá mật mã chia sẻ từ ZZ
(DES,3DES, hoặc AES)
1. Tạo ra một số nguyên là q rất lớ n gửi p đến A
Nhận p Tạo ra g
2. Tạo ra khoá cục bộ Xb 3. Tạo ra khoá chung Yb=g^Xb mod p 4. Gửi khoá chung Yb
5. Tạo ra số mật mã chia sẻ ZZ=Ya^Xb mod p 6. Tạo ra khoá mật mã chia sẻ từ ZZ