®å ¸n tèt nghiÖp

An toàn thông tin: Phòng chống tấn công

Thông tin tài liệu

Tác giả

Ngô Hồng Trang

Trường học

Trường Đại học Dân lập Hải Phòng

Chuyên ngành Công Nghệ Thông Tin
Loại tài liệu Đồ án tốt nghiệp
Ngôn ngữ Vietnamese
Định dạng | PDF
Dung lượng 1.19 MB

Tóm tắt

I.Hệ mã hóa đối xứng và DES

Phần này tập trung vào mật mã học với thuật toán mã hóa đối xứng cổ điển, điểm yếu của chúng và sự ra đời của DES. DES, với khóa mật mã 56-bit, từng được xem là tiêu chuẩn nhưng đã bị chứng minh là không đủ an toàn do độ dài khóa quá ngắn. Sự không an toàn của DES dẫn đến sự phát triển của Triple DES và sau đó là AES (Advanced Encryption Standard), hiện là tiêu chuẩn mã hóa tiên tiến. Các phương pháp tấn công như tấn công kiểu duyệt toàn bộ (brute-force) được đề cập, nhấn mạnh tầm quan trọng của độ dài khóa trong việc đảm bảo an toàn thông tin.

1. Hệ mã hóa đối xứng cổ điển và hạn chế

Đoạn văn bản mô tả hệ thống mã hóa đối xứng cổ điển, nổi bật là sự đơn giản trong việc hiểu và thực hiện. Tuy nhiên, điểm yếu cố hữu của phương pháp này nằm ở độ an toàn thấp. Do giới hạn tính toán chỉ trong phạm vi bảng chữ cái (ví dụ Z26 cho tiếng Anh), việc xác định bản rõ trở nên dễ dàng nếu biết khóa hoặc thuật toán mã hóa. Điều này đồng nghĩa với việc khóa giải mã cũng dễ dàng bị tìm ra. Nhược điểm này làm cho các hệ thống mã hóa đối xứng cổ điển không phù hợp với yêu cầu bảo mật ngày nay, đặc biệt trong bối cảnh thông tin được truyền tải chủ yếu trên mạng công khai, nơi rủi ro bị tấn công là rất cao. Do đó, nhu cầu về các giải pháp mã hóa an toàn hơn là không thể phủ nhận, dẫn đến sự phát triển của các thuật toán mã hóa phức tạp hơn, có độ bảo mật cao hơn.

2. Giới thiệu DES và những tranh luận xung quanh

DES (Data Encryption Standard) được giới thiệu như một thuật toán mã hóa khối, xử lý từng khối thông tin 64-bit. Khóa DES có độ dài 64-bit, nhưng chỉ 56-bit được sử dụng thực sự, 8-bit còn lại dùng cho kiểm tra. Tuy nhiên, ngay từ đầu, DES đã gây nhiều tranh cãi. Độ dài khóa tương đối ngắn (56-bit) là nguyên nhân chính dẫn đến sự thiếu an toàn của DES. Việc khóa DES từng bị phá trong chưa đầy 24 giờ cho thấy rõ điểm yếu này. Mặc dù có những phân tích lý thuyết chỉ ra điểm yếu của DES, nhưng phần lớn không khả thi trong thực tế. Sự ra đời của Triple DES (thực hiện DES ba lần) được xem là một giải pháp cải tiến, tuy nhiên trên lý thuyết, phương pháp này vẫn có thể bị phá vỡ. Những nghi ngờ về thiết kế mật và khả năng có “cửa sau” cho phép NSA (Cơ quan An ninh Quốc gia Hoa Kỳ) bẻ khóa cũng góp phần làm tăng sự tranh luận xung quanh DES. Những tranh luận này đã thúc đẩy sự phát triển của kiến thức hiện đại về mật mã khối và các phương pháp thám mã.

3. Phân tích các phương pháp tấn công DES

