Phương thức mó húa dựng khoỏ bớ mật (Secret Key Crytography)
Sơ đồ sau đõy minh hoạ quỏ trỡnh làm việc của phƣơng thức mó hoỏ sử dụng khoỏ bớ mật:
Hỡnh 9 - Phƣơng thức mó húa đối xứng
Đõy là phƣơng thức mó hoỏ đối xứng: Message ở dạng Plaintext (dạng đọc đƣợc) đƣợc mó hoỏ sử dụng Private Key (khoỏ mà chỉ cú ngƣời mó hoỏ mới biết đƣợc) tạo thành message đƣợc mó hoỏ (Ciphertext). Ở phớa nhận, message mó hoỏ đƣợc giải mó cựng với Private Key mó hoỏ ban đầu thành dạng Plaintext.
Điểm chỳ ý của phƣơng phỏp mó hoỏ này là việc sử dụng khoỏ bớ mật cho cả quỏ trỡnh mó hoỏ và quỏ trỡnh giải mó. Do đú, nhƣợc điểm chớnh của phƣơng thức này là cần cú quỏ trỡnh trao đổi khoỏ bớ mật, dẫn đến tỡnh trạng dễ bị lộ khoỏ bớ mật.
Cú hai loại mó hoỏ đối xứng nhƣ sau: Mó hoỏ theo từng khối và mó hoỏ theo bits dữ liệu.
Cỏc thuật toỏn mó hoỏ đối xứng theo từng khối dữ liệu (Block Cipher) thực hiện chia message ở dạng plaintext thành cỏc khối vớ dụ 64 bits (hoặc 2n bits), sau đú tiến hành mó hoỏ từng khối này. Đối với khối cuối cựng nếu khụng đủ 64 bits sẽ đƣợc bự thờm phần dữ liệu đệm (padding). Bờn nhận sẽ thực hiện giải mó theo từng khối.
Mó hoỏ theo từng bits dữ liệu (Stream Ciphers)
Bảng sau đõy mụ tả một số phƣơng phỏp mó hoỏ đối xứng sử dụng khoỏ bớ mật
Tờn thuật toỏn Chế độ mó hoỏ Chiều dài khoỏ
DES Theo khối 56
IDEA Theo khối 128
RC2 Theo khối 2048
Encrytion
Plaintext Ciphertext Decrytion
Private key
RC4 Theo bit 2048
RC5 Theo khối 2048
Để khắc phục điểm hạn chế của phƣơng phỏp mó hoỏ đối xứng là quỏ trỡnh trao đổi khoỏ bớ mật, ngƣời ta đó sử dụng phƣơng phỏp mó hoỏ phi đối xứng sử dụng một cặp khoỏ tƣơng ứng với nhau gọi là phƣơng thức mó hoỏ phi đối xứng dựng khoỏ cụng khai (Public-Key Crytography).
Phương thức mó húa dựng khoỏ cụng khai (Public-Key Crytography)
Phƣơng thức mó húa dựng khoỏ cụng khai đƣợc phỏt minh bởi Whitfield Diffie và Martin Hellman vào năm 1975; Phƣơng thức mó húa này sử dụng 2 khúa là Public key và Private Key cú cỏc quan hệ toỏn học với nhau. Trong đú Private Key đƣợc giữ bớ mật và khụng cú khả năng bị lộ do khụng cần phải trao đổi trờn mạng; Public key khụng phải giữ bớ mật và mọi ngƣời đều cú thể nhận đƣợc khoỏ này. Do phƣơng thức mó húa này sử dụng 2 khúa khỏc nhau, nờn ngƣời ta gọi nú là phƣơng thức mó húa phi đối xứng. Mặc dự Private key đƣợc giữ bớ mật, nhƣng khụng giống với "secret Key" đƣợc sử dụng trong phƣơng thức mó húa đối xứng sử dụng khoỏ bớ mật do Private Key khụng đƣợc trao đổi trờn mạng.
Public key và Private key tƣơng ứng của nú cú quan hệ toỏn học với nhau và đƣợc sinh ra sau khi thực hiện cỏc hàm toàn học; nhƣng cỏc hàm toỏn học này luụn thoả món điều kiện là sao cho khụng thể tỡm đƣợc private key từ public key và ngƣợc lại. Do đú, một cặp khoỏ public key và private key tƣơng ứng đƣợc gọi là key pair.
Do cú mối quan hệ toỏn học với nhau, một message đƣợc mó húa bằng public key chỉ cú thể giải mó đƣợc bằng private key tƣơng ứng; một message đƣợc mó húa bằng private key chỉ cú thể giải mó đƣợc bằng public key tƣơng ứng của nú.
Thuật toỏn Public key cú tớnh thuận nghịch nếu nú cú khả năng sử dụng cả cho bảo mật và ký điện tử. Nú là khụng cú tớnh thuận nghịch nếu chỉ cú khả năng ký. Với cỏc thuật toỏn bất thuận nghịch, private key chỉ cú thể mó húa plaintext (tức là quỏ trỡnh ký) mà khụng cú khả năng giải mó ciphertext. Một loại khỏc của thuật toỏn mó húa public-key là hoặc khụng thể mó húa hoặc khụng thể ký; thuật toỏn này
Thuật toỏn Public-key dựa trờn mối quan hệ toỏn học giữa Public key và private key. Bảng sau đõy liệt kờ cỏc thuật túan public-key thụng dụng nhƣ sau:
Tờn Thuật toỏn Type Nền tảng toỏn học
DSA Digital signature Thuật toỏn rời rạc
RSA Digital signature, Key
Exchange Tỡm thừa số
RSA, là tờn của 3 nhà toỏn học đó tỡm ra phƣơng thức mó húa này, đú là Rivest, Shamir và Adleman. RSA là thuật toỏn public-key thụng dụng nhất từ trƣớc tới nay. RSA cú thể sử dụng cả cho mó húa, ký, và key exchange. Chiều dài của key cú thể thay đổi, thụng thƣờng trong phạm vi từ 512 đến 2048 bits. Việc lựa chọn chiều dài key phải đảm bảo cõn bằng giữa tốc độ tớnh toỏn và độ phức tạp của phƣơng thức mó húa.
DSA (Digital Signature Algorithm), phƣơng thức mó húa này đƣợc ra đời từ chuẩn DSS (Digital Signature Standard), đƣợc giới thiệu vào năm 1994. DSA chỉ cú thể ký vào một message; nú khụng thể dựng cho mó húa bảo mật và key exchange
Cơ chế làm việc của phƣơng phỏp mó hoỏ sử dụng khoỏ cụng khai đƣợc mụ tả bằng hỡnh sau:
Hỡnh 10 - Phƣơng thức mó húa phi đối xứng
Giả sử A muốn gửi cho B một message đƣợc mó húa theo phƣơng thức public- key. A sử dụng Public key của B để mó húa Plaintext tạo thành ciphertext (A cú thể nhận đƣợc Public Key của B do Public Key là khoỏ cụng khai). Sau đú ciphertext này đƣợc chuyển tới B. Ở phớa nhận B sử dụng private key của mỡnh để giải mó Ciphertext và đọc đƣợc message ban đầu của A.
Do đú, để thực hiện phƣơng thức mó húa dựng khoỏ cụng khai, cú một số vấn đề cần giải quyết nhƣ sau:
Encrytion Public key
Plaintext Ciphertext Decrytion Plaintext
Cõu hỏi 1: Làm thế nào để A cú thể kiểm tra tớnh xỏc thực của Public Key của B?
Cõu hỏi 2: Làm thế nào để B biết đƣợc chớnh xỏc là message đú đƣợc gửi đi từ A.
Chỳng ta xem xột cỏc tỡnh huống cú thể bị tấn cụng đối với phƣơng thức mó hoỏ phi đối xứng nhƣ sau:
Trƣờng hợp cú kẻ nghe trộm thụng tin trao đổi trờn mạng: C là một ngƣời nghe trộm, C cú thể lấy đƣợc ciphertext chuyển từ A đến B, nhƣng khụng thể giải mó đƣợc message này vỡ C khụng cú private key của B.
Trƣờng hợp giả mạo khoỏ cụng khai: Vấn đề đặt ra là làm thế nào để A cú thể biết chớnh xỏc Public key mà A sử dụng đỳng là Public Key của B. Trong trƣờng hợp này, nếu D giả mạo B gửi Public key của D đến A (A nhận đƣợc Public key là của D mà khụng phải là của B), và A vẫn mó hoỏ message của mỡnh; khi đú message đến D sẽ vẫn giải mó đƣợc do D cú private key của mỡnh. Để khắc phục hạn chế này ngƣời ta xõy dựng một hệ thống cỏc tổ chức thứ ba đúng vai trũ trung gian trong việc xỏc thực tớn đỳng đắn của một Public Key. Đú là cỏc tổ chức xõy dựng hệ thống chứng thực điện tử (trong phần 3 sẽ trỡnh bày kỹ hơn về Ceriticate)
Trƣờng hợp sử dụng Private Key để mó hoỏ: Nếu nhƣ A sử dụng private key của mỡnh để mó húa một message và gửi message đú tới B? Khi đú, B cú thể sử dụng Public key của A để giải mó message từ A. Một ngƣời thứ ba C cũng cú Public key của A (public key là một khúa cụng khai) nờn nếu nhận đƣợc message gửi từ A cũng cú thể giải mó đƣợc message và đọc nú. Do đú, A khụng thể sử dụng private key của mỡnh để mó húa một message. Tuy nhiờn dựa vào đặc điểm ỏnh xạ 1:1 giữa Private Key và Public Key ta cú thể thấy rằng message đƣợc mó hoỏ là đƣợc gửi từ A mà khụng phải là một ngƣời khỏc. Điều này cũng trả lời cho cõu hỏi 2.
Một hạn chế của phƣơng thức mó húa dựng khoỏ cụng khai là làm giảm tốc độ thực hiện thao tỏc xuống từ 100 đến 1000 lần so với phƣơng thức mó húa đối xứng. Do đú, phƣơng thức mó húa này ớt đƣợc sử dụng để mó húa với dữ liệu kớch thƣớc lớn. Phƣơng thức này thƣờng đƣợc sử dụng cho giai đoạn khởi đầu của kết nối giữa
để thực hiện qỳa trỡnh trao đổi dữ liệu (khoỏ bớ mật này chỉ tồn tại trong một session làm việc duy nhất). Việc sử dụng kỹ thuật mó hoỏ dựng dựng khoỏ cụng khai cho quỏ trỡnh bắt tay giữa hai thực thể cần trao đổi thụng tin cú yờu cầu bảo mật kết hợp với thuật toỏn dựng khoỏ bớ mật cho quỏ trỡnh trao đổi dữ liệu tạo thành một phƣơng thức mó húa lai. Để thực hiện đƣợc phƣơng thức mó hoỏ lai, Netscape đó đƣa ra giao thức SSL thực hiện cỏc quỏ trỡnh trờn. Phần 3 trỡnh bày về tạo kết nối bảo mật sẽ trỡnh bày kỹ hơn về vấn đề này.
Qua cỏc phõn tớch trờn, chỳng ta thấy rằng cú hai khả năng cần phải khắc phục khi sử dụng phƣơng thức mó húa dựa trờn nền tảng Public key đú là:
Nếu sử dụng Public key để mó húa một message thỡ đảm bảo message đú là hoàn toàn bảo mật; nhƣng cần phải kiểm tra tớnh xỏc thực của public key (1)
Nếu sử dụng Private key để mó húa một message thỡ cú thể giải mó đƣợc bởi nhiều ngƣời cú đƣợc public key; nhƣng lại cú thể sử dụng phƣơng thức này để kiểm tra tớnh xỏc thực của một ngƣời ký vào message đú. (2)
Vấn đề đặt ra là cú thể tận dụng đƣợc hai đặc điểm này để đảm bảo phiờn giao dịch là hoàn toàn bảo mật và tin cậy. Cụ thể nhƣ sau:
Ngƣời ta sẽ sử dụng private key để ký vào một message; mà nội dung của message này là public key của ngƣời đú. Quỏ trỡnh này đảm bảo đƣợc rằng public key đỳng là của ngƣời; điều này khắc phục đƣợc nhƣợc điểm (1) đó nờu ở trờn.
Sau đú một message đƣợc mó húa bằng public key vừa gửi đến đảm bảo rằng chỉ cú ngƣời cú private key của nú mới cú khả năng giải mó đƣợc. Điều này khắc phục đƣợc nhƣợc điểm (2) đó nờu ở trờn.
Phương thức mó hoỏ một chiều - thuật toỏn Băm
Để đảm bảo tớnh toàn vẹn của dữ liệu khụng bị thay đổi so với dữ liệu ban đầu, ngƣời ta đƣa ra cỏc phƣơng thức mó hoỏ một chiều sử dụng cỏc thuật toỏn “Băm”. Hoạt động của phƣơng thức mó hoỏ này đƣợc minh hoạ trong hỡnh sau:
Hỡnh 11 - Mó húa một chiều
one-way function
Plain text Message
Hỡnh trờn mụ tả hoạt động của phƣơng thức mó húa 1 chiều (Message - Digest); Theo đú, đầu ra của phƣơng thức này là một Message Digest cú chiều dài cố định (message này gọi là message digest, hoặc digest hoặc hash). Với mỗi đầu vào Plaintext sẽ chỉ cú duy nhất một kết quả đầu ra tƣơng ứng và từ Message Digest khụng thể tỡm ra Message dạng Plaintext ban đầu. Message (dạng Plain text) sau khi thực hiện hàm hashing sẽ tạo ra một chuỗi cỏc ký tự - đặc trƣng cho message đầu vào. Giải thuật message digest là một thuận toỏn một chiều hay thƣờng gọi là thuật toỏn hash. Phƣơng thức mó húa này khụng sử dụng để mó húa dữ liệu mà thƣờng sử dụng để kiểm tra tớnh toỏn vẹn của dữ liệu trong quỏ trỡnh truyền thụng tin trờn mạng.
Cỏc thuật toỏn hashing cú 3 đặc điểm chớnh nhƣ sau:
Khụng cú khả năng tạo ra message ban đầu dựa trờn digest của nú (núi cỏch khỏc là thuật toỏn hashing phải đảm bảo cú tớnh một chiều, khụng thể thực hiện theo chiều ngƣợc lại)
Khụng thể tỡm ra một message gốc từ một digest đặc biệt
Khụng thể tỡm 2 message khỏc nhau cú cựng một digest giống nhau
Nếu chiều dài của digest là m bits, nú sẽ cần phải thử 2m message để tỡm ra một message với digest mong muốn tƣơng ứng và thực hiện 2m/2 meesage để tỡm 2 message cú cựng một digest. Do đú cỏc hàm thực hiện message-digest phải cú đầu ra ớt nhất là 128 bits , vỡ tối thiểu là 264 là khụng thể tớnh toỏn đƣợc với cỏc khả năng tớnh toỏn hiện nay. Bảng sau đõy mụ tả một số thuật toỏn hashing thƣờng sử dụng:
Thuật toỏn Chiều dài của digest (bits)
MD2 128
MD4 128
MD5 128
SHA-1 160
Message Authentication Codes - MAC
MAC là một dữ liệu cú chiều dài cố định, đƣợc gửi cựng với một message để kiểm tra tớnh toàn vẹn dữ liệu của message đú. Cỏc phƣơng thức mó húa dựng khúa bớ mật và khúa cụng khai cú thể đƣợc sử dụng nhƣ là nền tảng của việc tạo cỏc MACs. Một cỏch thụng dụng để tạo MAC là dựng nhờ một block cipher text (một đoạn text đó đƣợc mó húa) đƣợc tạo từ phƣơng thức mó húa đối xứng sử dụng khúa bớ mật. Cỏc giao dịch tài chớnh trờn mạng đó sử dụng phƣơng thức này một thời gian dài để bảo vệ cỏc giao dịch điện tử giữa cỏc nhà bank trờn mạng. Một hàm mó húa hashing đƣợc sử dụng kết hợp giữa một message và một khúa bớ mật để tạo ra MAC. ở phớa ngƣời nhận message, (chỳ ý ngƣời này dựng chung khúa bớ mật với phớa ngƣời gửi), tớnh toỏn hash theo dữ liệu gửi đến cựng với khúa bớ mật của họ để tạo thành một MAC khỏc. Nếu 2 MAC này trựng với nhau, ngƣời nhận sẽ kết luận rằng message đú là đƣợc gửi từ một ngƣời mà ngƣời đú đó biết khúa bớ mật và message đú hoàn toàn khụng bị sửa chữa trong khi truyền dữ liệu. Quỏ trỡnh này đƣợc gọi là hàm keys hash và tƣơng ứng với nú MAC đƣợc gọi là HMAC.
CHƢƠNG 2: CÁC LỖ HỔNG VÀ PHƢƠNG THỨC TẤN CễNG MẠNG PHỔ BIẾN
2.1. CÁC LỖ HỔNG VÀ ĐIỂM YẾU CỦA MẠNG
2.1.1. Cỏc lỗ hổng
Nhƣ phần trờn đó trỡnh bày, cỏc lỗ hổng bảo mật trờn một hệ thống là cỏc điểm yếu cú thể tạo ra sự ngƣng trệ của dịch vụ, thờm quyền đối với ngƣời sử dụng hoặc cho phộp cỏc truy nhập khụng hợp phỏp vào hệ thống. Cỏc lỗ hổng cũng cú thể nằm ngay cỏc dịch vụ cung cấp nhƣ sendmail, web, ftp... Ngoài ra cỏc lỗ hổng cũn tồn tại ngay chớnh tại hệ điều hành nhƣ trong Windows NT, Windows 95, UNIX; hoặc trong cỏc ứng dụng mà ngƣời sử dụng thƣơng xuyờn sử dụng nhƣ Word processing, Cỏc hệ databases... Phần sau đõy sẽ trỡnh bày cỏc lỗ hổng bảo mật thƣờng gặp trờn một số hệ thống.
2.1.1.1. Phõn loại lỗ hổng bảo mật:
Cú nhiều tổ chức khỏc nhau tiến hành phõn loại cỏc dạng lỗ hổng đặc biệt. Theo cỏch phõn loại của Bộ quốc phũng Mỹ, cỏc loại lỗ hổng bảo mật trờn một hệ thống đƣợc chia nhƣ sau:
Lỗ hổng loại C: Cỏc lỗ hổng loại này cho phộp thực hiện cỏc phƣơng thức tấn cụng theo DoS (Dinal of Services - Từ chối dịch vụ). Mức độ nguy hiểm thấp, chỉ ảnh hƣởng tới chất lƣợng dịch vụ, cú thể làm ngƣng trệ, giỏn đoạn hệ thống; khụng làm phỏ hỏng dữ liệu hoặc đạt đƣợc quyền truy nhập bất hợp phỏp.
Lổ hổng loại B: Cỏc lỗ hổng cho phộp ngƣời sử dụng cú thờm cỏc quyền trờn hệ thống mà khụng cần thực hiện kiểm tra tớnh hợp lệ. Mức độ nguy hiểm trung bỡnh; Những lỗ hổng này thƣờng cú trong cỏc ứng dụng trờn hệ thống; cú thể dẫn đến mất hoặc lộ thụng tin yờu cầu bảo mật.
Lỗ hổng loại A: Cỏc lỗ hổng này cho phộp ngƣời sử dụng ở ngoài cho thể truy nhập vào hệ thống bất hợp phỏp. Lỗ hổng rất nguy hiểm, cú thể làm phỏ hủy toàn bộ hệ thống.
Hỡnh 12 - Cỏc loại lỗ hổng bảo mật và mức độ ngƣy hiểm
Sau đõy sẽ phõn tớch một số lỗ hổng bảo mật thƣờng xuất hiện trờn mạng và hệ thống
Cỏc lỗ hổng loại C:
Cỏc lỗ hổng loại này cho phộp thực hiện cỏc cuộc tấn cụng DoS.
DoS là hỡnh thức tấn cụng sử dụng cỏc giao thức ở tầng Internet trong bộ giao thức TCP/IP để làm hệ thống ngƣng trệ dẫn đến tỡnh trạng từ chối ngƣời sử dụng hợp phỏp truy nhập hay sử dụng hệ thống. Một số lƣợng lớn cỏc gúi tin đƣợc gửi tới server trong khoảng thời gian liờn tục làm cho hệ thống trở nờn quỏ tải, kết quả là server đỏp ứng chậm hoặc khụng thể đỏp ứng cỏc yờu cầu từ client gửi tới.
Cỏc dịch vụ cú chứa đứng lỗ hổng cho phộp cỏc thực hiện cỏc cuộc tấn cụng DoS cú thể đƣợc nõng cấp hoặc sửa chữa bằng cỏc phiờn bản mới hơn của cỏc nhà