Xác thực là một vấn đề bảo mật chủ yếu trong các hệ điều hành. Hệ thống bảo vệ dựa trên khả năng nhận dạng đúng các chương trình và tiến trình đang chạy. Khả năng này lại dựa trên năng lực nhận biết được từng người sử dụng hệ thống. Thông thường người sử dụng sẽ tự nhận dạng chính mình. Tóm lại, việc chứng thực thường dựa vào một hay nhiều trong 3 tiêu chí sau: Sở hữu của người dùng (khoá hay card); tri thức của người dùng (cặp định danh tên và mật khẩu); hoặc thuộc tính của người dùng (dấu vân tay, mẫu võng mạc, hoặc chữ ký).
71 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1673 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và xây dựng một vài chương trình tấn công trên mạng Internet qua giao thức Telnet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
, mạng riêng ảo, các hệ thống bức tường lửa,… Các phương pháp xác thực và mã hoá đảm bảo cho thông tin truyền trên mạng một cách an toàn nhất. Với cách thức làm việc của nó, thông tin thật trên đường truyền được mã hoá dưới dạng mà những kẻ có ý đồ xấu không thể thấy được, hoặc nếu thông tin bị sửa đổi thì tại nơi nhận sẽ có cơ chế phát hiện sự sửa đổi đó. Còn phương pháp sử dụng hệ thống bức tường lửa lại đảm bảo an ninh ở góc độ khác. Bằng cách thiết lập các luật tại một điểm đặc biệt (thường gọi là điểm kết nối hay cồng ra) giữa hệ thống mạng bên trong (mạng cần bảo vệ) với hệ thống mạng bên ngoài (mạng được coi là không an toàn- thường là Internet), hệ thống bức tường lửa hoàn toàn có thể kiểm soát các kết nối trao đổi thông tin giữa hai mạng. Với cách thức này, hệ thống tường lửa đảm bảo an ninh khá tốt cho hệ thống mạng cần bảo vệ. Như thế, giải pháp về phần mềm gần như hoàn toàn gồm các chương trình máy tính, do đó chi phí cho giải pháp này sẽ ít hơn so với giải pháp về phần cứng.
Bên cạnh hai giải pháp trên, giải pháp về chính sách con người là một giải pháp hết sức cơ bản và không thể thiếu được. Như ta đã biết, vấn đề an ninh an toàn mạng máy tính hoàn toàn là vấn đề con người, do đó việc đưa ra một hành lang pháp lý và các quy tắc làm việc cụ thể là cần thiết. ở đây, hành lang pháp lý có thể gồm: các điều khoản trong bộ luật của Nhà nước, các văn bản dưới luật,… Còn các quy định có thể do từng tổ chức đặt ra cho phù hợp vói từng đặc điểm riêng. Các quy định có thể như: quy định về nhân sự, việc sử dụng máy, sử dụng phần mềm,… Và như vậy, sẽ hiệu quả nhất trong việc đảm bảo an ninh an toàn cho hệ thống mạng máy tính một khi ta thực hiện triệt để giải pháp về chính sách con người.
Trong lực lượng công an, để thực hiện tốt giải pháp về con người chúng ta phải đào tạo một đội ngũ cán bộ vừa giỏi chuyên môn đồng thời có bản lĩnh chính trị vững vàng, phẩm chất đạo đức tốt, thực sự say mê nghiên cứu khoa học để phục vụ tốt cho công tác của ngành trên lĩnh vực khoa học kỹ thuật.
Tóm lại, vấn đề an ninh an toàn mạng máy tính là một vấn đề lớn, nó yêu cầu cần phải có một giải pháp tổng thể, không chỉ giải pháp phần cứng, phần mềm mà nó đòi hỏi cả vấn đề chính sách về con người. Vấn đề này cần phải thực hiện thường xuyên liên tục nhưng không bao giờ triệt để được vì nó luôn nảy sinh theo thời gian. Tuy nhiên, bằng các giải pháp tổng thể hợp lý, đặc biệt là giải quyết tốt vấn đề chính sách về con người ta có thể nâng cao được hiệu quả của công tác đảm bảo an ninh trên mạng.
2.3 Một số giải pháp bảo mật thông tin
2.3.1 Bảo vệ thông tin bằng mật mã
Mã hoá là một quá trình mà trong đó một thông điệp có thể đọc được chuyển thông thông điệp không thể đọc được để tránh các bên không có quyền xem nội dung thông điệp đó.
Giải mã là quá trình ngược lại, chuyển một thông điệp đã được mã hoá về lại dạng nguyên bản của chúng.
Thông điệp nguyên bản được gọi là bản rõ (Plaintext), thông điệp đã được mã hoá gọi là bản mật (Ciphertext).
Các giải thuật mã hoá làm việc bằng cách thao tác nội dung của thông điệp rõ theo một phương pháp toán học, theo giải thuật mã hoá và khoá để sinh ra phiên bản mật thông điệp. Người gửi và người nhận có thể liên lạc một cách an toàn nếu như chỉ người gửi và người nhận biết được khoá.
Hiện nay, người ta sử dụng ba phương pháp mã hoá sau:
Mã hoá đối xứng.
Mã hoá công khai(bất đối xứng).
Mã hoá hỗn hợp.
2.3.1.1 Mã hoá đối xứng
Trong mã hoá đối xứng, người gửi và người nhận dùng chung một khoá để giải mã.
Mã hoá đối xứng sử dụng một số phương pháp sau:
Mã hoá chuyển vị sắp xếp lại các bit hay các ký tự trong dữ liệu
Mã hoá kiểu thay thế các bit, các ký tự bằng các đối tượng thay thế.
Phương pháp sử dụng chuẩn mật mã DES : Giải thuật mật mã DES mã hoá các khối 64bits của các văn bản gốc thành 64 bits văn bản mật mã dưới tác dụng của một khoá. Khoá cũng gồm 64 bits trong đó có 56 bits được dùng trực tiếp bởi giải thuật mã hoá và 8 bits còn lại dùng để kiểm soát lỗi.
Mã hoá đối xứng có nhược điểm là khi khoá bị lộ thì việc thay đổi khoá mới sẽ gặp khó khăn trong việc quản trị khoá và chi phí sử dụng.
2.3.1.2 Mã hoá bất đối xứng
Mã hoá bất đối xứng (mã hoá công khai) liên quan đến một công thức toán học để sao cho một thông điệp được mã hoá bằng khoá này thì được giải mã bằng khoá kia và ngược lại Mặc dù các khoá công khai và khoá riêng của người dùng có liên hệ toán học với nhau, song biết được khoá công khai không thể tính ra được khoá riêng tương ứng nhưng từ khoá riêng có thể tính được khoá công khai. Trong các hệ mã hoá công khai, người dùng có mã khoá riêng từ đó tạo ra mã khoá công khai và phổ biến mã hoá công khai của họ cho mọi người biết và họ chỉ cần giữ khoá riêng mà thôi.
Đặc điểm của phương pháp mã hoá này là:
Sử dụng một cặp khoá gồm hai khoá: Khoá bí mật (Private key) và khoá công khai (Public key). Khoá công khai được đưa ra công khai cho mọi người, khoá bí mật được giữ lại. Khoá công khai được dùng trong quá trình mã hoá và khoá bí mật được dùng trong quá trình giải mã.
Không đòi hỏi phải chia sẻ bí mật.
Các giải thuật mã hoá dùng mã hoá công khai về mặt toán học, thường phức tạp hơn các giải thuật mã hoá dùng chung. Do đó, mã hoá công khai thường chậm hơn mã hoá đối xứng. Vì vậy, ta không dùng phương pháp này để mã hoá những tài liệu lớn.
Mã hoá công khai giải quyết được vấn đề phân phối các khoá một cách an toàn bằng cách loại bỏ nhu cầu truyền khoá bí mật.
2.3.1.3 Mã khoá hỗn hợp
Đặc điểm của phương pháp mã hoá này là:
Sử dụng cả hai phương pháp mã hoá đối xứng và mã hoá công khai.
Sử dụng cùng một lúc cả ba khoá: Khóa dùng chung(Session key), khoá bí mật và khoá công khai. Khoá dùng chung trong quá trình mã hoá đối xứng còn khoá bí mật và khoá công khai dùng trong quá trình mã công khai.
2.3.2 Bức tường lửa (Firewall)
Trên thực tế, đây là một giải pháp phổ biến nhất, kiểm soát hiệu quả nhất các kết nối, trao đổi thông tin trên mạng.
2.3.2.1 Khả năng phòng thủ của bức tường lửa:
Với cách thức thiết kế bức tường lửa tại vị trí giữa hệ thống mạng cần bảo vệ và hệ thống mạng được coi là không an toàn về bảo mật, tất cả các kết nối thông tin giữa hai mạng đều được kiểm soát một cách thật chặt chẽ đảm bảo an toàn tối đa. Cụ thể các khả năng phòng thủ là:
Việc kiểm soát những yêu cầu kết nối từ bên ngoài cho phép giảm tối đa những cơ hội mà kẻ tấn công có thể làm việc trực tiếp với một máy tính ở hệ thống mạng bên trong, do đó giảm được nguy cơ của những phương pháp tấn công trực tiếp. Bên cạnh đó, với sự phát triển của các chương trình Proxy, những chương trình phức tạp không trực tiếp liên hệ với mạng bên ngoài mà phải thông qua Proxy. Các chương trình Proxy được thiết kế đặc biệt, làm nhiệm vụ chuyển thông tin qua lại giữa các máy Server cung cấp dịch vụ cho người sử dụng. Các thông tin này được kiểm tra rất kỹ lưỡng để loại bỏ các lỗi. Hơn nữa, nhiệm vụ của các chương trình này đơn giản hơn rất nhiều, do chúng được chạy với những quyền ưu tiên thấp, giảm được nguy cơ khi chương trình có lỗi cũng không đem lại cho kẻ tấn công quyền quản trị hệ thống.
Một số bức tường lửa được thiết kế với phần giám sát việc sử dụng những lỗ hổng bảo mật đã biết. Trong trường hợp kẻ tấn công cố tình sử dụng những lỗ hổng này, bức tường lửa sẽ ghi nhận điểm xuất phát của cuộc tấn công và thông báo cho người quản trị hệ thống.
Bức tường lửa không thể ngăn chặn được việc nghe trộm trong phạm vi mạng cục bộ. Tuy nhiên, với phương pháp cài đặt nhiều bức tường lửa để ngăn cách những thành phần của mạng cục bộ có yêu cầu bảo mật khác nhau, bức tường lửa cho phép giảm đến mức tối đa những thông tin không cần thiết lan truyền trên hệ thống mạng. Do đó, bức tường lửa có thể giảm được nguy cơ bị lộ thông tin ngay trong mạng cục bộ.
Bức tường lửa được thiết kế để chống lại những cuộc tấn công sử dụng giả mạo địa chỉ, đồng thời ghi nhận những ý đồ giả mạo địa chỉ mạng bên trong để tấn công hệ thống.
2.3.2.2 Một số nhược điểm của Firewall
Bên cạnh những ưu điểm đảm bảo an ninh an toàn thì bức tường lửa cũng không thể không tránh khỏi những nhược điểm. Cụ thể đó là những nhược điểm sau:
Một bức tường lửa không thể ngăn chặn được những ý đồ tấn công làm quá tải hệ thống. Trong trường hợp đó, bức tường lửa phải được thiết kế để khi quá tải sẽ từ chối mọi yêu cầu kết nối mới thì mới bảo vệ được hệ thống mạng bên trong.
Bức tường lửa không ngăn chặn một cách có hiệu quả các cuộc tấn công xuất phát từ mạng bên trong. Tuy nhiên, để làm được điều này kẻ tấn công phải xâm nhập vào bên trong, điều mà bức tường lửa ngăn chặn khá hiệu quả.
Bức tường lửa không ngăn chặn được những cuộc tấn công mà kết nối mạng không đi qua đó.
Và cuối cùng, bức tường lửa không thể chống lại những kẻ phản bội hay những kẻ thiếu học thức. Đó là những kẻ nằm trong vòng bảo vệ cố tình phá hoại, làm lộ, sai lệch, hư hỏng các thông tin hay các tài nguyên mạng.
Một yêu cầu thường được đưa ra là kiểm soát thông tin qua bức tường lửa, như các thông tin mang nội dung độc hại, không lành mạnh, virus,… Tuy có một số thiết kế cho phép làm những thao tác này trên bức tường lửa nhưng đó không phải là mục đích chính của bức tường lửa. Những chương trình này làm tăng độ phức tạp thiết kế của bức tường lửa, tức là làm giảm độ an toàn của nó. Ngoài ra, các chương trình kiểm tra như vậy sẽ làm giảm tốc độ truyền tin và trong những ứng dụng yêu cầu cao về tốc độ thì nó khó có thể thực hiện những thao tác kiểm tra mà không ảnh hưởng đến tốc độ đường truyền.
Tóm lại, bên cạnh những ưu điểm rõ ràng, bức tường lửa cũng có không ít nhược điểm cố hữu không tránh khỏi. Những nhược điểm này rất có thể trở thành các lỗ hổng an ninh mà những kẻ tấn công luôn tìm cách lợi dụng. Vì vậy, người quản trị hệ thống cần phải nắm vững ưu nhược điểm của các hệ thống bảo vệ mạng nói chung và hệ thống tường lửa nói riêng để từ đó xây dựng các biện pháp phòng ngừa cho phù hợp và hiệu quả.
2.3.3 Giải pháp bảo vệ an toàn Website
2.3.3.1Bảo vệ Website với hệ thống File phân quyền và cấu hình WebServer
Ngày nay, dịch vụ Web được phát triển rộng rãi bởi vì nó dễ sử dụng và cho phép tập trung dịch vụ xử lý thông tin. Hầu hết các Web Server đều cho phép truy cập trực tiếp từ các kết nối của người sử dụng. Một số chương trình không được chú ý về an ninh , do vậy đã tạo ra một số lỗ hổng không an toàn. Nếu Web Server được tự do dùng chung trên mạng thì một vấn đề quan trọng là các dữ liệu mật không được đặt chung trên cùng một máy với Web Server.
Điều nên quan tâm trước tiên khi cài đặt bất kỳ một phần mềm nào là: kiểm soát truy cập, xác nhận tên người truy cập và quyền bảo mật cá nhân. Ngoài ra, ta phải cấu hình Web Server để bảo vệ các giao dịch ở dạng HTTP bằng các giao thức mã hoá cao cấp như SSL(Secure Socket Layer), TSL(Transport Layer Security).
Kiểm soát truy cập: Hệ thống Web được cài đặt theo cách bảo mật đơn giản nhất là từ chối mọi truy cập không hợp pháp.
Xác nhận tên người truy cập: Các nhà quản trị mạng thường cung cấp cho khách hàng quyền truy cập vào tài nguyên thông qua trình duyệt Web của họ tại bất kỳ vị trí nào. Yêu cầu này đòi hỏi công cụ xác nhận tên thận trọng, phổ biến nhất hiện nay là tổ hợp tên người dùng/mật khẩu.
Cấu hình SSL: SSL sử dụng mã hoá công khai cho phép hai đầu cuối của cùng một phiên liên lạc qua HTTP xác nhận lẫn nhau, sau đó cùng thống nhất một mã khoá bảo mật cho phiên liên lạc đó và dùng khoá này để mã hoá toàn bộ các liên lạc qua lại phiên làm việc Tuy nhiên, trước khi trình duyệt Web chấp nhận một mã hoá công khai do máy chủ có SSL gửi đến, trình duyệt này phải kiểm tra nhận dạng máy chủ.
2.3.3.2 Bảo vệ Website bằng ngôn ngữ lập trình
Vấn đề được đặt ra là người sử dụng biết địa chỉ một trang trong Website và khi truy cập thì họ truy cập vào trang đó để khai thác những thông tin không được phép mà không thông qua trang chủ để xác nhận những thông tin cần thiết. Như vậy, vấn đề được đặt ra là làm sao có thể chống được truy cập kiểu này và tại mỗi trang cụ thể nếu không có quyền hợp lý thì sẽ không truy xuất được nội dung của trang.
Một số ngôn ngữ lập trình như ASP, PHP, JSP,… đều có giải pháp và công cụ để giải quyết vấn đề này:
Một là, yêu cầu mỗi người ding khi truy cập trang Web đều phải qua một trang xác nhận những thông tin cần thiết. Có thể viết một Modul CGI kiểm tra yêu cầu tài nguyên của người sử dụng.
Hai là, ở mỗi trang cụ thể ta phải xác nhận lại xem người đó có quyền truy cập đến trang này không. Nếu hợp lệ thì người sử dụng được phép truy cập những thông tin gì và ở cấp độ nào.
2.3.4 Sự chứng thực người dùng (Authentication)
Xác thực là một vấn đề bảo mật chủ yếu trong các hệ điều hành. Hệ thống bảo vệ dựa trên khả năng nhận dạng đúng các chương trình và tiến trình đang chạy. Khả năng này lại dựa trên năng lực nhận biết được từng người sử dụng hệ thống. Thông thường người sử dụng sẽ tự nhận dạng chính mình. Tóm lại, việc chứng thực thường dựa vào một hay nhiều trong 3 tiêu chí sau: Sở hữu của người dùng (khoá hay card); tri thức của người dùng (cặp định danh tên và mật khẩu); hoặc thuộc tính của người dùng (dấu vân tay, mẫu võng mạc, hoặc chữ ký).
2.3.4.1 Mật khẩu
Sự chứng thực người dùng thông dụng nhất là qua mật khẩu của người đó. Khi người dùng tự nhận dạng qua tên người dùng hay tên tài khoản, họ được yêu cầu nhập vào mật khẩu. Nếu mật khẩu nhập vào phù hợp với mật khẩu lưu trong hệ thống thì hệ thống coi người dùng đó là hợp pháp.
Khi không có những lược đồ bảo vệ hoàn chỉnh hơn thì mật khẩu thường là được chọn để bảo vệ các đối tượng trong hệ thống. Có thể coi mật khẩu là trường hợp đặc biệt của các khoá hoặc các khả năng. Thí dụ, mật khẩu có thể gắn với từng tài nguyên hệ thống (như file chẳng hạn); mỗi khi người sử dụng cần tới tài nguyên, họ phải cung cấp mật khẩu; nếu mật khẩu chuẩn xác, truy cập được chấp thuận; Các mật khẩu khác nhau có thể gắn với các quyền truy cập khác nhau như quyền đọc, quyền bổ sung, quyền cập nhật file,…
2.3.4.2 Điểm yếu của mật khẩu
Mặc dù có những vấn đề trong việc dùng mật khẩu nhưng chúng vẫn rất thông dụng vì tính dễ hiểu, dễ dùng. Những vấn đề của mật khẩu bắt nguồn từ việc khó giữ bí mật chúng. Mật khẩu thường bị dò đoán, tình cờ bị lộ hay bị chuyển nhượng bất hợp pháp từ người dùng đươc uỷ quyền sang người không được uỷ quyền như chúng ta sẽ thấy sau đây.
Có 2 cách thường dùng để đoán mật khẩu. Một là của những kẻ xâm nhập (người hay là chương trình) đã biết hay là đã có thông tin về người sử dụng. Tất cả đã quá quen thuộc: mọi người hay sử dụng những thông tin rõ ràng (như tên của con vật nuôi mà mình yêu quý hay tên của chồng/vợ …) làm mật khẩu của họ. Cách đoán còn lại dùng kiểu vét cạn: thử tất cả mọi cách kết hợp của các con chữ, các chữ số và các dấu chấm câu cho tới khi tìm ra mật khẩu. Những mật khẩu ngắn thì chỉ cần rất ít phép thử (phép hoán vị) để tìm ra chúng. Thí dụ: Một mật khẩu 4 ký tự thì chỉ cần thử 10.000 trường hợp. Tính trung bình, đoán 5000 lần sẽ có một lần trúng. Nếu một chương trình có thể thử 1 mật khẩu / 1 phần nghìn giây thì nó chỉ cần 5 giây để đoán ra mật khẩu 4 ký tự số. Mật khẩu càng dài thì càng khó đoán bằng liệt kê, và càng khó hơn khi hệ thống còn phân biệt cả ký tự hoa và ký tự thường và cho phép sử dụng tất cả các dấu cũng như các con số trong mật khẩu. Do vậy, người sử dụng nên chọn mật khẩu tận dụng được không gian mật khẩu lớn và sử dụng nhiều loại ký tự trong mật khẩu của mình.
Bên cạnh đó, sự mất an toàn của mật khẩu có thể xuất phát từ việc bị lộ do bị "nhìn trộm" (shoulder surfing) hay do bị theo dõi bằng điện tử (snifing). Một khi mật khẩu được viết ra đâu đó thì việc bị lộ là khó tránh khỏi nhưng khó khăn là ở chỗ, nếu không viết ra thì lại khó nhớ được vì một số hệ thống buộc người sử dụng phải chọn những mật khẩu dài, phức tạp. Vì thế, cách này đôi khi lại không an toàn hơn cách dùng những mật khẩu ngắn, dễ nhớ.
Cách cuối cùng xâm hại mật khẩu xuất phát từ bản tính con người. Hầu hết các hệ thống đều không cho phép người sử dụng chia sẻ các tài khoản. Nếu mỗi người có một định danh riêng thì họ sẽ phải chịu trách nhiệm về việc dùng tài khoản của mình. Đôi khi, người dùng có thể phá vỡ quy tắc chia sẻ để giúp bạn bè hay để làm hỏng "sổ sách", và hậu quả là hệ thống bị truy cập bởi những người không được uỷ quyền và rất có thể gây hại cho hệ thống.
Mật khẩu có thể là do hệ thống (máy) sinh ra hoặc do người dùng lựa chọn lấy. Các mật khẩu do máy sinh ra có thể rất khó nhớ nên người sử dụng rất hay ghi chúng ra đâu đó (như thế cũng có nghĩa là mất an toàn). Nhưng nếu là mật khẩu do người dùng chọn thì lại thường dễ đoán. Trong một số hệ thống, người quản trị đôi khi kiểm tra mật khẩu của người sử dụng và nhắc nhở họ nếu mật khẩu là quá ngắn hay quá dễ đoán. Một số hệ thống khác lại tính "tuổi thọ" của mật khẩu, buộc người sử dụng thay đổi mật khẩu của họ sau những khoảng thời gian nhất định (3 tháng 1 lần chẳng hạn). Cách này không dễ thực hiện vì người sử dụng rất có thể lẫn giữa 2 mật khẩu. Tuy nhiên, có thể giải quyết bằng cách lưu lại quá trình sử dụng của mật khẩu như đã làm ở một số hệ thống: n mật khẩu sử dụng gần đây nhất sẽ không được dùng lại chẳng hạn.
2.3.4.3 Mật khẩu được mã hoá
Vấn đề khó khăn với tất cả các cách làm trên là việc giữ bí mật mật khẩu như thế nào. Hệ thống UNIX sử dụng biện pháp mã hoá để giữ bí mật danh sách mật khẩu của nó. Mỗi người dùng có một mật khẩu. Hệ thống sử dụng một hàm dễ tính toán (xuôi chiều) nhưng việc tính hàm ngược lại thì cực kì khó (và nhà thiết kế thì hy vọng là không thể được). Tức là, với một giá trị x cho trước thì tính f(x) là dễ dàng nhưng với giá trị f(x) cho trước thì không thể tìm ra được x. Hàm này sẽ mã hoá tất cả các mật khẩu, và hệ thống chỉ lưu những mật khẩu đã được mã hoá. Khi người sử dụng nhập mật khẩu thì mật khẩu này sẽ được mã hoá, sau đó đem so sánh với mật khẩu lưu trong máy. Như vậy, ngay cả khi mật khẩu (đã được mã hoá) bị nhìn thấy thì mật khẩu gốc cũng không bị lộ (do không giải mã được mật khẩu mã hoá). Vì thế, file lưu mật khẩu cũng không phải giữ bí mật; Hàm f(x) nói trên thường là một giải thuật mã hoá đã được thiết kế và chạy thử nghiệm rất cẩn thận .
Điểm yếu trong phương pháp này là ở chỗ hệ thống không còn điều khiển trên các mật khẩu nữa. Tức là, mặc dù mật khẩu đã được mã hoá nhưng một người nào đó với bản sao của file mật khẩu trong tay vẫn có thể chạy các tiểu trình mã hoá rất nhanh, để mã từng từ trong từ điển chẳng hạn, rồi so sánh kết quả với những mật khẩu đã mã hoá có trong file mật khẩu. Và như vậy, nếu người sử dụng chọn mật khẩu là từ nào đó trong từ điển thì nó đã bị phá (crack). Với những máy tính đủ nhanh, những phép so sánh như thế chỉ mất vài giờ đồng hồ. Cho dù các hệ thống UNIX thường sử dụng các giải thuật mã hoá nổi tiếng là khó phá thì một tin tặc (hacker) cũng có thể có được một vùng đệm các cặp "mật khẩu - mã" để tìm nhanh các mật khẩu đã từng bị crack trước đó. Vì lý do này, những phiên bản UNIX mới đã dấu những file mật khẩu đi.
Một điểm yếu khác trong các phương pháp mật khẩu của UNIX là nhiều hệ thống UNIX chỉ chú trọng đến 8 ký tự đầu tiên của mật khẩu, do đó tận dụng không gian mật khẩu sẵn có là vô cùng quan trọng đối với người sử dụng. Để tránh phương pháp mã hoá từ điển, một số hệ thống không cho phép người dùng sử dụng những từ trong từ điển làm mật khẩu.
2.2.4.4 Mật khẩu một lần
Để tránh cho mật khẩu khỏi lộ vì bị "nhìn trộm" (shoulder surfing) hay do bị dò trộm bằng điện tử (sniffing), người ta dùng tập các mật khẩu cặp đôi. Khi bắt đầu phiên làm việc, hệ thống sẽ đưa ra phần nửa đầu của mật khẩu, người sử dụng phải cung cấp phần còn lại. Trong quy trình này, hệ thống đưa ra 1 lời hô (ám hiệu) và người sử dụng phải đáp lại bằng câu trả lời chính xác.
Cách làm này có thể xem như là việc dùng 1 thuật giải làm mật khẩu. Giải thuật ở đây có thể là một hàm nguyên chẳng hạn. Hệ thống sẽ chọn và đưa ra cho người sử dụng 1 số nguyên ngẫu nhiên. Người dùng sẽ áp dụng hàm vào và trả lại kết quả đúng. Hệ thống cũng áp dụng hàm đó và nếu 2 kết quả phù hợp nhau thì truy cập được cho phép.
Ngoài ra, một phương pháp mật khẩu khác cũng rất khó phá, chẳng hạn khi người dùng gõ vào một mật khẩu nhưng bất kỳ hành động nào nhằm chen ngang và có ý định sử dụng lại mật khẩu đó đều không thành công. Hệ thống như vậy sử dụng những mật khẩu thuật toán. Trong hệ này, người sử dụng và hệ thống có chung một điều bí mật. Bí mật này không bao giờ bị truyền trên các phương tiện có thể dẫn đến lộ. Thay vào đó, nó được dùng cùng với một "nhân" dùng chung làm đầu vào cho hàm tính toán f(secret,seed). "Nhân" ở đây là một số ngẫu nhiên hay một dãy chữ và số, nó chính là phần lời "hô" từ phía hệ thống trong phiên xác thực. Kết quả tính toán của hàm được truyền như một mật khẩu tới máy trạm. Vì máy trạm cũng biết phần bí mật và nhân nên nó cũng có thể thực hiện được tính toán tương tự như thế. Nếu các kết quả phù hợp nhau, người sử dụng đã được chứng thực. Trong phiên xác thực sau, một nhân khác được tạo ra và các bước làm tương tự như trên, tuy nhiên mật khẩu lần này đã khác. Chính vì mật khẩu khác nhau trong từng trường hợp nên nếu ai đó có chặn bắt được mật khẩu trong phiên làm việc này và định sử dụng nó cho phiên làm việc sau tất nhiên sẽ thất bại.
Như vậy, mật khẩu một lần ngăn chặn được sự chứng thực không chính xác do lộ mật khẩu. Một biến thể khác của mật khẩu một lần là việc sử dụng sách mã, hay bộ đệm một lần: danh sách các mật khẩu chỉ dùng 1 lần. Mỗi mật khẩu trong danh sách theo thứ tự sau khi dùng sẽ bị gạch đi hay bị xoá. Hệ thống S/Key thông dụng dùng các phần mềm tính toán hay các sách mã dựa trên kết quả của những tính toán này làm nguồn các mật khẩu một lần.
Chương III
Xây dựng một số chương trình tấn công trên mạng qua giao thức Telnet
3.1 Những nguy cơ gây mất an ninh trên mạng
Internet cung cấp rất nhiều kỹ thuật để người dùng có thể truy nhập, khai thác, chia xẻ thông tin. Tuy nhiên, đây cũng chính là nguy cơ dẫn đến thông tin của bạn có thể bị hư hỏng hoặc phá huỷ hoàn toàn. Theo thống kê cho thấy những vụ tấn công trên mạng nhằm vào tất cả máy tính có mặt trên Internet. Tất cả máy tính của các trường đại học, các công ty, tổ chức quân sự, nhà băng… trong số đó có một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công). Không chỉ số lượng các vụ tấn công tăng lên một cách nhanh chóng mà các phương pháp tấn công cũng ngày càng được hoàn thiện. Các phương pháp tấn công chủ yếu là đoán tên người sử dụng-mật khẩu (user-password) hoặc sử dụng một số lỗi của các chương trình và hệ điều hành (Security hole) làm vô hiệu hoá hệ thống bảo vệ, tuy nhiên các cuộc tấn công vào thời gian gần đây bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa(Telnet hoặc Rlogin).
Muốn bảo vệ một mạng, dịch vụ khỏi những kẻ xâm nhập, ta hãy tìm hiểu những nguyên nhân dẫn đến mất an toàn mạng máy tính.
- Sự dùng chung: Chính vì sự chia xẻ tài nguyên và các khối lượng công việc trên mạng đã làm tăng số người sử dụng có khả năng truy cập tới các hệ thống được nối mạng, việc bảo vệ các tài nguyên đó tất nhiên sẽ phức tạp hơn nhiều so với trường hợp một máy tính đơn lẻ, một người sử dụng.
- Sự phức tạp của hệ thống: Có thể có nhiều hệ điều hành khác nhau trên mỗi mạng, mỗi hệ điều hành lại là một phần mềm rất tinh vi và trên đó lại cài đặt rất nhiều phần mềm khác nhau. Do đó, một hệ điều hành mạng sẽ phức tạp hơn nhiều so với hệ điều hành cho từng hệ thống đơn lẻ. Vì vậy, khó mà tin cậy được vào sự an toàn của một mạng nếu không có một hệ điều hành mạng lớn, được thiết kế đặc biệt cho vấn đề an ninh.
- Có quá nhiều mục tiêu tấn công: Khi một file được lưu trữ trong một host ở xa người sử dụng nó phải qua rất nhiều host khác mới có thể sử dụng được file đó. Mặc dù người quản trị của một host đó có thể thi hành nhiều chính sách an ninh thật chặt chẽ nhưng người đó không thể làm gì khác với các host khác trong mạng. Người sử dụng phải phụ thuộc vào các cơ chế điều khiển truy cập của tất cả các hệ thống này.
- Sự nặc danh: Một kẻ tấn công có thể tác động vào một hệ thống từ cách xa hàng ngàn km mà có thể không bao giờ phải tiếp xúc tận nơi hệ thống cần tấn công cũng như không cần phải tiếp xúc với bất cứ người quản trị hay người sử dụng hệ thống đó. Sự tấn công đó có thể thực hiện thông qua nhiều host khác nhằm ngụy trang nguồn gốc của nó.
- Không xác định được đường dẫn: Có thể có nhiều đường dẫn từ host này sang host khác và người sử dụng hầu như không biết và không điều khiển được sự dẫn đường cho các thông điệp của họ.
3.2 Phân tích các nguy cơ gây mất an ninh trên mạng đối với giao thức Telnet
Như rất nhiều dịch vụ khác trên mạng máy tính (FTP, DNS, Mail, Web…) thì Telnet cũng là một dịch vụ trên mạng máy tính cung cấp thông tin cho người sử dụng. Chính vì thế, tất cả các nguy cơ trên mạng máy tính nói chung cũng là nguy cơ đối với dịch vụ Telnet, đồng thời ngoài những nguy cơ nói chung đối với mạng máy tính thì dịch vụ Telnet còn có những nguy cơ riêng (vì nó có những đặc điểm riêng).
Việc phân tích các nguy cơ cần xác định một cách rõ ràng: cái gì cần bảo vệ, bảo vệ t
Các file đính kèm theo tài liệu này:
- 2362.doc