Mặc dù đã có nhiều nghiên cứu về phá mã DES, phương pháp tấn công thực tế nhất vẫn là tấn công kiểu duyệt toàn bộ. Bài viết đề cập đến một số phương pháp tấn công khác có độ phức tạp thấp hơn tấn công duyệt toàn bộ. Một trong những phương pháp này được Davies đề xuất vào cuối những năm 1980 và được cải tiến bởi Biham và Biryukov (1997), đòi hỏi 2^50 văn bản rõ và có tỷ lệ thành công 51%. Các kiểu tấn công khác dựa trên bản thu gọn của DES (ít hơn 16 chu trình) cũng được nghiên cứu, giúp xác định số lượng chu trình cần thiết và ranh giới an toàn của hệ thống. Phá mã tuyến tính đa chiều (multiple linear cryptanalysis), được Kaliski và Robshaw nêu ra năm 1994 và được Biryukov và cộng sự cải tiến năm 2004, có thể giảm độ phức tạp của quá trình phá mã tới 4 lần. Một đặc điểm của DES là tính chất bù, cho phép giảm độ phức tạp của tấn công duyệt toàn bộ xuống một nửa nếu có thể lựa chọn bản rõ. Tất cả những nghiên cứu này cho thấy mặc dù một số thuật toán có chứng minh về độ an toàn, nhưng không có thuật toán nào được chứng minh là an toàn tuyệt đối.

II.Hệ mã hóa RSA và Khóa Công khai

Phần này giới thiệu hệ mã hóa RSA, một thuật toán mã hóa khóa công khai tiên tiến, được sử dụng rộng rãi trong thương mại điện tử. RSA là một bước tiến lớn trong mật mã học, cho phép tạo chữ ký số và mã hóa. Tuy nhiên, bài viết cũng chỉ ra những vấn đề bảo mật của RSA nếu độ dài khóa không đủ lớn hoặc không có các biện pháp bảo vệ thích hợp, bao gồm cả nguy cơ bị tấn công đứng giữa (man-in-the-middle). PKCS (Public-Key Cryptography Standards) được đề cập như một tiêu chuẩn bổ sung để tăng cường bảo mật cho RSA.

1. Giới thiệu về thuật toán mã hóa RSA

Phần này giới thiệu thuật toán mã hóa RSA, một thuật toán mã hóa khóa công khai. Đây là thuật toán đầu tiên có khả năng tạo chữ ký số điện tử đồng thời với mã hóa, đánh dấu một bước tiến vượt bậc trong mật mã học. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn nếu độ dài khóa đủ lớn. Độ dài khóa là yếu tố then chốt ảnh hưởng trực tiếp đến độ an toàn của hệ thống mã hóa này. Một khóa càng dài thì khả năng bị phá vỡ càng thấp, do đó việc lựa chọn độ dài khóa phù hợp là rất quan trọng trong việc đảm bảo an toàn thông tin. Việc sử dụng RSA trong các ứng dụng thương mại điện tử đòi hỏi phải có những biện pháp bảo mật cao cấp để chống lại các loại tấn công nhằm xâm phạm dữ liệu người dùng.

2. Tiêu chuẩn PKCS và các vấn đề bảo mật của RSA

Một số tiêu chuẩn, như PKCS, được thiết kế để chuyển đổi bản rõ trước khi mã hóa bằng RSA. Việc chuyển đổi này bổ sung thêm bit vào dữ liệu, nhằm tăng cường bảo mật và tránh các dạng tấn công phức tạp. Tuy nhiên, phiên bản ban đầu của PKCS đã được chứng minh là không an toàn trước tấn công lựa chọn bản rõ thích ứng (adaptive chosen-ciphertext attack). Nếu không có quá trình chuyển đổi này, RSA có thể gặp một số vấn đề, ví dụ như khi m = 0 hoặc m = 1 sẽ tạo ra bản mã có giá trị 0 và 1, hoặc khi mã hóa với số mũ nhỏ (e = 3) và m cũng nhỏ, giá trị c cũng nhỏ, làm cho việc tìm m trở nên dễ dàng. Điều này cho thấy sự cần thiết của việc thiết kế cẩn thận các phương pháp chuyển đổi để đảm bảo tính toàn vẹn và an toàn của dữ liệu trong quá trình mã hóa và giải mã sử dụng RSA.

3. Phân phối khóa công khai và tấn công đứng giữa

