Tiểu luận Mật mã và an toàn dữ liệu Các vấn đề chung về bảo mật hệ thống và mạng Cụ thể báo cáo này sẽ trình bày: Chương I : Các vấn đề về an ninh mạng Chương II: Các phương thức mã hoá Chương III: Chương trình mã hóa và giải mã CHỮ KÝ RSA
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÁO CÁO GIỮA KỲ Môn học: Mật mã và an toàn dữ liệu
Trang 2MỞ ĐẦU
Trong khuôn khổ của một báo cáo cho những người bắt đầu tìm hiểu về bảo mật hệthống và mạng, báo cáo này không thể trình bày tất cả các vấn đề liên quan tới bảo mật hệthống và mạng, mà chỉ trình bày Các vấn đề chung về bảo mật hệ thống và mạng
Cụ thể báo cáo này sẽ trình bày:
Chương I : Các vấn đề về an ninh mạng
Chương II: Các phương thức mã hoá
Chương III: Chương trình mã hóa và giải mã CHỮ KÝ RSA
Báo cáo này được viết dựa trên các tài liệu tham khảo ghi cuối giáo trình
Chắc chắn báo cáo này không trách khỏi những thiếu xót về mặt nội dung cũng nhưtrình bày Em xin nhận được những góp ý Thầy và của bạn bè
Em xin chân thành cám ơn !
MỤC LỤC
Trang 3MỞ ĐẦU 2
MỤC LỤC 3
CHƯƠNG I: CÁC VẤN ĐỀ VỀ AN NINH MẠNG 4
1 Một số khái niệm về bảo mật 4
1.1 Đối tượng tấn công mạng 4
1.2 Các lỗ hổng bảo mật 5
1.3 Chính sách bảo mật 5
2 Lịch sử bảo mật mạng và hệ thống 5
3 Một số hình thức tấn công mạng 6
4 Các mức bảo vệ an toàn mạng 8
CHƯƠNG II CÁC PHƯƠNG THỨC MÃ HÓA 9
1 Đặc điểm chung của các phương thức mã hóa 9
1.1 Authentication 9
1.2 Authorization 10
1.3 Confidential 10
1.4 Integrity 10
1.5 Nonrepudiation 10
1.6 Availability 10
2 Các phương thức mã hóa 11
2.1 Phương thức mã hóa dùng khoá bí mật (Secret Key Crytography) 11
2.2 Phương thức mã hóa dùng khoá công khai(Public-Key Crytography) 12
2.3 Phương thức mã hoá một chiều - thuật toán Băm 15
2.4 Message Authentication Codes – MAC 17
CHƯƠNG III: CHƯƠNG TRÌNH MÃ HÓA VÀ GIẢI MÃ CHỮ KÝ RSA 17
1 Hướng dẫn sử dụng 17
2 Chương trình 18
TÀI LIỆU THAM KHẢO 21
Trang 4CHƯƠNG I: CÁC VẤN ĐỀ VỀ AN NINH MẠNG
1 Một số khái niệm về bảo mật
1.1 Đối tượng tấn công mạng
Là những cá nhân hoặc các tổ chức sử dụng các kiến thức về mạng và các công cụ pháhoại (phần mềm hoặc phần cứng) để dò tìm các điểm yếu, các lỗ hổng bảo mật trên hệthống, thực hiện các hoạt động xâm nhập và chiếm đoạt tài nguyên mạng trái phép
Một số đối tượng tấn công mạng là:
Hacker: Là những kẻ xâm nhập vào mạng trái phép bằng cách sử dụng các công cụ
phá mật khẩu hoặc khai thác các điểm yếu của các thành phần truy nhập trên hệ thống
Masquerader: Là những kẻ giả mạo thông tin trên mạng Một số hình thức giả mạo
như giả mạo địa chỉ IP, tên miền, định danh người dùng
Eavesdropping: Là những đối tượng nghe trộm thông tin trên mạng, sử dụng các công
cụ sniffer; sau đó dùng các công cụ phân tích và debug để lấy được các thông tin có giá trị
Những đối tượng tấn công mạng có thể nhằm nhiều mục đích khác nhau: như ăn cắpnhững thông tin có giá trị về kinh tế, phá hoại hệ thống mạng có chủ định, hoặc cũng cóthể chỉ là những hành động vô ý thức, thử nghiệm các chương trình không kiểm tra cẩnthận
1.2 Các lỗ hổng bảo mật
Các lỗ hổng bảo mật là những điểm yếu kém trên hệ thống hoặc ẩn chứa trong mộtdịch vụ mà dựa vào đó kẻ tấn công có thể xâm nhập trái phép để thực hiện các hành độngphá hoại hoặc chiếm đoạt tài nguyên bất hợp pháp
Nguyên nhân gây ra những lỗ hổng bảo mật là khác nhau: có thể do lỗi của bản thân hệthống, hoặc phần mềm cung cấp, hoặc do người quản trị yếu kém không hiểu sâu sắc cácdịch vụ cung cấp
Mức độ ảnh hưởng của các lỗ hổng là khác nhau Có những lỗ hổng chỉ ảnh hưởng tớichất lượng dịch vụ cung cấp, có những lỗ hổng ảnh hưởng nghiêm trọng tới toàn bộ hệthống
Trong phần 2 sẽ trình bày chi tiết các loại lỗ hổng bảo mật, các điểm yếu của một sốdịch vụ và biện pháp khắc phục
Trang 5Một chính sách bảo mật được coi là hoàn hảo nếu nó xây dựng gồm các văn bản phápqui, kèm theo các công cụ bảo mật hữu hiệu và nhanh chóng giúp người quản trị phát hiện,ngăn chặn các xâm nhập trái phép.
Chi tiết về phương pháp và cách thức xây dựng một chính sách bảo mật sẽ được trìnhbày trong phần 3
Năm 1990: Các hình thức truyền Virus qua địa chỉ Email xuất hiện phổ biếntrên mạng Internet
Năm 1991: Phát hiện các chương trình trojans
Cùng thời gian này sự phát triển của dịch vụ Web và các công nghệ liên quan nhưJava, Javascipts đã có rất nhiều các thông báo lỗi về bảo mật liên quan như:
Các lỗ hổng cho phép đọc nội dung các file dữ liệu của người dùng, một
số lỗ hổng cho phép tấn công bằng hình thức DoS, spam mail làm ngưngtrệ dịch vụ
Trang 6 Năm 1998: Virus Melisa lan truyền trên mạng Internet thông qua cácchương trình gửi mail của Microsoft, gây những thiết hại kinh tế khôngnhỏ.
Năm 2000: Một loạt các Web Site lớn như yahoo.com và ebay.com bị têliệt, ngừng cung cấp dịch vụ trong nhiều giờ do bị tấn công bởi hình thứcDoS
3 Một số hình thức tấn công mạng
Có thể tấn công mạng theo một trong các hình thức sau đây:
Dựa vào những lỗ hổng bảo mật trên mạng: Những lỗ hổng này có thể là các điểmyếu của dịch vụ mà hệ thống đó cung cấp;
Ví dụ những kẻ tấn công lợi dụng các điểm yếu trong các dịch vụ mail, ftp, web
để xâm nhập và phá hoại
Sử dụng các công cụ để phá hoại:
• Ví dụ sử dụng các chương trình phá khoá mật khẩu để truy nhập vào hệ thống bấthợp pháp;
• Lan truyền virus trên hệ thống;
• Cài đặt các đoạn mã bất hợp pháp vào một số chương trình
Nhưng kẻ tấn công mạng cũng có thể kết hợp cả 2 hình thức trên với nhau để đạt đượcmục đích
Hình dưới đây minh hoạ mức độ nguy hại tới hệ thống tương ứng với các hình thức tấncông khác nhau:
Trang 7Mức 1 (Level 1): Tấn công vào một số dịch vụ mạng: như Web, Email, dẫn đến cácnguy cơ lộ các thông tin về cấu hình mạng Các hình thức tấn công ở mức này có thể dùngDoS hoặc spam mail.
Mức 2 (Level 2): Kẻ phá hoại dùng tài khoản của người dùng hợp pháp để chiếm đoạttài nguyên hệ thống; (Dựa vào các phương thức tấn công như bẻ khoá, đánh cắp mậtkhẩu ); kẻ phá hoại có thể thay đổi quyền truy nhập hệ thống qua các lỗ hổng bảo mậthoặc đọc các thông tin trong tập tin liên quan đến truy nhập hệ thống như /etc/passwd
Từ Mức 3 đến mức 5: Kẻ phá hoại không sử dụng quyền của người dùng thôngthường; mà có thêm một số quyền cao hơn đối với hệ thống; như quyền kích hoạt một sốdịch vụ; xem xét các thông tin khác trên hệ thống
Mức 6: Kẻ tấn công chiếm được quyền root trên hệ thống
Trang 84 Các mức bảo vệ an toàn mạng
Vì không có một giải pháp an toàn tuyệt đối nên người ta thường phải sử dụng đồngthời nhiều mức bảo vệ khác nhau tạo thành nhiều lớp "rào chắn" đối với các hoạt độngxâm phạm
Việc bảo vệ thông tin trên mạng chủ yếu là bảo vệ thông tin cất giữ trong các máy tính,đặc biệt là trong các server của mạng
Hình sau mô tả các lớp rào chắn thông dụng hiện nay để bảo vệ thông tin tại các trạmcủa mạng
Hình Các mức độ bảo vệ mạngNhư minh hoạ trong hình trên, các lớp bảo vệ thông tin trên mạng gồm:
Lớp bảo vệ trong cùng là quyền truy nhập nhằm kiểm soát các tài nguyên (ở đây là thông tin) của mạng và quyền hạn (có thể thực hiện những thao tác gì) trên tài nguyên đó Hiện nay việc kiểm soát ở mức này được áp dụng sâu nhất đối với tệp
Lớp bảo vệ tiếp theo là hạn chế theo tài khoản truy nhập gồm đăng ký tên/ và mật khẩu tương ứng Đây là phương pháp bảo vệ phổ biến nhất vì nó đơn giản, ít tốn kém và cũng rất có hiệu quả Mỗi người sử dụng muốn truy nhập được vào mạng sử dụng các tài nguyên đều phải có đăng ký tên và mật khẩu Người quản trị hệ thống có trách nhiệm quản
lý, kiểm soát mọi hoạt động của mạng và xác định quyền truy nhập của những người sử dụng khác tuỳ theo thời gian và không gian
Lớp thứ ba là sử dụng các phương pháp mã hoá (encryption) Dữ liệu được biến đổi
từ dạng "đọc được" sang dạng không "đọc được" theo một thuật toán nào đó Chúng ta sẽ xem xét các phương thức và các thuật toán mã hoá hiện được sử dụng phổ biến ở phần dưới đây
Trang 9Lớp thứ tư là bảo vệ vật lý (physical protection) nhằm ngăn cản các truy nhập vật
lý bất hợp pháp vào hệ thống Thường dùng các biện pháp truyền thống như ngăn cấm người không có nhiệm vụ vào phòng đặt máy, dùng hệ thống khoá trên máy tính, cài đặt các hệ thống báo động khi có truy nhập vào hệ thống
Lớp thứ năm Cài đặt các hệ thống bức tường lửa (firewall), nhằm ngăn chặn các thâm nhập trái phép và cho phép lọc các gói tin mà ta không muốn gửi đi hoặc nhận vào vìmột lý do nào đó
CHƯƠNG II CÁC PHƯƠNG THỨC MÃ HÓA
Một trong những biện pháp bảo mật thường sử dụng đó là áp dụng các cơ chế mã hoá Sau đây sẽ phân tích một số cơ chế mã hoá đảm bảo tính an toàn và tin cậy dữ liệu thường được sử dụng trong các dịch vụ trên mạng Internet
1 Đặc điểm chung của các phương thức mã hóa
Trong các phương thức mã hóa, mỗi phương thức đều chủ yếu tập trung giải quyết
6 vấn đề chính như sau:
1.1 Authentication - Hoạt động kiểm tra tính xác thực một thực thể trong giao tiếp
1.2 Authorization - Hoạt động kiểm tra thực thể đó có được phép thực hiện những quyền hạn cụ thể nào
1.3 Confidential - Tính bảo mật: Xác định mức độ bảo mật đối với mỗi phương thức bảo mật
1.4 Integrity - Tính toàn vẹn: Kiểm tra tính toàn vẹn dữ liệu khi sử dụng mỗi phương thức bảo mật cụ thể
1.5 Nonrepudiation - Tính không thể phủ nhận Xác định tính xác thực của chủ thể gây ra hành động
1.6 Availability - Khả năng thực hiện phương thức bảo mật đó trong môi trường và điều kiện thực tế
1.1 Authentication
Là hoạt động liên quan đến kiểm tra tính đúng đắn một thực thể giao tiếp trên mạng Một thực thể có thể là một người, một chương trình máy tính, hoặc một thiết bị phần cứng Các hoạt động kiểm tra tính xác thực được đánh giá là quan trọng nhất trong các hoạt động của một phương thức bảo mật Một hệ thống thông thường phải thực hiện kiểm tra tính xác thực của một thực thể trước khi thực thể đó thực hiện kết nối với hệ thống
Cơ chế kiểm tra tính xác thực của các phương thức bảo mật dựa vào 3 mô hình chính sau: Những thông tin biết trước, những thông tin đã có và những thông tin xác định tính duy nhất
Trang 101.2 Authorization
Với cơ chế kiểm tra dựa vào mô hình những thông tin biết trước, đối tượng cần kiểm tra cần phải cung cấp những thông tin mà chúng biết:
Với cơ chế kiểm tra dựa vào mô hình những thông tin đã có, đối tượng kiểm tra cầnphải thể hiện những thông tin mà chúng sở hữu:
Đánh giá mức độ bảo mật, hay tính an toàn đối với mỗi phương thức bảo mật, mức độ
có thể phục hồi dữ liệu từ những người không có quyền đối với dữ liệu đó
Có thể bảo mật dữ liệu theo kiến trúc end-to-end hoặc link-by-link:
lưu truyền trên mạng
lý
1.4 Integrity
Hoạt động này đánh giá khả năng sửa đổi dữ liệu so với dữ liệu nguyên thủy ban đầu; Một phương thức bảo mật có tính toàn vẹn dữ liệu khi nó đảm bảo các dữ liệu mã hóa không thể bị thay đổi nội dung so với tài liệu gốc (khi đã được giải mã) và trong trường hợp những kẻ tấn công trên mạng sửa đổi nội dung dữ liệu đã mã hóa thì không thể khôi phục lại dạng ban đầu của dữ liệu
1.5 Nonrepudiation
Xác định tính xác thực của chủ thể gây ra hành động có thực hiện bảo mật
xác đối tượng "ký"- người gửi message đó
1.6 Availability
Đánh giá tính thực thi của một phương thức bảo mật
Phương thức bảo mật đó phải có khả năng thực hiện trong thực tế đối với các hệ thống máy tính, dữ liệu và thực hiện với các tài nguyên phần cứng, phần mềm;
Trang 11Đồng thời phải đảm bảo các yêu cầu về tốc độ tính toán, khả năng chuyển đổi, tính tương thích giữa các hệ thống khác nhau.
2 Các phương thức mã hóa
2.1 Phương thức mã hóa dùng khoá bí mật (Secret Key Crytography)
Sơ đồ sau đây minh họa quá trình làm việc của phương thức mã hoá sử dụng khoá
bí mật:
Đây là phương thức mã hoá đối xứng:
Key (khoá mà chỉ có người mã hoá mới biết được) tạo thành message được
mã hoá (Ciphertext)
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ã
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
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
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
Private key
Plaint
Trang 12IDEA Theo khối 128
2.2 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
cần phải 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;
được private key từ public key và ngược lại
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;
public key tương ứng của nó
Trang 13Thuậ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ử
(tức là quá trình ký) mà không có khả năng giải mã ciphertext
hoặc không thể ký; thuật toán này được gọi là thuật toán key exchange (thuậttoán chuyển đổi khóa)
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 toán public-key thông dụng như sau:
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
bits
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ẩnDSS (Digital Signature Standard), được giới thiệu vào năm 1994
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ằnghình sau:
Hình Phương thức mã hóa phi đối xứng
Encryt ion
Public key Plainte
xt
Cipher text
Decryt ion
Plainte xt
Private key
Trang 14A 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:
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:
đúng là Public Key của B
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
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ử
Trường hợp sử dụng Private Key để mã hoá:
đó tới B? Khi đó, B có thể sử dụng Public key của A để giải mã message từ A
nên nếu nhận được message gửi từ A cũng có thể giải mã được message và đọc nó
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 hai thực thể cần giao tiếp với nhau và sau đó một khoá bí mật (secret key) được tạo để thực hiện quá trình