Cách thức phân phối khóa công khai là một yếu tố quyết định độ an toàn của RSA. Quá trình này cần chống lại được tấn công đứng giữa (man-in-the-middle attack). Ví dụ, kẻ tấn công (Eve) có thể gửi cho Bob một khóa bất kỳ, khiến Bob tin đó là khóa công khai của Alice. Eve có thể đọc được thông tin trao đổi giữa Bob và Alice, gửi cho Bob khóa công khai của chính mình, giải mã thông tin từ Bob, sao chép và mã hóa lại bằng khóa công khai của Alice trước khi gửi cho Alice. Cả Bob và Alice đều không phát hiện sự can thiệp của Eve. Các phương pháp chống lại dạng tấn công này thường dựa trên chứng thực khóa công khai, đảm bảo tính xác thực và tính toàn vẹn của khóa công khai được sử dụng trong quá trình giao tiếp. Đây là một vấn đề bảo mật quan trọng cần được giải quyết để đảm bảo an toàn thông tin khi sử dụng RSA.

4. Tấn công dựa trên thời gian đối với RSA

Năm 1995, Paul Kocher mô tả một dạng tấn công mới vào RSA: tấn công dựa trên thời gian. Nếu kẻ tấn công nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định được thời gian giải mã đối với một số bản mã lựa chọn, chúng có thể nhanh chóng tìm ra khóa bí mật. Dạng tấn công này có thể áp dụng đối với hệ thống chữ ký số điện tử RSA. Để khắc phục, kỹ thuật sử dụng một số ngẫu nhiên r được đề xuất. Thay vì tính c = m^a mod n, Alice chọn r ngẫu nhiên và tính ((r^b)c)^d mod n, kết quả là (rm) mod n. Tác động của r được loại bỏ bằng nghịch đảo của r. Thời gian giải mã sẽ không còn phụ thuộc vào giá trị của văn bản mã, làm giảm hiệu quả của tấn công dựa trên thời gian. Đây là một ví dụ về việc tấn công có thể nhắm vào thời gian xử lý, không chỉ nội dung dữ liệu. Việc hiểu rõ các vector tấn công này là cần thiết để xây dựng các hệ thống mã hóa RSA an toàn hơn.

III.Hàm Băm và Tính Toán Băm

Phần này tập trung vào hàm băm, một thuật toán không dùng khóa tạo ra giá trị băm duy nhất cho một tài liệu đầu vào. Hàm băm một chiều có đặc tính là khó suy ngược từ giá trị băm về dữ liệu gốc, được sử dụng rộng rãi để đảm bảo tính toàn vẹn dữ liệu. Các tính chất quan trọng của hàm băm được nêu ra, nhấn mạnh vào tính duy nhất và độ nhạy cảm với thay đổi dữ liệu đầu vào. Hàm băm đóng vai trò quan trọng trong việc đảm bảo an toàn thông tin.

IV.Các Loại Tấn Công và Phương Pháp Phòng Chống

Bài viết mô tả một số phương pháp tấn công phổ biến, bao gồm tấn công Man-in-the-Middle, tấn công DoS (Denial-of-Service), và SQL injection. SQL injection, một kỹ thuật khai thác lỗ hổng trong ứng dụng web để thực hiện các lệnh SQL bất hợp pháp, được phân tích chi tiết với các ví dụ cụ thể. Các phương pháp phòng chống được đề cập bao gồm việc cập nhật các bản vá bảo mật, kiểm tra dữ liệu đầu vào, và sử dụng kỹ thuật mã hóa dữ liệu. Phương pháp chứng thực khóa công khai được đề cập như một giải pháp để chống lại tấn công đứng giữa.

1. Tấn công Man in the Middle và Giả mạo DNS

Văn bản đề cập đến tấn công Man-in-the-Middle, trong đó kẻ tấn công chặn và làm gián đoạn quá trình truyền thông tin giữa hai bên. Một ví dụ cụ thể là giả mạo DNS, kẻ tấn công chặn truy vấn DNS, tạo gói dữ liệu giả mạo có chứa số nhận dạng duy nhất để đánh lừa thiết bị mục tiêu truy cập vào website độc hại thay vì website đích. Kẻ tấn công có thể nghe trộm thông tin, thu thập dữ liệu nhạy cảm như mật khẩu và tên người dùng. Các chương trình nghe trộm (sniffing) lắng nghe các cổng của hệ thống mục tiêu để thu thập dữ liệu. Để phòng tránh, phương pháp chứng thực khóa công khai được đề cập đến, giúp xác thực tính xác thực của khóa công khai, ngăn chặn việc kẻ tấn công giả mạo khóa của người dùng khác. Đây là một ví dụ cụ thể về tấn công mạng và giải pháp bảo mật liên quan đến xác thực khóa, một khía cạnh quan trọng trong bảo mật thông tin.

2. Tấn công Từ Chối Dịch vụ DoS và các biến thể

Tấn công DoS được mô tả là một cuộc tấn công mạng nhằm ngăn cản truy xuất đến dịch vụ như web, email, bằng cách làm tràn ngập kết nối, quá tải máy chủ, hoặc tiêu tốn tài nguyên máy chủ. DoS có thể được thực hiện bằng một vài gói tin đơn lẻ (như Slammer worm) hoặc từ nhiều nguồn (DDoS). Tấn công có thể diễn ra trên mạng Internet, mạng nội bộ (insider attacks như Blaster worm), mạng ngang hàng P2P, hoặc mạng không dây. Văn bản chỉ ra rằng các phương pháp phân loại DoS chủ yếu dựa trên nguồn tấn công, không hệ thống hóa được phương thức phòng tránh. Ba phương pháp phát hiện và ngăn chặn được đề cập: hạn chế số lượng kết nối, hạn chế tốc độ thiết lập kết nối (sử dụng bộ lọc để xác định ngưỡng tốc độ), và ngăn chặn tấn công SYN/ACK flood (kiểm soát số lượng yêu cầu SYN/ACK trong cơ chế kết nối TCP).

3. SQL Injection và các dạng tấn công

SQL injection là kỹ thuật tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập vào ứng dụng web để thực thi các câu lệnh SQL bất hợp pháp. Điều này cho phép kẻ tấn công xóa, hiệu chỉnh, hoặc thao tác dữ liệu trong cơ sở dữ liệu, thậm chí là server. Văn bản đưa ra ví dụ về tấn công vượt qua kiểm tra đăng nhập bằng cách sử dụng chuỗi ' OR '' = '' trong ô nhập liệu username/password, điều khiển câu truy vấn SQL. Một ví dụ khác là thay thế ID hợp lệ bằng giá trị khác để khởi đầu tấn công bất hợp pháp. Kẻ tấn công có thể sử dụng câu lệnh UNION để thực hiện thêm lệnh SQL, hoặc liệt kê tên bảng dữ liệu bằng sysobjects và syscolumns. Tấn công bằng câu lệnh INSERT cũng được đề cập, khai thác lỗ hổng trong việc kiểm tra dữ liệu nhập khi người dùng đăng ký tài khoản. Những ví dụ này nhấn mạnh sự nguy hiểm của SQL injection và tầm quan trọng của việc kiểm tra dữ liệu đầu vào để phòng tránh loại tấn công này.

4. Phòng chống tấn công cơ sở dữ liệu bằng mã hóa và các biện pháp khác

Mã hóa dữ liệu ở mức độ tập tin là giải pháp đơn giản nhất để bảo vệ dữ liệu trong CSDL, nhưng không cung cấp mức độ bảo mật cao và không cho phép phân quyền. Một giải pháp tốt hơn là xây dựng một tầng CSDL trung gian (proxy) giữa ứng dụng và CSDL gốc để mã hóa dữ liệu trước khi cập nhật vào CSDL gốc và giải mã dữ liệu trước khi cung cấp cho ứng dụng. Cơ chế này đảm bảo mã hóa không ảnh hưởng đến ứng dụng hiện tại. Ngoài ra, văn bản cũng nhắc đến việc cập nhật các bản vá bảo mật cho các ứng dụng chạy trên hệ điều hành, đặc biệt là Windows, để khắc phục các lỗ hổng. Việc bảo vệ tệp tin, dữ liệu quan trọng bằng kỹ thuật mã hóa, giấu tin, nén tin cũng được khuyến nghị. Những biện pháp này nhằm giảm thiểu rủi ro tấn công và bảo vệ an toàn thông tin.

V.Bảo mật Cơ sở Dữ liệu và Mã Hóa

Phần này thảo luận về bảo mật cơ sở dữ liệu (CSDL), nhấn mạnh tầm quan trọng của việc mã hóa dữ liệu để bảo vệ CSDL khỏi truy cập trái phép. Hai mô hình bảo mật CSDL được đề cập: mã hóa ở mức tập tin (ít hiệu quả) và xây dựng một tầng CSDL trung gian để mã hóa/giải mã dữ liệu. Việc lựa chọn phương pháp mã hóa phù hợp là cần thiết để đảm bảo an toàn thông tin.

1. Mã hóa dữ liệu ở mức độ tập tin Hạn chế và rủi ro

Bài viết đề cập đến mã hóa dữ liệu ở mức độ tập tin như một giải pháp đơn giản để bảo vệ dữ liệu trong Cơ sở dữ liệu (CSDL). Tuy nhiên, phương pháp này có những hạn chế nghiêm trọng về mặt bảo mật. Nó không cung cấp mức độ bảo mật truy cập đến CSDL ở mức độ bảng (table), cột (column) và dòng (row). Bất cứ ai có quyền truy xuất CSDL đều có thể truy cập vào tất cả dữ liệu, tạo ra nguy cơ nghiêm trọng, đặc biệt là đối với các đối tượng có quyền quản trị (admin). Giải pháp này cũng bị hạn chế vì không cho phép phân quyền khác nhau cho người dùng CSDL, dẫn đến việc tất cả người dùng có quyền truy cập đều có thể xem toàn bộ dữ liệu. Do đó, phương pháp này được đánh giá là có tính rủi ro cao và không hiệu quả trong việc bảo vệ dữ liệu ở mức độ tinh vi.

2. Xây dựng tầng CSDL trung gian Một giải pháp hiệu quả hơn

Để khắc phục những nhược điểm của phương pháp mã hóa ở mức độ tập tin, bài viết đề xuất xây dựng một tầng CSDL trung gian (proxy) nằm giữa ứng dụng và CSDL gốc. CSDL trung gian này có vai trò mã hóa dữ liệu trước khi cập nhật vào CSDL gốc và giải mã dữ liệu trước khi cung cấp cho ứng dụng. Mô hình này cho phép kiểm soát truy cập dữ liệu ở mức độ tinh vi hơn, giúp bảo vệ dữ liệu một cách hiệu quả hơn so với phương pháp mã hóa tập tin. Ưu điểm của phương pháp này là cơ chế mã hóa không ảnh hưởng đến các ứng dụng hiện tại. Việc triển khai mô hình này đòi hỏi kiến thức và kỹ thuật chuyên môn cao, tuy nhiên nó mang lại tính bảo mật tốt hơn, đặc biệt là trong việc quản lý quyền truy cập và bảo vệ dữ liệu nhạy cảm.

3. Lỗ hổng vật lý và bẻ khóa Rủi ro ngoài mã hóa

Bài viết nhấn mạnh rằng, ngay cả với các phương pháp mã hóa bảo mật nhất, lỗ hổng vật lý của máy tính vẫn là một rủi ro lớn. Một keylogger (chương trình theo dõi bàn phím), cả phần mềm lẫn phần cứng, có thể thu thập thông tin mật khẩu và khóa PGP bí mật, làm lộ dữ liệu đã được mã hóa. Cho dù mật khẩu có mạnh đến đâu, lỗ hổng bảo mật vật lý vẫn là một trong những mối đe dọa nguy hiểm nhất. Trong trường hợp tấn công ngân hàng, ví dụ, các tập tin mật khẩu được mã hóa có thể bị lộ. Kẻ tấn công sẽ tiến hành bẻ khóa, tìm ra mật khẩu yếu để có được quyền truy cập. Công ty có thể yêu cầu nhân viên đổi mật khẩu để vô hiệu hóa các mật khẩu yếu đã bị lộ. Tuy nhiên, nếu không chú trọng bảo mật vật lý, các biện pháp mã hóa sẽ trở nên vô nghĩa. Do đó, bảo mật vật lý là yếu tố không thể bỏ qua trong tổng thể chiến lược an ninh thông tin.

VI.Các Lỗ Hổng Phần Mềm và Đầu Độc DNS

Phần cuối cùng tập trung vào các lỗ hổng bảo mật phần mềm, đặc biệt là các lỗ hổng trong phần mềm của Adobe và Microsoft, cũng như nguy cơ từ sự đầu độc DNS. Đầu độc DNS cho phép kẻ tấn công định hướng người dùng tới các website giả mạo. Việc cập nhật phần mềm thường xuyên là rất quan trọng để ngăn chặn các loại tấn công này và duy trì an toàn thông tin.

1. Lỗ hổng phần mềm và cập nhật bảo mật

Phần này nhấn mạnh tầm quan trọng của việc cập nhật các bản vá bảo mật để phòng ngừa lỗ hổng an ninh. Các lỗi chủ yếu được tìm thấy trên các ứng dụng chạy trên hệ điều hành Windows, bao gồm webserver, DNS, và SQL database. Việc cập nhật thường xuyên các bản vá là một yêu cầu quan trọng để giảm thiểu rủi ro bị khai thác lỗ hổng. Không cập nhật các bản vá có thể dẫn đến việc các phần mềm, ứng dụng dễ bị tấn công và gây ra hậu quả nghiêm trọng về an ninh thông tin. Cụ thể, những lỗ hổng này có thể làm lộ thông tin nhạy cảm như mã nguồn, mật khẩu, hoặc thông tin khách hàng. Do đó, việc duy trì các phần mềm, ứng dụng ở phiên bản mới nhất là biện pháp cần thiết để đảm bảo an ninh thông tin.

2. Lỗ hổng Adobe và cơ chế tấn công

Bên cạnh Microsoft, Adobe cũng là một hãng sản xuất phần mềm phổ biến, và các sản phẩm của họ như Flash, Acrobat Reader, và Shockwave cũng có thể bị khai thác để tấn công. Phần mềm độc hại có thể sử dụng các lỗ hổng này như một cơ chế để phát tán mã độc hại. Mặc dù phần mềm Adobe hoạt động trên nhiều hệ điều hành, nhưng các máy tính cài đặt Windows là mục tiêu chính của các cuộc tấn công này. Cơ chế hoạt động thường là lừa người dùng kích vào các quảng cáo Flash hoặc tài liệu PDF bị nhiễm mã độc, dẫn đến việc máy tính bị nhiễm virus hoặc malware. Việc cập nhật thường xuyên các phần mềm Adobe cũng là một biện pháp quan trọng để giảm thiểu rủi ro này. Chủ động cập nhật các phiên bản phần mềm mới nhất, vá lỗi kịp thời sẽ giúp người dùng tránh được nguy cơ bị tấn công từ các lỗ hổng này.

3. Đầu độc DNS và mối đe dọa

Phần này tập trung vào sự đầu độc DNS, một mối đe dọa nghiêm trọng. Máy chủ DNS có nhiệm vụ dịch các địa chỉ Internet thành tên miền thân thiện với người dùng. Tuy nhiên, thông tin cung cấp bởi máy chủ DNS có thể bị tấn công hoặc định hướng sai, cho phép kẻ tấn công gửi người dùng đến các website giả mạo. Vụ đầu độc DNS năm 2008, được Dan Kaminsky chứng minh, cho thấy các tên miền có thể bị chuyển hướng đối với phiên bản BIND hiện nay. BIND là phần mềm được sử dụng trên hầu hết các máy chủ DNS. Kết quả là tin tặc có thể đánh cắp toàn bộ tên miền, bao gồm cả tên miền con, máy chủ mail, bản ghi SPF, và các thông tin khác trong tài nguyên DNS. Vì vậy, việc bảo vệ máy chủ DNS khỏi các cuộc tấn công và đảm bảo tính toàn vẹn của thông tin DNS là rất quan trọng để phòng ngừa nguy cơ bị chuyển hướng đến các website độc hại.

Tài liệu tham khảo

  • Secure.Data