Chủ Nhật, 25 tháng 11, 2007

Tìm hiểu về Registry của Windows 2003

Trong bài báo này, chúng tôi sẽ giới thiệu cho các bạn về Registry của Windows 2003, xem xét qua xem nó là gì, cách cấu hình từ xa, cách backup và restore nó như thế nào. Tài liệu này được dự định là một tài liệu tham khảo giúp bạn có thể tìm hiểu phần lõi hệ điều hành thế hệ sau của Microsoft.

Giới thiệu
Được giới thiệu ngay trong Windows 95, Registry là một trung tâm cho người dùng duy nhất và dữ liệu cấu hình máy tính. Trong các mục cơ bản, nó là một cơ sở dữ liệu lớn nắm giữ tất cả các thông tin cấu hình của Windows 2003 – các thiết lập có liên quan đến tài khoản người dùng, phần cứng máy và các ứng dụng. Mọi thứ từ sở thích của người dùng (như màu nền, bộ bảo vệ màn hình,…) đến các mật khẩu tài khoản được mã hóa đều nằm trong đó. Registry được đưa ra để thay thế các file .INI cũ (file lưu các thiết lập cấu hình bên trong). Các file .INI cũng có một số ưu điểm vì chúng ngắn và dễ soạn thảo, tuy nhiên cũng có một số hạn chế như các giới hạn về kích thước và không hỗ trợ cho nhiều người dùng. Với registry, chúng ta có thể loại bỏ những hạn chế đó và làm cho mọi thứ trở nên dễ dàng hơn khi khôi phục các thiết lập sau khi có hỏng hóc xuất hiện, điều khiển truy cập và kiểm tra các thay đổi của hệ thống. Registry có một số ưu điểm, nếu bạn đang cài đặt một ứng dụng, lúc đang ghi một chùm khóa vào thanh registry có một lỗi về nguồn cấp thì mọi thứ đều không bị ảnh hưởng khi hệ thống được backup và chạy trở lại.

Lưu ý: Một số ứng dụng vẫn sử dụng file .INI để lưu các thiết lập người dùng hoặc các ngôn ngữ cho GUI. Ví dụ, tại thời điểm viết bài này, tôi đã mở language.ini , file được tìm thấy trong thư mục của một trong những ứng dụng đã được cài đặt của tôi và đã thay đổi một số chuỗi trong đó. Sau đó khi mở ứng dụng thì GUI đã thể hiện văn bản của tôi trên nó thay vì văn bản mặc định. Đa số các thông tin trong Registry được đặt một cách tự động bởi Windows khi cài đặt hệ điều hành. Phần còn lại đến từ các tiện ích và ứng dụng thông qua trình cài đặt của họ. Bạn cũng có thể tự soạn thảo dữ liệu Registry, điều đó cho phép có thể điều chỉnh, kích hoạt hoặc sửa một số thiết lập nào đó.

Cảnh báo! Bất kỳ thay đổi nào thực hiện với Registry bằng Registry Editor đều là cố định, không có nút “undo”, vì vậy bạn phải cẩn thận với những gì thực hiện ở đây. Chỉ can thiệp vào Registry nếu bạn biết mình đang thực hiện những gì, bởi vì hậu quả cho các lỗi gây ra với Registry có thể rất nghiêm trọng (ví dụ tồi tệ nhất là bạn sẽ phải cài đặt lại Windows). Nguyên tắc chủ chốt khi thực hiện các thao tác với Registry là bạn luôn thực hiện một bản backup để phòng khi tình huống xấu có thể xảy ra. Dưới đây là một hình ảnh thể hiện cấu trúc của Registry, nó được tạo thành bằng 5 nhánh con (sẽ được thảo luận trong phần tiếp theo của bài viết này). Bạn có thể duyệt đến một khóa từ phần bên trái và các giá trị của nó sẽ được hiển thị bên cửa sổ phía phải. Để mở Registry Editor, bạn kích Start > Run… và đánh vào đó “regedit.exe”.


Hình 1: Regedit.exe đang hiển thị cấu trúc của Registry

Thiết lập các cho phép
Bạn có thể thiết lập cho phép trên các nhánh con hoặc khóa riêng biệt để người dùng được phép hoặc không được phép truy cập. Mặc định, người dùng được phép truy cập đọc trong khi các quản trị viên được phép đọc và ghi trên hầu hết các khóa. Khi kiểm tra một ứng dụng .NET gần đây, tôi đã phát hiện ra rằng hành vi cài đặt không gán đúng các cho phép cho một khóa nào đó thì một phần của ứng dụng có thể bi hỏng. Khi thiết lập đúng các cho phép, mọi thứ lại làm việc bình thường trở lại. Trong trường hợp này nó là lỗi của hãng và may mắn thay tôi lại có thể sửa được lỗi này thông qua regedit.exe. Để thiết lập các cho phép, bạn mở regedit.exe, kích phải vào khóa và chọn “Permissions…”. Windows lúc này sẽ hiển thị một danh sách ACL cho khóa đó và bạn có thể soạn thảo các cho phép như thực hiện trên file NTFS hay thư mục.


Hình 2: Danh sách ACL cho thiết lập các cho phép trên khóa SOFTWARE

Cũng không thừa khi nói rằng bạn phải cẩn thận với những ai, cái gì mà bạn cho phép và hạn chế cho phép.

5 nhánh nhỏ của Registry
5 nhánh nhỏ dưới đây của Registry gồm nhóm logic thông tin Registry được gọi là các nhánh nhỏ (SubTrees). Có 5 phần chính của Registry và mỗi phần trong chúng giữ một tập các khóa con. Khi tiến hành thay đổi, bạn có khả năng thực hiện hầu hết công việc trong nhánh _MACHINE và _USER.

Nhánh Mô tả
HKEY_CLASSES_ROOT HKEY_CLASSES_ROOT là nhánh gồm có dữ liệu liên quan tới các kiểu file với các ứng dụng và cấu hình cho đối tượng COM.
HKEY_LOCAL_USER Nhánh này cũng được biết đến với tên viết tắt HKCU, HKEY_LOCAL_USER gồm các thiết lập và sở thích cho người dùng hiện đã đăng nhập vào hệ thống. Các thiết lập này là động và duy nhất với mỗi người dùng.
HKEY_LOCAL_MACHINE Được viết tắt là HKLM, HKEY_LOCAL_MACHINE gồm các thông tin về phần cứng hiện đã được cài đặt và các thiết lập cho hệ thống đang chạy trên máy. Bình thường nó tĩnh tại đối với tất cả người dùng cho tới khi có môt sự thay đổi nào đó được thực hiện.
HKEY_USERS Nhánh này gồm có một con trỏ trỏ đến HKEY_LOCAL_USER và profile người dùng mặc định (một mẫu đã sử dụng khi gán một profile cho những người dùng mới).
HKEY_CURRENT_CONFIG Nhánh này lưu dữ liệu cấu hình cho phần cứng hiện tại và trỏ đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles

Các kiểu dữ liệu đã định nghĩa cho Registry
Phía bên phải của trình soạn thảo Registry, bạn sẽ thấy nhiều kiểu dữ liệu khác nhau và các giá trị của chúng.

Kiểu dữ liệu Mô tả
REG_SZ Chuỗi giá trị đơn giản. thường là một URL, đường dẫn hoặc số cổng.
REG_BINARY Dữ liệu nhị phân biểu diễn trong định dạng hexa.
REG_DWORD Kiểu dữ liệu khác của REG_BINARY nhưng có chiều dài 4 byte
REG_MULTI_SZ Một chuỗi ký tự kích thước cho phép bạn có thể nhập vào số các tham số trong thực thể giá trị đơn này.
REG_EXPAND_SZ Là một chuỗi ký tự kích thước thay đổi có thể gồm có các thông tin động thay đổi khi khởi động (như %username%, thành phần có kích thước khác nhau đối với mỗi tên)

Cấu hình Registry từ xa
Regedit.exe cho phép bạn cấu hình từ xa Registry của các máy tính khác một cách nhanh chóng và dễ dàng. Tất cả những gì bạn cần là quyền phê chuẩn (quyền quản trị) để thực hiện. Mẹo: Hãy bảo đảm rằng Group Policy không nằm ở vị trí không cho phép các kết nối Registry từ xa. Mở regedit.exe và từ menu File bạn chọn “Connect Network Registry…”. Đánh tên máy tính hoặc nhấn [Advanced…] và tìm kiếm máy tính, sau đó nhấn OK. Sau khi nhập vào đúng các thông tin chi tiết, registry của máy tính điều khiển xa được nạp vào giao diện điều khiển như nó là máy tính cục bộ. Khi bạn đã thực hiện xong việc thay đổi, hãy chọn từ “Disconnect Network Registry…” menu File khi đó regedit.exe sẽ dừng kết nối. Bạn nên nhớ rằng bất kỳ thay đổi nào tạo ra đểu sẽ ảnh hưởng trên máy tính từ xa ngay lập tức, hoặc một số trường hợp sau khi khởi động lần kế tiếp.


Hình 3: Màn hình hiển thị kết nối Registry từ xa

Khi bạn kết nối một Registry từ xa, bạn chỉ có thể chỉnh sửa trong các khóa HKEY_LOCAL_MACHINE và HKEY_USERS. Trong ví dụ này, từ một máy tính cục bộ, được kết nối đến một máy chủ khác có tên gọi là ZTABONA và có thể tạo những thay đổi cần thiết đối với các khóa đã đề cập ở trên.

Việc sao lưu dự phòng và khôi phục Registry
Có ba phương pháp sao lưu dự phòng (backup) Registry trong Windows 2003. Bạn có thể backup/restore toàn bộ Registry bằng tiện ích Windows Backup, import/export các nhánh nào đó hoặc khóa từ regedit.exe, hoặc sử dụng một công cụ nhỏ là reg.exe từ dòng lệnh. Phần sử dụng công cụ này sẽ được giải thích chi tiết hơn ở phần dưới.

Tiện ích Backup and Restore
Từ menu Start, bạn điều hướng đến Programs > Accessories > System Tools và mở Backup - để vào tiện ích Backup and Restore Wizard hoặc có thể đi thẳng vào tiện tích Backup and Restore (phụ thuộc vào các thiết lập bạn đã chọn từ trước).


Hình 4: Tiện ích Backup and Restore

Từ tab Backup, bạn mở My Computer và chọn hộp kiểm System State. Lưu ý: Trên bộ điều khiển miền, việc sao chép dự phòng trạng thái hệ thống cũng sao chép dự phòng luôn cả Active Directory, các file khởi động, Certificate Server (nếu đã cài đặt), Registry của lớp đối tượng COM và SYSVOL, một phần của Registry đầy đủ. Chọn một vị trí để file backup được lưu tại đó (thường là thiết bị lưu trữ di động hoặc partition khác) và kích Start Backup. Một hộp thoại mới sẽ xuất hiện hiển thị trạng thái của thủ tục backup. Khi backup được hoàn tất, nhấn OK và đóng cửa sổ lại. Để khôi phục một file backup, bạn vào tab Restore and Manage Media và chọn Tools > Catalog a backup file. Duyệt đến vị trí của file backup đã được lưu và chọn nó. Chọn những gì bạn muốn khôi phục (trong trường hợp này nó là toàn bộ trạng thái hệ thống) và nhấn nút Start Restore Import/Export các File của Registry Khi export một phần của Registry, nó được lưu bởi một file .reg, khi được thực thi sẽ đưa các giá trị của nó quay trở lại Registry. Điều này thường được sử dụng khi một hãng phần mềm nào đó cần một máy khách để kích hoạt “Chế độ debug”. Để export một file Registry, bạn chọn khóa mong muốn từ panel bên trái của regedit.exe, kích chuột phải vào nó và chọn Export. Chọn nơi bạn muốn file .reg được lưu và nhấn Save. Khi file đã được export, bạn có thể chỉnh sửa nó bằng Notepad.exe hoặc bất kỳ phần mềm soạn thảo văn bản nào. Ví dụ một file .reg:

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Control Panel\Accessibility\MouseKeys] "Flags"="62" "MaximumSpeed"="80" "TimeToMaximumSpeed"="3000"

Để inport một file .reg, bạn chỉ cần kích đúp vào nó sau đó nhấn Yes. Thông tin sau đó sẽ được bổ sung vào Registry.


Hình 5: Thông báo xác nhận của bộ soạn thảo Registry

Chỉ import các thông tin cho Registry nếu bạn biết chính xác khóa gồm những gì. Lưu ý: Bạn cũng có thể import/export một file Registry bằng công cụ dòng lệnh reg.exe.

Sử dụng dòng lệnh
Sử dụng reg.exe, bạn có thể backup và restore các phần của Registry bằng một số lệnh đơn giản. Công cụ này sẽ cho phép bạn backup một nhánh con trong khi đó hệ thống vẫn đang chạy. Với mục đích giải thích, chúng tôi sẽ minh chứng về cách sử dụng REG SAVE và REG RESTORE. REG save Sử dụng lệnh REG save để lưu các khóa gốc cho việc khôi phục sau này. Cú pháp của lệnh này là:

reg save

Trong ví dụ của chúng tôi, sử dụng cú pháp ở trên để lưu HKEY_CLASSES_ROOT, HKEY_CLASSES_CONFIGHKEY_CLASSES_USER (bạn có thể xem hình bên dưới).


Hình 6: Sử dụng công cụ dòng lệnh reg.exe để lưu các khóa Registry

Các file Registry sẽ được lưu vào thư mục cụ thể nào đó, như thể hiện trong hình dưới đây.


 Hình 7: Thư mục lưu các khóa Registry

Sử dụng lệnh “reg restore”, bạn có thể khôi phục các khóa đã lưu từ trước. Trong ví dụ của chúng tôi, nếu muốn khôi phục HKEY_CLASSES_ROOT tôi phải chạy lệnh dưới đây tại dấu nhắc lệnh.

Reg restore hkcr c:\regbackup\hkcr

Thực hiện tương tự như vậy với các khóa khác.

Kết luận
Tìm hiều về registry như thế nào, cách backup và restore ra sao sẽ mang đến cho bạn những kiến thức có giá trị. Đặc biệt với một quản trị viên bạn cần phải thấy được rằng việc chỉnh sửa registry đôi khi có thể trả lời được khá nhiều vấn đề. Nhiều người thích tìm hiểu registry nhưng có những người không muốn dính dáng tới nó vì chưa hiểu. Không nên quá sợ khi thực hiện các thay đổi, chỉ cần một điều là bạn phải cẩn thận và biết được chính xác những gì mình đang thực hiện.

Thứ Ba, 13 tháng 11, 2007

Thuật toán

Những thuật toán làm thay đổi thế giới đôi khi không phát sinh từ công việc nghiên cứu mà chính từ yêu cầu thực tiễn. Thuật toán - theo nghĩa thông thường là cách thức thực hiện một công việc hay giải quyết một bài toán nào đó - hiện diện khắp nơi trong ngành công nghiệp điện toán. Những thuật toán xác định cách thức người dùng liên lạc, làm việc và cả giải trí.

Có những thuật toán nổi tiếng hơn những thuật toán khác. Có thể kể một số thuật toán nổi tiếng nhất như TCP/IP xác định cách thức truyền dữ liệu trên Internet; Cơ chế tìm kiếm Google xác định cách thức hàng triệu người tìm thông tin trực tuyến; HTTP, nền tảng của World Wide Web và đóng vai trò to lớn trong cuộc cách mạng Internet vào giữa thập niên 1990. Một số thuật toán khác ít nổi tiếng hơn nhưng có vai trò quan trọng không kém, ví dụ thuật toán đồng bộ tất cả đồng hồ trên Internet của Dave Mills thuộc đại học Delaware. Truyền thông Một trong những thuật toán quan trọng nhất là TCP/IP - Transmission Control Protocol/Internet Protocol - được phát kiến vào lúc mà đa phần máy tính là những cỗ máy kềnh càng đặt trong phòng lạnh. Vào những năm 1960, cơ quan nghiên cứu của bộ quốc phòng Mỹ (ARPA) phối hợp với nhiều trường đại học thành lập nhóm nghiên cứu tạo hệ thống kết nối các mạng khác nhau dựa trên các chuẩn mở. Năm 1969 - cùng năm Nicklaus Wirth (tác giả của phát biểu nổi tiếng: "Thuật toán + cấu trúc dữ liệu = Chương trình") viết trình biên dịch Pascal - nhóm nghiên cứu đã phát triển mạng chuyển mạch gói gồm 4 nút được đặt tên là ARPANET. Năm năm sau, Vinton Cerf và Robert Kahn đưa ra thuật toán mới, sau này được biết đến với tên gọi TCP/IP. Năm 1980, ARPA bắt đầu chuyển các máy tính của mình sang dùng TCP/IP, và 3 năm sau tổ chức này bắt buộc tất cả máy tính kết nối với ARPANET đều phải dùng thuật toán này. TCP/IP đã thực sự trở thành chuẩn nền tảng của Internet ngày nay, với hàng trăm triệu người dùng trên khắp thế giới. Bảo mật Các thuật toán làm thay đổi thế giới đôi khi không phát sinh từ công việc nghiên cứu mà từ yêu cầu thực tiễn. Một ví dụ của trường hợp này là thuật toán mã hoá, được tạo ra để chống lại những chuyên gia "bẻ khoá" nhằm lấy cắp hay xem trộm dữ liệu quan trọng. Thuật toán mã hoá RSA được phát triển tại học viện kỹ thuật Massachusetts (MIT) vào năm 1977, đặt theo tên các tác giả Ronal Rivest, Adi Shamir và Leonard Adleman. Thực ra trước đó vài năm, Clifford Cox, chuyên gia mã hoá người Anh, đã phát triển riêng một biến thể RSA. Tuy nhiên, chính phủ Anh xem đây là vấn đề mật và đã không công bố. Thuật toán RSA gần như gặp chung số phận. Khi Rivest, Shamir và Adleman công bố RSA trong ấn phẩm Scientific American tháng 9/1977, họ tự nguyện cung cấp toàn bộ thông tin cho bất kỳ ai gửi đến một phong bì có dán tem và ghi sẵn địa chỉ (người nhận). Cơ quan an ninh quốc gia Mỹ (NSA) đã không đồng ý về việc phổ biến rộng rãi RSA và ra lệnh cấm - tuy nhiên lệnh cấm này không có cơ sở pháp lý. Năm 1978, các tác giả đã công bố thuật toán trong ấn phẩm nổi tiếng Communications of the Association for Computing Machinery (ACM). Và thế là RSA sổ lồng. Trong môi trường Internet hiện nay, các thuật toán bảo mật như RSA và các hậu duệ của nó có vai trò rất quan trọng. Các thuật toán này tạo nên cơ sở cho thương mại điện tử an toàn bằng cách cho phép thực hiện các giao dịch trực tuyến trong định dạng mã hoá. Nén Cũng vậy, trong thế giới thông tin trao đổi nhanh hiện nay, các thuật toán nén dữ liệu, âm thanh và hình ảnh ngày càng có vai trò quan trọng trong đời sống. Thuật toán nén âm thanh và video đã giúp cho VoIP và truyền hình IP trở nên hiện thực. Nhằm mục đích này, các nhà nghiên cứu đã phát triển nhiều thuật toán dùng để nén và truyền dữ liệu. Chẳng hạn, năm 1991, Steve Casner và Van Jacobsen của Cisco Systems đồng phát triển Compressed Real-Time Protocol (CRTP). Trong khi đó, ở Đức, một thuật toán được khai sinh đã làm thay đổi cả ngành công nghiệp âm nhạc. Năm 1987, nhóm nghiên cứu tại đại học Erlangen dưới sự hướng dẫn của giáo sư Dieter Seitzer và nhóm nghiên cứu của Fraunhofer Gesellschaft tại học viện Institut Integrierte Schaltungen cùng phát triển thuật toán cho phép nén âm thanh lưu trữ và truyền dẫn. Kết quả là MP3 ra đời, cho phép giảm 12 lần dung lượng gốc trên CD mà vẫn giữ được chất lượng âm thanh. Từ đó, thế giới không còn như trước nữa. Thuật toán ở mọi nơi Các thuật toán được giới thiệu ở đây chỉ là một vài điển hình. Bạn có thể tìm thấy thuật toán ở mọi nơi - trong các phần mềm máy tính, trong động cơ ô tô và trong guồng máy của thị trường chứng khoán. Thực tế, nếu câu hỏi là "nó làm việc như thế nào?" thì câu trả lời hầu như liên quan đến thuật toán. Dù với mục đích nén, bảo mật, truyền thông, tốc độ, truy cập hay cái gì đó hoàn toàn khác (mà hiện chúng ta chưa hình dung được) - không nghi ngờ gì các thuật toán sẽ tiếp tục chi phối cuộc sống của chúng ta.

TOP 10 THUẬT TOÁN CỦA MỌI THỜI ĐẠI

"Thuật toán" được dịch từ chữ "Algorithm" (tiếng Anh) có nguồn gốc từ chữ Al-Khwarizmi, tên của một học giả A-rập sống vào thế kỷ 9, tác giả của quyển sách al-jabr wa'l muqabalah khởi nguồn của các sách giảng dạy về đại số hiện nay. Al-Khwarizmi đã nhấn mạnh đến tầm quan trọng của các phương pháp thủ tục dùng để giải quyết các bài toán. Phương pháp được đặt theo tên Al-Khwarizmi - algorithm, hay thuật toán - đã có những bước tiến đầy ấn tượng cùng với ngành công nghệ thông tin trong thế kỷ qua. Dưới đây là 10 thuật toán có "ảnh hưởng lớn nhất đến sự phát triển của khoa học và công nghệ", theo Computing in Science & Enginering (ấn phẩm hợp tác của học viện Vật Lý Mỹ và IEEE Computer Society). 1 1946: John von Neumann, Stan Ulam và Nick Metropolis, cả ba đều thuộc viện nghiên cứu Los Alamos Scientific Lab., xây dựng thuật toán Metropolis, còn được biết đến với tên là phương pháp Monte Carlo. Mặc dù sử dụng các quá trình ngẫu nhiên, thuật toán này đưa ra một cách thức hiệu quả để đi "đến gần" lời giải cho các bài toán quá phức tạp, khó có thể giải một cách chính xác. 2 1947: George Dantzig thuộc công ty RAND tạo thuật toán đơn hình cho quy hoạch tuyến tính (Simplex Method for Linear Programming). Một giải pháp hay cho bài toán phổ biến trong hoạch định và ra quyết định. 3 1950: Magnus Hestenes, Eduard Stiefel và Cornelius Lanczos, cả ba đều thuộc học viện Numerical Analysis, phát triển thuật toán lặp không gian con Krylov. Thuật toán này cho phép giải nhanh các phương trình tuyến tính rất phổ biến trong tính toán khoa học. 4 1951: Alston Householder thuộc viện nghiên cứu Oak Ridge National Lab. xây dựng phương pháp phân rã tính toán ma trận, gồm các kỹ thuật dùng cho đại số tuyến tính.

5 1957: John Backus phụ trách một nhóm nghiên cứu tại IBM phát triển trình biên dịch tối ưu Fortran cho phép chuyển mã lệnh cấp cao thành mã máy một cách hiệu quả. Đây là một trong những sự kiện quan trọng nhất trong lịch sử lập trình máy tính. 6 1959: J.G.F.Francis thuộc công ty Ferranti giới thiệu thuật toán QR, một trong những phép tính ma trận quan trọng nhất. 7 1962: Tony Hoare thuộc công ty Elliott Brothers giới thiệu thuật toán Quicksort, cho phép xử lý hiệu quả cơ sở dữ liệu lớn. 8 1965: James Cooley thuộc trung tâm nghiên cứu T.J. Watson của IBM và John Turkey thuộc đại học Princeton và viện nghiên cứu AT&T Bell Lab công bố thuật toán biến hình Fourier nhanh (Fast Fourier Transform). Đây có lẽ là thuật toán phổ biến nhất hiện nay, nó cho phép phân tích các dạng sóng bất kỳ (như âm thanh) thành các thành phần tuần hoàn. 9 1977: Helaman Ferguson và Rodney Forcade thuộc đại học Brigham Young đưa ra thuật toán phát hiện quan hệ số nguyên. Đây là phương pháp tìm lời giải nhanh cho các phương trình đơn giản ràng buộc bởi tập hợp các số dường như không có liên quan với nhau. Thuật toán này rất hữu ích trong việc làm đơn giản các phép tính lược đồ Feynman theo lý thuyết lượng tử. 10 1987: Leslie Greengard và Vladimir Rokhlin của đại học Yale (Mỹ) đưa ra thuật toán đa cực nhanh (Fast Multipole Method). Đây là bước đột phá trong việc giải quyết độ phức tạp của các phép tính bậc N, ứng dụng từ các bài toán thiên văn đến phân tử. Cả 10 thuật toán trên đều ra đời trong thế kỷ 20. Những thuật toán nào của thể kỷ 21 sẽ gia nhập danh sách này? Câu trả lời có lẽ phải đợi hàng chục hoặc cả trăm năm nữa.

Thứ Hai, 12 tháng 11, 2007

Học XML với 10 điểm ghi nhớ

XML, XLink, Namespace, DTD, Schema, CSS, XHTML ... Nếu bạn hoàn toàn chưa biết về XML, bạn sẽ thấy khó vì không biết bắt đầu từ đâu. Bản tóm tắt sau là 10 điểm giúp bạn nắm được đầy đủ những khái niệm cơ bản cho phép người mới học có khái niệm chung trước khi đi vào chi tiết. Và nếu bạn nào đang chuẩn bị trình bày một bài tham luận về XML, vậy thì tại sao lại không bắt đầu với 10 điểm này ?

1. XML được dùng để tạo cấu trúc dữ liệu

Dữ liệu này bao gồm bảng công tác, sổ địa chỉ, các tham số cấu hình, giao dịch tài chính và vẽ kỹ thuật. XML là một hệ thống các luật (có thể coi là những hướng dẫn hay quy ước) dùng cho việc thiết kế các format cho văn bản giúp bạn tạo cấu trúc cho dữ liệu. XML không phải là ngôn ngữ lập trình và bạn cũng không cần phải là một lập trình viên để có thể học và sử dụng nó thành thạo. XML giúp cho máy tính của bạn dễ dàng tạo dữ liệu, đọc dữ liệu và làm cho cấu trúc dữ liệu của bạn trở nên rõ ràng dễ hiểu. XML còn giúp bạn tránh được những bẫy thông thường trong thiết kế ngôn ngữ: nó có thể mở rộng, có platform hoàn toàn độc lập và hỗ trợ tính quốc tế hoá và nội địa hoá. XML hỗ trợ hoàn toàn Unicode.

2. XML có một số điểm giống với HTML

Tương tự HTML, XML cũng sử dụng các tags (các từ được đặt trong ngoặc với '<' và '>') và dùng thuộc tính (với mẫu name="value"). Trong khi HTML đặc biệt chú ý tới từng tag và attribute có ý nghĩa gì, và phần văn bản giữa các tag đó sẽ hiển thị như thế nào trong trình duyệt thì XML sử dụng các tag chỉ để phân định ranh giới giữa các mẩu dữ liệu, và coi việc đọc và xử lý dữ liệu đó hoàn toàn là nhiệm vụ của ứng dụng. Nói cách khác, nếu bạn thấy "

" trong một file XML, đừng cho rằng đó là ký hiệu của một đoạn. Tuỳ thuộc vào văn cảnh, nó có thể là giá (price), một tham số (a parameter), một người (a person), hay một cái gì đó bắt đầu bằng chữ cái 'p' trong tiếng Anh.

3. XML là một văn bản, nhưng không giống những loại văn bản thông thường mà ta có thể đọc được

Các chương trình dùng để tạo bảng công tác, sổ địa chỉ, và các dữ liệu được cấu trúc hóa thông thường lưu dữ liệu trên đĩa, sử dụng khuôn dạng text hay nhị phân. Một thuận lợi của khuôn dạng văn bản là cho phép người ta, nếu cần thiết, có thể xem dữ liệu mà không cần phải có chương trình đã tạo ra dữ liệu đó; nói cách khác, bạn có thể đọc nó với bất kì bộ soạn thảo văn bản nào mà bạn thích. Các khuôn dạng văn bản cũng cho phép người ta tìm lỗi dễ dàng hơn trong các ứng dụng. Giống như HTML, các file XML là những file văn bản được tạo ra không phải với mục đích để đọc, nhưng cũng không loại trừ trường hợp nếu cần thì vẫn có thể đọc được. Tuy nhiên XML lại có điểm không bằng HTML, các luật dùng trong file XML rất hạn chế. Chỉ cần quên một tag, hay một thuộc tính không đi kèm với nội dung (quots) sẽ làm cho toàn bộ file XML đó ngừng hoạt động, trong khi ở HTML những lỗi này có thể được bỏ qua. Bản ghi XML chính thức không cho phép các ứng dụng tìm hiểu đến lần thứ 2 nguyên nhân gây lỗi file XML; nếu file bị lỗi ứng dụng đó ngừng hoạt động ngay lập tức và báo lỗi.

4. XML is verbose by design

Vì XML là định dạng văn bản và nó sử dụng tag để phân định từng chức năng trong dữ liệu nên file XML hầu như luôn lớn hơn định dạng nhị phân. Đó là chủ ý của người tạo ra XML. Những điểm mạnh của định dạng văn bản đã được nêu rõ (ở điểm 3), và những bất cập có thể được đền bù ở mức độ khác. Đĩa với dung lượng lớn ngày nay rẻ hơn trước kia, và các chương trình nén như zip và gzip có thể nén file rất nhanh chóng và chất lượng. Thêm vào đó, giao thức truyền thông như HTTP/1.1, giao thức chính dùng trong web, có thể nén dữ liệu nhanh chóng và ghi lại dải tần hiệu quả như định dạng nhị phân.

5. XML is a family of technologies

XML 1.0 là một bản ghi định nghĩa về "tags" và "thuộc tính". Trên XML 1.0, "the XML family" là một bộ các module cung cấp các dịch vụ hữu dụng để hoàn thành những nhiệm vụ yêu cầu có tính chất thường xuyên và quan trọng. Xlink được coi như một phương thức chuẩn để đưa các liên kết siêu văn bản vào file XML. XPointer and XFragments là những cú pháp để phát triển các phần trong văn bản XML . XPointer có đôi chỗ giống URL, nhưng thay vì tập trung vào văn bản trên mạng, nó lại tập trung vào từng đoạn dữ liệu trong file XML. CSS, the style sheet language, có thể áp dụng được đối với XML giống như HTML. XSL là một loại ngôn ngữ rất tiến bộ dùng cho style sheets. Nó dựa trên XSLT, một loại ngôn ngữ chuyển đổi sử dụng trong việc sắp xếp lại, thêm vào và xoá đi một số tag và thuộc tính. DOM là một bộ các chức năng chuẩn dùng cho thao tác file XML (và HTML) từ một ngôn ngữ lập trình. XML Schemas 12 giúp các nhà thiết kế định nghĩa chính xác cấu trúc định dạng trên của chính họ. Ngoài ra còn có một số module và công cụ khác hay vẫn còn đang được phát triển. Xin các bạn đọc thêm W3C's technical reports page.

6. XML is new, but not that new

Việc phát triển XML được bắt đầu năm 1996 và đã được W3C khuyến cáo sử dụng từ tháng 2 năm 1998. Điều này có thể khiến bạn nghĩ rằng, XML là công nghệ mới . Trên thực tế, công nghệ này không còn là mới lạ. Trước XML cũng đã có SGML, thiết kế vào đầu những năm 80, đạt tiêu chuẩn ISO từ năm 1986 và được người ta sử dụng rộng rãi trong những dự án lớn. HTML bắt đầu được xây dựng từ năm 1990. Người tạo ra XML đơn giản chỉ tận dụng những điểm mạnh của SGML, cùng với kinh nghiệm có được từ HTML đã tạo ra sản phẩm không thua kém gì SGML, thêm vào đó nó rất thông dụng và dễ dùng. Tuy nhiên có những phát triển trong công nghệ khiến người ta khó phân biệt với cuộc cách mạng công nghệ... Và phải nói rằng trong khi SGML được sử dụng chủ yếu trong các văn bản kỹ thuật, và cả trong một số ít các loại dữ liệu khác thì XML lại hoàn toàn ngược lại.

7. XHTML là sự kết hợp giữa XML và HTML

XML có một ứng dụng rất quan trọng đó là khuôn dạng văn bản: XHTML của W3C, đây là thế hệ tiếp sau của HTML. XHTML có nhiều điểm chung với HTML. Tuy nhiên, trong cú pháp cũng có một số thay đổi để phù hợp với các luật trong XML. Một văn bản được tạo ra với XML sẽ mang cấu trúc của XML và bị hạn chế ở một số phương diện. (Ví dụ, XHTML cho phép "

", nhưng lại không cho ""); nó cũng bổ sung thêm ý nghĩa cho cú pháp (XHTML qui định "

" là "đoạn văn (paragraph)", chứ không phải "giá (price)", "người (person)", hay bất cứ một cái gì khác).

8. XML is modular

XML cho phép bạn tạo ra một khuôn dạng văn bản mới bằng cách kết hợp hay sử dụng lại các khuôn dạng có sẵn. Do 2 khuôn dạng được phát triển độc lập nên có thể xuất hiện những đặc tính và thuộc tính có tên trùng nhau. Vì vậy phải thận trọng khi kết hợp những khuôn dạng này với nhau (nghĩa là "

" có thể là "paragraph" trong khuôn dạng này nhưng lại là "person" trong khuôn dạng kia. Để tránh nhầm lẫn tên khi kết hợp các khuôn dạng với nhau, XML cung cấp cơ chế namespace. XSL và RDF là những ví dụ điển hình của định dạng XML có sử dụng namespace. XML Schema được thiết kế để mirror hỗ trợ ráp modun ở mức tạo cấu trúc văn bản XML, bằng cách tạo điều kiện dễ dàng kết hợp 2 giản đồ để tạo ra cái thứ 3 có cấu trúc văn bản kết hợp.

9. XML là cơ sở của RDF và Semantic Web

Khung miêu tả tài nguyên của W3C (RDF) là một khuôn dạng văn bản XML hỗ trợ mô tả tài nguyên và các ứng dụng metadata, ví dụ như danh sách bản nhạc, bộ sưu tầm ảnh , sưu tầm thư mục. RDF cho phép bạn nhận diện người trong album ảnh web sử dụng thông tin từ danh sách liên lạc cá nhân; sau đó chương trình nhận gửi thư sẽ tự động gửi message đến những người này thông báo cho họ biết ảnh của họ đang ở trên mạng. Cũng như các văn bản tích hợp HTML, hệ thống menu, và ứng dụng forms dùng để bắt đầu các Web gốc, ứng dụng tích hợp RDF và các tác nhân trong Semantic Web. Cũng giống như người ta cần có sự thống nhất về ý nghĩa những từ họ sử dụng trong giao tiếp, các máy vi tính cần có cơ chế thống nhất về ý nghĩa các thuật ngữ để truyền đạt thông tin một cách hiệu quả. Định nghĩa chính thức các thuật ngữ trong một vài lĩnh vực (mua bán hay sản xuất)gọi là bản thể học rất cần thiết trong Web Semantic. RDF, bản thể học, và việc thể hiện ý nghĩa vì vậy các máy tính có thể giúp người ta tiến hành công việc của mình là toàn bộ nội dung hoạt động của Semantic Web.

10. XML được sử dụng miễn phí, có platform độc lập và được hỗ trợ rất tốt

Khi lựa chọn XML làm cơ sở để thực hiện một dự án, bạn có thể tiếp cận với rất nhiều các công cụ phát triển (một trong số đó đã có sẵn cái bạn cần!) và người kỹ sư công nghệ đã có kinh nghiệm trong lĩnh vực này. Lựa chọn XML có đôi chút giống với chọn SQL cho cơ sở dữ liệu: bạn vẫn phải xây dựng cơ sở dữ liệu cho mình và các chương trình riêng cũng như phải có những qui tắc để thao tác nó. Có rất nhiều công cụ có sẵn và bạn cũng có thể dễ dàng nhận được sự giúp đỡ của nhiều người. Và vì XML không cần phải mua bản quyền mới sử dụng được nên bạn có thể tạo cho mình một phần mềm riêng mà không phải trả một khoản chi phí nào hết. Hỗ trợ mà lớn chứng tỏ rằng bạn không có liên quan gì đến một vendor nào hết. XML không phải lúc nào cũng là giải pháp tốt nhất, nhưng nó luôn xứng đáng để người ta phải xem xét

Thứ Sáu, 9 tháng 11, 2007

PHÂN LOẠI TẤN CÔNG KIỂU DDOS

Nhìn chung, có rất nhiều biến thể của kỹ thuật tấn công DDoS nhưng nếu nhìn dưới góc độ chuyên môn thì có thể chia các biến thề này thành hai loại dựa trên mụch đích tấn công: Làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống. Dưới đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS. I/ Những kiểu tấn công làm cạn kiệt băng thông của mạng (BandWith Depletion Attack) BandWith Depletion Attack được thiết kế nhằm làm tràng ngập mạng mục tiêu với những traffic không cần thiết, với mục địch làm giảm tối thiểu khả năng của các traffic hợp lệ đến được hệ thống cung cấp dịch vụ của mục tiêu. Có hai loại BandWith Depletion Attack: + Flood attack: Điều khiển các Agent gởi một lượng lớn traffic đến hệ thống dịch vụ của mục tiêu, làm dịch vụ này bị hết khả năng về băng thông. + Amplification attack: Điều khiển các agent hay Client tự gửi message đến một địa chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửi message đến hệ thống dịch vụ của mục tiêu. Phương pháp này làm gia tăng traffic không cần thiết, làm suy giảm băng thông của mục tiêu. 1/ Flood attack: Trong phương pháp này, các Agent sẽ gửi một lượng lớn IP traffic làm hệ thống dịch vụ của mục tiêu bị chậm lại, hệ thống bị treo hay đạt đến trạng thái hoạt động bão hòa. Làm cho các User thực sự của hệ thống không sử dụng được dịch vụ. Ta có thể chia Flood Attack thành hai loại: + UDP Flood Attack: do tính chất connectionless của UDP, hệ thống nhận UDP message chỉ đơn giản nhận vào tất cả các packet mình cần phải xử lý. Một lượng lớn các UDP packet được gởi đến hệ thống dịch vụ của mục tiêu sẽ đẩy toàn bộ hệ thống đến ngưỡng tới hạn. + Các UDP packet này có thể được gửi đến nhiều port tùy ý hay chỉ duy nhất một port. Thông thường là sẽ gửi đến nhiều port làm cho hệ thống mục tiêu phải căng ra để xử lý phân hướng cho các packet này. Nếu port bị tấn công không sẵn sàng thì hệ thống mục tiêu sẽ gửi ra một ICMP packet loại “destination port unreachable”. Thông thường các Agent software sẽ dùng địa chỉ IP giả để che giấu hành tung, cho nên các message trả về do không có port xử lý sẽ dẫn đến một đại chỉ Ip khác. UDP Flood attack cũng có thể làm ảnh hưởng đến các kết nối xung quanh mục tiêu do sự hội tụ của packet diễn ra rất mạnh. + ICMP Flood Attack: được thiết kế nhằm mục đích quản lý mạng cũng như định vị thiết bị mạng. Khi các Agent gởi một lượng lớn ICMP_ECHO_REPLY đến hệ thống mục tiêu thì hệ thống này phải reply một lượng tương ứng Packet để trả lời, sẽ dẫn đến nghẽn đường truyền. Tương tự trường hợp trên, địa chỉ IP của cá Agent có thể bị giả mạo. 2/ Amplification Attack: Amplification Attack nhắm đến việc sử dụng các chức năng hỗ trợ địa chỉ IP broadcast của các router nhằm khuyếch đại và hồi chuyển cuộc tấn công. Chức năng này cho phép bên gửi chỉ định một địa chỉ IP broadcast cho toàn subnet bên nhận thay vì nhiều địa chỉ. Router sẽ có nhiệm vụ gửi đến tất cả địa chỉ IP trong subnet đó packet broadcast mà nó nhận được. Attacker có thể gửi broadcast message trực tiếp hay thông qua một số Agent nhằm làm gia tăng cường độ của cuộc tấn công. Nếu attacker trực tiếp gửi message, thì có thể lợi dụng các hệ thống bên trong broadcast network như một Agent. Có thể chia amplification attack thành hai loại, Smuft va Fraggle attack: + Smuft attack: trong kiểu tấn công này attacker gởi packet đến network amplifier (router hay thiết bị mạng khác hỗ trợ broadcast), với địa chỉ của nạn nhân. Thông thường những packet được dùng là ICMP ECHO REQUEST, các packet này yêu cầu yêu cầu bên nhận phải trả lời bằng một ICMP ECHO REPLY packet. Network amplifier sẽ gửi đến ICMP ECHO REQUEST packet đến tất cả các hệ thống thuộc địa chỉ broadcast và tất cả các hệ thống này sẽ REPLY packet về địa chỉ IP của mục tiêu tấn công Smuft Attack. + Fraggle Attack: tương tự như Smuft attack nhưng thay vì dùng ICMP ECHO REQUEST packet thì sẽ dùng UDP ECHO packet gởi đếm mục tiêu. Thật ra còn một biến thể khác của Fraggle attack sẽ gửi đến UDP ECHO packet đến chargen port (port 19/UNIX) của mục tiêu, với địa chỉ bên gửi là echo port (port 7/UNIX) của mục tiêu, tạo nên một vòng lặp vô hạn. Attacker phát động cuộc tấn công bằng một ECHO REQUEST với địa chỉ bên nhận là một địa chỉ broadcast, toàn bộ hệ thống thuộc địa chỉ này lập tức gửi REPLY đến port echo của nạn nhân, sau đó từ nạn nhân một ECHO REPLY lại gửi trở về địa chỉ broadcast, quá trình cứ thế tiếp diễn. Đây chính là nguyên nhân Flaggle Attack nguy hiểm hơn Smuft Attack rất nhiều. II/ Những kiểu tấn công làm cạn kiệt tài nguyên: (Resource Deleption Attack) Theo định nghĩa: Resource Deleption Attack là kiểu tấn công trong đó Attacker gởi những packet dùng các protocol sai chức năng thiết kế, hay gửi những packet với dụng ý làm tắt nghẽn tài nguyên mạng làm cho các tài nguyên này không phục vụ user thông thường khác được. 1/ Protocol Exploit Attack: + TCP SYS Attack: Transfer Control Protocol hỗ trợ truyền nhận với độ tin cậy cao nên sử dụng phương thức bắt tay giữa bên gởi và bên nhận trước khi truyền dữ liệu. Bước đầu tiên, bên gửi gởi một SYN REQUEST packet (Synchronize). Bên nhận nếu nhận được SYN REQUEST sẽ trả lời bằng SYN/ACK REPLY packet. Bước cuối cùng, bên gửi sẽ truyên packet cuối cùng ACK và bắt đầu truyền dữ liệu. Nắm được điểm yếu này, attacker gởi một SYN packet đến nạn nhân với địa chỉ bên gởi là giả mạo, kết quả là nạn nhân gởi SYN/ACK REPLY đến một địa chỉ khá và sẽ không bao giờ nhận được ACK packet cuối cùng, cho đến hết thời gian timeout nạn nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống. Tuy nhiên, nếu lượng SYN packet giả mạo đến với số lượng nhiều và dồn dập, hệ thống của nạn nhân có thể bị hết tài nguyên. + PUSH = ACK Attack: Trong TCP protocol, các packet được chứa trong buffer, khi buffer đầy thì các packet này sẽ được chuyển đến nơi cần thiết. Tuy nhiên, bên gởi có thể yêu cầu hệ thống unload buffer trước khi buffer đầy bằng cách gởi một packet với PUSH và ACK mang giá trị là 1. Những packet này làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong TCP buffer ngay lập tức và gửi một ACK packet trở về khi thực hiện xong điều này, nếu quá trình được diễn ra liên tục với nhiều Agent, hệ thống sẽ không thể xử lý được lượng lớn packet gửi đến và sẽ bị treo. 2/ Malformed Packet Attack: Malformed Packet Attack là cách tấn công dùng các Agent để gởi các packet có cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân bị treo. Có hai loại Malformed Packet Attack: + IP address attack: dùng packet có địa chỉ gởi và nhận giống nhau làm cho hệ điều hành của nạn nhân không xử lý nổi và bị treo. + IP packet options attack ngẫu nhiên hóa vùng OPTION trong IP packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ thống của nạn nhân phải tốn thời gian phân tích, nếu sử dụng số lượng lớn Agent có thể làm hệ thống nạn nhân hết khả năng xử lý. 3/ Một số đặc tính của công cụ DdoS attack: Có rất nhiều điểm chung về mặt software của các công cụ DDoS attack. Có thể kể ra một số điểm chung như: cách cài Agent software, phương pháp giao tiếp giữa các attacker, handler và Agent, điểm chung về loại hệ điều hành hỗ trợ các công cụ này. Sơ đồ trên mô tả sự so sánh tương quan giữa các công cụ tấn công DDoS này. 3.1/ Cách thức cài đặt DDoS Agent: Attacker có thể dùng phương pháp active và passive để cài đặt agent software lên các máy khác nhằm thiết lập attack-network kiểu Agent-Handler hay IRC-based. - Cách cài đặt Active: + Scaning: dùng các công cụ như Nmap, Nessus để tìm những sơ hở trên các hệ thống đang online nhằm cài đặt Agentsoftware. Chú ý, Nmap sẽ trả về những thông tin về một hệ thống đã được chỉ định bằng địa chỉ IP, Nessus tìm kiếm từ những địa chỉ IP bất kỳ về một điểm yếu biết trước nào đó. + Backdoor: sau khi tìm thấy được danh sách các hệ thống có thể lợi dụng, attacker sẽ tiến hành xâm nhập và cài Agentsoftware lên các hệ thống này. Có rất nhiều thông tin sẵn có về cách thức xâm nhập trên mạng, như site của tổ chức Common Vulnerabilities and Exposures (CVE), ở đây liệt kê và phân loại trên 4.000 loại lỗi của tất cả các hệ thống hiện có. Thông tin này luôn sẵn sàng cho cả giới quản trị mạng lẫn hacker. + Trojan: là một chương trình thực hiện một chức năng thông thường nào đó, nhưng lại có một số chức năng tiềm ẩn phục vụ cho mục đích riêng của người viết mà người dùng không thể biết được. Có thể dùng trojan như một Agent software. + buffer Overflow: tận dụng lỗi buffer overflow, attacker có thể làm cho chu trình thực thi chương trình thông thường bị chuyển sang chu trình thực thi chương trình của hacker (nằm trong vùng dữ liệu ghi đè). Có thể dùng cách này để tấn công vào một chương trình có điểm yếu buffer overflow để chạy chương trình Agent software. - Cách cài đặt passive: + Bug Website: attacker có thể lợi dụng một số lỗi của web brower để cài Agent software vào máy của user truy cập. Attaker sẽ tạo một website mang nội dung tiềm ẩn những code và lệnh để đặt bẫy user. Khi user truy cập nội dung của website, thì website download và cài đặt Agent software một cách bí mật. Microsoft Internet Explorer web browser thường là mục tiêu của cách cài đặt này, với các lỗi của ActiveX có thể cho phép IE brower tự động download và cài đặt code trên máy của user duyệt web. + Corrupted file: một phương pháp khác là nhúng code vào trong các file thông thường. Khi user đọc hay thực thi các file này, máy của họ lập tức bị nhiễm Agent software. Một trong những kỹ thuật phổ biến là đặt tên file rất dài, do default của các hệ điều hành chỉ hiển thị phần đầu của tên file nên attacker có thể gửi kèm theo email cho nạn nhân file như sau: iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, do chỉ thấy phần “Iloveyou.txt” hiển thị nên user sẽ mở file này để đọc và lập tức file này được thực thi và Agent code được cài vào máy nạn nhân. Ngoài ra còn nhiều cách khác như ngụy trang file, ghép file… - Rootkit: là những chương trình dùng để xóa dấu vết về sự hiện diện của Agent hay Handler trên máy của nạn nhân. Rootkit thường được dùng trên Hander software đã được cài, đóng vai trò xung yếu cho sự hoạt động của attack-network hay trên các môi trường mà khả năng bị phát hiện của Handler là rất cao. Rootkit rất ít khi dùng trên các Agent do mức độ quan trọng của Agent không cao và nếu có mất một số Agent cũng không ảnh hưởng nhiều đến attack-network. 3.2/ Giao tiếp trên Attack-Network: - Protocol: giao tiếp trên attack-network có thể thực hiện trên nền các protocol TCP, UDP, ICMP. - Mã hóa các giao tiếp: một vài công cụ DDoS hỗ trợ mã hóa giao tiếp trên toàn bộ attack-network. Tùy theo protocol được sử dụng để giao tiếp sẽ có các phương pháp mã hóa thích hợp. Nếu attack-network ở dạng IRC-based thì private và secrect channel đã hỗ trợ mã hóa giao tiếp. - Cách kích hoạt Agent: có hai phương pháp chủ yếu để kích hoạt Agent. Cách thứ nhất là Agent sẽ thường xuyên quét thăm dó Handler hay IRC channel để nhận chỉ thị (active Agent). Cách thứ hai là Agent chỉ đơn giản là “nằm vùng” chờ chỉ thị từ Handler hay IRC Channel. 3.3/ Các nền tảng hỗ trợ Agent: Cá công cụ DDoS thông thường được thiết kế hoạt động tương thích với nhiều hệ điều hành khác nhau như: Unix, Linux, Solaris hay Windows. Các thành phần của attack-network có thể vận hành trên các môi trường hệ điều hành khác nhau. Thông thường Handler sẽ vận hành trên các hệ chạy trên các server lớn như Unix, Linux hay Solaris. Agent thông thường chạy trên hệ điều hành phổ biến nhất là windows do cần số lượng lớn dễ khai thác. 3.4/ Các chức năng của công cụ DDoS: Mỗi công cụ DDoS có một tập lệnh riêng, tập lệnh này được Handler và Agent thực hiện. Tuy nhiên ta có thể phân loại tổng quát tập lệnh chung của mọi công cụ như sau:
TẬP LỆNH CỦA HANDLER
Lệnh Mô tả
Log On Nhằm dùng để logon vào Handler software (user + password)
Turn On Kích hoạt Handler sẵn sàng nhận lệnh
Log Off Nhằm dùng để Logoff ra khỏi Handler software
Turn Off Chỉ dẫn Handler ngưng hoạt động, nếu Handler đang quét tìm Agent thì dừng ngay hành vi này
Initiate Attack Ra lệnh cho Handler hướng dẫn mọi Agent trực thuộc tấn công mục tiêu đã định
List Agents Yên cầu Handler liệt kê các Agent trực thuộc
Kiss Agents Loại bỏ một Agent ra khỏi hàng ngũ Attack-Network
Add victim Thêm một mục tiêu để tấn công
Download Upgrades Cập nhật cho Handler software (downloads file.exe về và thực thi)
Set Spoofing Kích hoạt và thiết lập cơ chế giả mạo địa chỉ IP cho các Agent
Set Attack Time Định thời điểm tấn công cho các Agent
Set Attack Duration Thông báo độ dài của cuộc tấn công vào mục tiêu
BufferSize Thiết lập kích thước buffer của Agent (nhằm gia tăng sức mạnh cho Agent)
Help Hướng dẫn sử dụng chương trình
TẬP LỆNH của AGENT
Turn On Kich hoat Agent sẵn sàng nhận lệnh
Turn Off Chỉ dẫn Agent ngưng hoạt động, nếu Agent đang quét tìm Handler/IRC Channel thì dừng ngay hành vi này lại
Initiate Attacke Ra lệnh Agent tấn công mục tiêu đã định
Download Upgrades Cập nhật cho Agent software (downloaf file .exe về và thực thi)
Set Spoofing Thiết lập cơ chế giả mạo địa chỉ IP cho các Agent hoạt động
Set Attack Duration Thông báo độ dài các cuộc tấn công vào mục tiêu
Set Packet Size Thiết lập kích thước của attack packet
Help Hướng dẫn sử dụng chương trình
4/ Một số công cụ DDoS: Dựa trên nền tảng chung của phần trên, đã có nhiều công cụ được viết ra, thông thường các công cụ này là mã nguồn mở nên mức độ phức tạp ngày càng cao và có nhiều biến thể mới lạ. 4.1. Công cụ DDoS dạng Agent – Handler: - TrinOO: là một trong các công cụ DDoS đầu tiên được phát tán rộng rãi. TrinOO có kiến trúc Agent – Handler, là công cụ DDoS kiểu Bandwidth Depletion Attack, sử dụng kỹ thuật UDP Flood. Các version đầu tiên của TrinOO không hỗ trợ giả mạo địa chỉ IP. TrinOO Agent được cài đặt lợi dụng lỗi remote buffer overrun. Hoạt động trên hệ điều hành Solaris 2.5.1 à Red Hat Linux 6.0. Attack – network giao tiếp dùng TCP (attacker client và handler) và UDP (Handler và Agent). Mã hóa giao tiếp dùng phương pháp mã hóa đối xứng giữa Client, handler và Agent. - Tribe Flood Network (TFN): Kiểu kiến trúc Agent – Handler, công cụ DDoS hoễ trợ kiểu Bandwidth Deleption Attack và Resourse Deleption Attack. Sử dụng kỹ thuật UDP Flood, ICMP Flood, TCP SYN và Smurf Attack. Các version đầu tiên không hỗ trợ giả mạo địa chỉ IP, TFN Agent được cài đặt lợi dụng lỗi buffer overflow. Hoạt động trên hệ điều hành Solaris 2.x và Red Hat Linux 6.0. Attack – Network giao tiếp dùng ICMP ECHO REPLY packet (TFN2K hỗ trợ thêm TCP/UDP với tính năng chọn protocol tùy ý), không mã hóa giao tiếp (TFN2K hỗ trợ mã hóa) - Stacheldraht: là biến thể của TFN có thêm khả năng updat Agent tự động. Giao tiếp telnet mã hóa đối xứng giữa Attacker và Handler. - Shaft: là biến thể của TrinOO, giao tiếp Handler – Agent trên UDP, Attacker – Hendle trên Internet. Tấn công dùng kỹ thuật UDP, ICMP và TCP Flood. Có thể tấn công phối hợp nhiều kiểu cùng lúc. Có thống kê chi tiết cho phép attacker biết tình trạng tổn thất của nạn nhân, mức độ quy mô của cuộc tấn công để điều chỉnh số lượng Agent. 4.2. Công cụ DDoS dạng IRC – Based: Công cụ DDoS dạng IRC-based được phát triển sau các công cụ dạng Agent – Handler. Tuy nhiên, công cụ DDoS dạng IRC phức tạp hơn rất nhiều, do tích hợp rất nhiều đặc tính của các công cụ DDoS dạng Agent – Handler. - Trinity: là một điển hình của công cụ dạng này. Trinity có hầu hết các kỹ thuật tấn công bao gồm: UDP, TCP SYS, TCP ACK, TCP fragment, TCP NULL, TCP RST, TCP random flag, TCP ESTABLISHED packet Flood. Nó có sẵn khả năng ngẫu nhiên hóa địa chỉ bên gởi. Trinity cũng hỗ trợ TCP Flood packet với khả năng ngẫu nhân tập CONTROL FLAG. Trinity có thể nói là một trong số các công cụ DDoS nguy hiểm nhất. - Ngoài ra có thể nhắc thêm về một số công cụ DDoS khác như Knight, được thiết kế chạy trên Windows, sử dụng kỹ thuật cài đặt của troijan back Orifice. Knight dùng các kỹ thuật tấn công như SYV, UDP Flood và Urgent Pointer Flooder. - Sau cùng là Kaiten, là biến thể của Knight, hỗ trợ rất nhiều kỹ thuật tấn công như: UDP, TCP Flood, SYN, PUSH + ACK attack. Kaiten cũng thừa hưởng khả năng ngẫu nhiên hóa địa chỉ giả mạo của Trinity.

Tìm hiểu về tấn công từ chối dịch vụ DoS

Tấn công bằng từ chối dịch vụ DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một dịch vụ nào đó. Nó bao gồm làm tràn ngập mạng, mất kết nối với dịch vụ… mà mục đích cuối cùng là máy chủ (Server) không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các máy trạm (Client).

DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất lớn. Về bản chất thực sự của DoS, kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ từ các client khác.

Các cách thức tấn công DoS

Phá hoại dựa trên tính giới hạn hoặc không thể phục hồi của tài nguyên mạng

1. Thông qua kết nối

Tấn công kiểu SYN flood

Lợi dụng cách thức hoạt động của kết nối TCP/IP, hacker bắt đầu quá trình thiết lập một kết nối TPC/IP tới mục tiêu muốn tấn công mà không gửi trả gói tin ACK, khiến cho mục tiêu luôn rơi vào trạng thái chờ (đợi gói tin ACK từ phía yêu cầu thiết lập kết nối) và liên tục gửi gói tin SYN ACK để thiết lập kết nối. Một cách khác là giả mạo địa chỉ IP nguồn của gói tin yêu cầu thiết lập kết nối SYN và cũng như trường hợp trên, máy tính đích cũng rơi vào trạng thái chờ vì các gói tin SYN ACK không thể đi đến đích do địa chỉ IP nguồn là không có thật. Kiểu tấn công SYN flood được các hacker áp dụng để tấn công một hệ thống mạng có băng thông lớn hơn hệ thống của hacker.

Soạn: AM 667497 gửi đến 996 để nhận ảnh này

Kiểu tấn công SYN flood

2. Lợi dụng nguồn tài nguyên của chính nạn nhân để tấn công

Kiểu tấn công Land Attack

Kiểu tấn công Land Attack cũng tương tự như SYN flood, nhưng hacker sử dụng chính IP của mục tiêu cần tấn công để dùng làm địa chỉ IP nguồn trong gói tin, đẩy mục tiêu vào một vòng lặp vô tận khi cố gắng thiết lập kết nối với chính nó.

Kiểu tấn công UDP flood

Hacker gửi gói tin UDP echo với địa chỉ IP nguồn là cổng loopback của chính mục tiêu cần tấn công hoặc của một máy tính trong cùng mạng. Với mục tiêu sử dụng cổng UDP echo (port 7) để thiết lập việc gửi và nhận các gói tin echo trên 2 máy tính (hoặc giữa mục tiêu với chính nó nếu mục tiêu có cấu hình cổng loopback), khiến cho 2 máy tính này dần dần sử dụng hết băng thông của chúng, và cản trở hoạt động chia sẻ tài nguyên mạng của các máy tính khác trong mạng.

3.Sử dụng băng thông

Tấn công kiểu DDoS (Distributed Denial of Service)

Đây là cách thức tấn công rất nguy hiểm. Hacker xâm nhập vào các hệ thống máy tính, cài đặt các chương trình điều khiển từ xa, và sẽ kích hoạt đồng thời các chương trình này vào cùng một thời điểm để đồng loạt tấn công vào một mục tiêu. Với DDoS, các hacker có thể huy động tới hàng trăm thậm chí hàng ngàn máy tính cùng tham gia tấn công cùng một thời điểm (tùy vào sự chuẩn bị trước đó của hacker) và có thể "ngốn" hết băng thông của mục tiêu trong nháy mắt.

Soạn: AM 667499 gửi đến 996 để nhận ảnh này

Kiểu tấn công DDoS

4.Sử dụng các nguồn tài nguyên khác

Kẻ tấn công lợi dụng các nguồn tài nguyên mà nạn nhân cần sử dụng để tấn công. Những kẻ tấn công có thể thay đổi dữ liệu và tự sao chép dữ liệu mà nạn nhân cần lên nhiều lần, làm CPU bị quá tải và các quá trình xử lý dữ liệu bị đình trệ.

Tấn công kiểu Smurf Attack

Kiểu tấn công này cần một hệ thống rất quan trọng, đó là mạng khuyếch đại. Hacker dùng địa chỉ của máy tính cần tấn công bằng cách gửi gói tin ICMP echo cho toàn bộ mạng (broadcast). Các máy tính trong mạng sẽ đồng loạt gửi gói tin ICMP reply cho máy tính mà hacker muốn tấn công. Kết quả là máy tính này sẽ không thể xử lý kịp thời một lượng lớn thông tin và dẫn tới bị treo máy.

Soạn: AM 667503 gửi đến 996 để nhận ảnh này

Kiểu tấn công Smurf Attack

Tấn công kiểu Tear Drop

Trong mạng chuyển mạch gói, dữ liệu được chia thành nhiều gói tin nhỏ, mỗi gói tin có một giá trị offset riêng và có thể truyền đi theo nhiều con đường khác nhau để tới đích. Tại đích, nhờ vào giá trị offset của từng gói tin mà dữ liệu lại được kết hợp lại như ban đầu. Lợi dụng điều này, hacker có thể tạo ra nhiều gói tin có giá trị offset trùng lặp nhau gửi đến mục tiêu muốn tấn công. Kết quả là máy tính đích không thể sắp xếp được những gói tin này và dẫn tới bị treo máy vì bị "vắt kiệt" khả năng xử lý.

Phá hoại hoặc chỉnh sửa thông tin cấu hình

Lợi dụng việc cấu hình thiếu an toàn như việc không xác thực thông tin trong việc gửi/nhận bản tin cập nhật (update) của router... mà kẻ tấn công sẽ thay đổi trực tiếp hoặc từ xa các thông tin quan trọng này, khiến cho những người dùng hợp pháp không thể sử dụng dịch vụ.

Ví dụ: hacker có thể xâm nhập vào DNS để thay đổi thông tin, dẫn đến quá trình biên dịch tên miền (domain) sang địa chỉ IP của DNS bị sai lệch. Hậu quả là các yêu cầu của máy trạm (Client) sẽ tới một tên miền khác (đã bị thay đổi) thay vì tên miền mong muốn.

Phá hoại hoặc chỉnh sửa phần cứng

Lợi dụng quyền hạn của chính bản thân kẻ tấn công đối với các thiết bị trong hệ thống mạng để tiếp cận phá hoại các thiết bị phần cứng như router, switch…

Các cách phòng chống

Hậu quả mà DoS gây ra không chỉ tiêu tốn nhiều tiền bạc, và công sức mà còn mất rất nhiều thời gian để khắc phục. Vì vậy, hãy sử dụng các biện pháp sau để phòng chống DoS:

  • Mô hình hệ thống cần phải được xây dựng hợp lý, tránh phụ thuộc lẫn nhau quá mức. Bởi khi một bộ phận gặp sự cố sẽ làm ảnh hưởng tới toàn bộ hệ thống.
  • Thiết lập mật khẩu mạnh (strong password) để bảo vệ các thiết bị mạng và các nguồn tài nguyên quan trọng khác.
  • Thiết lập các mức xác thực đối với người sử dụng cũng như các nguồn tin trên mạng. Đặc biệt, nên thiết lập chế độ xác thực khi cập nhật các thông tin định tuyến giữa các router.
  • Xây dựng hệ thống lọc thông tin trên router, firewall… và hệ thống bảo vệ chống lại SYN flood.
  • Chỉ kích hoạt các dịch vụ cần thiết, tạm thời vô hiệu hoá và dừng các dịch vụ chưa có yêu cầu hoặc không sử dụng.
  • Xây dựng hệ thống định mức, giới hạn cho người sử dụng, nhằm mục đích ngăn ngừa trường hợp người sử dụng ác ý muốn lợi dụng các tài nguyên trên server để tấn công chính server hoặc mạng và server khác.
  • Liên tục cập nhật, nghiên cứu, kiểm tra để phát hiện các lỗ hổng bảo mật và có biện pháp khắc phục kịp thời.
  • Sử dụng các biện pháp kiểm tra hoạt động của hệ thống một cách liên tục để phát hiện ngay những hành động bất bình thường.
  • Xây dựng và triển khai hệ thống dự phòng.

Thứ Ba, 6 tháng 11, 2007

Hướng dẫn cài đặt Ghost Cast Server với Norton Ghost 2003

Chúng ta đã qúa quen với "Ghost", một công cụ rất hữu dụng cho một người chuyên viên kỹ thuật vi tính. Ghost giúp chúng ta tiết kiệm rất nhiều thời gian trong việc cài đặt chương trình cho máy vi tính. Nếu như lúc trước để cài đặt một máy vi tính có thể mất 1h đến 2h hoặc hơn thì bây giờ với ghost chúng ta chỉ mất khoảng 10 -20 phút mà thôi.

Đúng là ghost là quá thông dụng cũng như cách sử dụng cũng rất đơn giản, hoàn toàn không có gì mới cả. Trong baì viết này tôi chỉ đề cập đến cái gọi là "ghost cast server", có nghĩa là bạn chỉ cần một máy đóng vai trò máy chủ, trên máy này chỉ lưu các file ghost image mà thôi, các client có thể boot bằng đĩa mềm hoặc là boot bằng bootrom để có thể khởi động rôì đăng nhập vào các thư mục được share từ máy chủ, sau đó có thể tiến hành ghost như bình thường.

Ví dụ bạn là chủ 1 dịch vụ internet hay là game, hoặc là chuyên viên kỹ thuật cho một công ty tin học, công việc cài đặt máy mới hay là caì lại máy bị hỏng phần mềm là công việc thường xuyên, thông thường bạn phải gắn 1 ổ cứng khác rồi boot bằng ổ cứng đó hoặc boot bằng đĩa mềm, cdrom sau đó mới tiến hành ghost từ ổ cứng đó sang cho ổ cứng của máy, nhược điểm của phương pháp này là bạn luôn luôn phải có một ổ cứng để dùng làm source để ghost cho các máy khác, hoặc nếu không thì cũng phải mở máy khác để mượn ổ cứng. Nếu ở các dịch vụ game hay internet thì công việc càng "khổ " hơn nhiều, máy vi tính thì để tận dụng không gian người ta bố trí sát vào nhau nên mỗi khi chúng ta phải mở máy rất khó khăn, chưa kể là nếu máy không có ổ CDRom thì phải gắn thêm ổ CDRom ngoài vào để boot.

Bây giờ ở các dịch vụ thì máy nào cũng đã có card mạng (NIC), bạn chỉ cần tốn khoảng 1.5USD để mua thêm con bootrom gắn vào (hoặc là máy secondhand như Dell, IBM thông thường đã có sẵn NIC+bootrom) là có thể boot từ bootrom để ghost thoải mái, lúc đó các ổ CDRom hay ổ đĩa mềm sẽ không cần thiết. Chưa kể là việc ghost hoàn toàn là chỉ gõ bàn phím chứ không cần phải mở máy ra. Nếu như máy chủ của bạn có ổ cứng lớn thì có thể lưu image của các máy con trong mạng để sau này có sự cố có thể ghost lại đúng image đó, như vậy các máy con sau khi ghost có thể hoạt động mà không cần phải điều chỉnh gì cả.

--------------------------------

1. Cài đặt phần mềm Norton Ghost 2003 (NG2003).

Để làm ghost cast server thì người ta hay dùng phiên bản Enterprise như Norton Ghost 6.5, 7.5, hoặc mới nhất 8.0.... tuy nhiên tôi không có các phiên bản đó mà lại có bản thông dụng là Norton Ghost 2003 và thấy nó cũng dễ sử dụng nên trong bài viết này hoàn toàn dựa trên nó. Norton Ghost 2003 có thể chạy trên Windows9x, Win2K, WinXP... Các bạn nhớ cho rằng nó chỉ là một công cụ để backkup ổ cứng và trong trường hợp của chúng ta sử dụng nó để tạo các điã mềm boot mạng mà thôi chứ nó hoàn toàn không là một dịch vụ nào của Windows cả, có nghĩa là sau khi đã tạo một đĩa mềm boot và ghost qua mạng được bạn có thể remove NG2003 mà các client vẫn boot và đăng nhập vào máy chủ tốt.

Ở đây chúng ta dùng khái niệm máy chủ nghe có vẻ hơi lớn, thật ra chỉ là một máy chạy Win9x, 2k hoặc XP, 2K3, trên máy này sẽ cài NG2003 và các file image sẽ lưu trên maý này.

1-1. Cài đặt NG2003.

Tiến hành cài đặt như một software bình thường.

1-2 Tạo đĩa boot:

Trước hết trên máy chủ chúng ta tạo thư mục dùng lưu các file image

VD: tên máy chủ là SERVER, thư mục dùng lưu image là C:\LUUGHOST hoặc D:\LUUGHOST

- Khởi động NG2003, sẽ có màn hình sau xuất hiện

Click chọn vào Ghost Utilities

Click chọn tiếp vào Norton Ghost Boot Wizard

Click chọn vào Drive Mapping Boot Disk rồi Next

Allway Sync 5.5.8 - Đồng bộ dữ liệu quá dễ dàng

Sao lưu dữ liệu là một công việc cực kỳ quan trọng trong công tác quản lý, lưu trữ dữ liệu. Từ dữ liệu được sao lưu, bạn có thể dễ dàng phục hồi lại nếu chẳng may dữ liệu nguồn bị mất. Để thực hiện công việc này, bạn phải cần phải có một chương trình hỗ trợ, vì nếu với số lượng dữ liệu lớn mà bạn thực hiện sao chép như thông thường thì sẽ mất nhiều thời gian và công sức. Để thực hiện công việc này thì có lẽ không có chương trình nào dễ dàng và nhanh chóng như Allway Sync. Chương trình có hai ưu điểm chính là giao diện rất dễ dùng và tốc độ đồng bộ cực kỳ nhanh. Sau khi cài đặt, bạn chạy chương trình từ desktop bằng cách bấm kép biểu tượng Allway Sync. Để đồng bộ dữ liệu, bạn thực hiện như sau: 1- Chọn thư mục nguồn cần sao lưu hoặc đồng bộ ở hộp văn bản phía trên bên trái (bạn có thể bấm nút Browse để chọn, nút View để mở thư mục đó trong Windows Explorer để xem lại). 2- Chọn thư mục đích cần lưu toàn bộ thư mục nguồn hoặc đồng bộ trong hộp văn bản bên phải. Nếu thư mục cuối chưa được tạo, chương trình sẽ tự động tạo dùm bạn. Kế tiếp nhấn Enter. 3- Bấm vào hình mũi tên ở giữa hai hộp văn bản để chọn hướng sao lưu hoặc đồng bộ. Chương trình sẽ hiện ra một hộp để bạn chọn, chọn nút bên trái để đồng bộ từ nguồn sang đích, chọn nút bên phải để đồng bộ từ đích qua nguồn, chọn nút có mũi tên hai đầu để đồng bộ đều cả hai nguồn và đích. Sau khi chọn hướng xong, bạn đưa chuột ra ngoài hộp để chấp nhận. 4- Để xem trước các thư mục đồng bộ như thế nào, bạn bấm nút Analyze, để bắt đầu đồng bộ thì bấm nút Synchronize. Trong thời gian chương trình đang đồng bộ, bạn có thể bấm nút Stop để dừng. Sau khi đồng bộ xong, bạn có thể bấm nút Clear để xoá kết quả đồng bộ hiện tại. * Những chức năng nâng cao: - Tạo nhiều công việc đồng bộ: mặc định chương trình chỉ thực hiện một công việc đồng bộ (thẻ New Job 1). Ngoài ra, bạn có thể thực hiện thêm nhiều công việc đồng bộ khác bằng cách tạo thêm thẻ, bấm menu Job, chọn Add New Job và thêm các thư mục cần đồng bộ cho thẻ mới. Nếu muốn bỏ thẻ nào, bạn bấm phải chuột vào tên thẻ đó và chọn Delete Job. Nếu bạn muốn đổi tên các công việc đồng bộ cho dễ nhớ thì hãy bấm chuột phải vào thẻ của nó, chọn Rename Job. - Đồng bộ cùng lúc nhiều thư mục: cũng theo mặc định ban đầu, chương trình cho phép đồng bộ giữa hai thư mục (nguồn và đích). Nhưng bạn có thể đồng bộ thêm cho nhiều thư mục đích (1 nguồn nhiều đích) bằng cách vào menu Job, Advanced, chọn Add Sync Folder. Ngược lại, nếu bạn cần bỏ bớt thư mục đồng bộ thì bấm lại menu Job, Advanced, chọn Remove Sync Folder và chọn thư mục cần bỏ. - Đồng bộ cùng lúc nhiều công việc: sau khi bạn thiết lập nhiều công việc, thay vì chuyển qua từng công việc để đồng bộ, bạn có thể cho đồng bộ cùng lúc nhiều công việc bằng cách bấm menu File, chọn Analyze All hoặc Synchronize All. Chương trình hoàn toàn miễn phí, phiên bản mới 5.5.8 được cung cấp tại địa chỉ http://allwaysync.com/download/allwaysync-5-5-8.exe, dung lượng 2,27 MB, tương thích mọi Windows.

Chủ Nhật, 4 tháng 11, 2007

Công nghệ ADSL

  • Tổng quan về ADSL
  • Cơ chế hoạt động với ADSL
  • Các thành phần của ADSL
  • Kết nối mạng ADSL
  • Cấu trúc của ADSL
  • Mối tương quan giữa điện thoại và ADSL

Tổng quan về ADSL

ADSL là gì ? Hiểu một cách đơn giản nhất, ADSL là sự thay thế với tốc độ cao cho thiết bị Modem hoặc ISDN giúp truy nhập Internet với tốc độ cao và nhanh hơn. Các biểu đồ sau chỉ ra các tốc độ cao nhất có thể đạt được giữa các dịch vụ cung cấp

ADSL có nghĩa ntn?

ADSL viết tắt của Asymmetric Digital Subscriber Line-đó là đường thuê bao số không đối xứng, kỹ thuật truyền được sử dụng trên đường dây từ Modem của thuê bao tới Nhà cung cấp dịch vụ.

Asymmetric: Tốc độ truyền không giống nhau ở hai chiều. Tốc độ của chiều xuống (từ mạng tới thuê bao) có thể nhanh gấp hơn 10 lần so với tốc độ của chiều lên (từ thuê bao tới mạng). Ðiều này phù hợp một cách tuyệt vời cho việc khai thác dịch vụ Internet khi mà chỉ cần nhấn chuột (tương ứng với lưu lượng nhỏ thông tin mà thuê bao gửi đi) là có thể nhận được một lưu lượng lớn dữ liệu tải về từ Internet.

Digital: Các Modem ADSL hoạt động ở mức bít (0 & 1) và dùng để chuyển thông tin số hoá giữa các thiết bị số như các máy tính PC. Chính ở khía cạnh này thì ADSL không có gì khác với các Modem thông thường.

Subscriber Line: ADSL tự nó chỉ hoạt động trên đường dây thuê bao bình thường nối tới tổng đài nội hạt. Ðường dây thuê bao này vẫn có thể được tiếp tục sử dụng cho các cuộc gọi đi hoặc nghe điện thoại cùng một thời điểm thông qua thiết bị gọi là "Splitters" có chức năng tách thoại và dữ liệu trên đường dây.

ADSL dùng để làm gì ?

ADSL xác lập cách thức dữ liệu được truyền giữa thuê bao (nhà riêng hoặc công sở) và tổng đài thoại nội hạt trên chính đường dây điện thoại bình thường. Chúng ta vẫn thường gọi các đường dây này là local loop.

Thực chất của ứng dụng ADSL không phải ở việc truyền dữ liệu đi/đến tổng đài điện thoại nội hạt mà là tạo ra khả năng truy nhập Internet với tốc độ cao. Như vậy, vấn đề nằm ở việc xác lập kết nối dữ liệu tới Nhà cung cấp dịch vụ Internet. Mặc dù chúng ta cho rằng ADSL được sử dụng để truyền dữ liệu bằng các giao thức Internet, nhưng trên thực tế việc thực hiện điều đó như thế nào lại không phải là đặc trưng kỹ thuật của ADSL. Hiện nay, phần lớn người ta ứng dụng ADSL cho truy nhập Internet tốc độ cao và sử dụng các dịch vụ trên Internet một cách nhanh hơn.

Cơ chế hoạt động với ADSL

ADSL vận hành ra sao?

ADSL tìm cách khai thác phần băng thông tương tự còn chưa được sử dụng trên đường dây nối từ thuê bao tới tổng đài nội hạt. Ðường dây này được thiết kế để chuyển tải dải phổ tần số (frequency spectrum) chiếm bởi cuộc thoại bình thường. Tuy nhiên, nó cũng có thể chuyển tải các tần số cao hơn dải phổ tương đối hạn chế dành cho thoại. Ðó là dải phổ mà ADSL sử dụng.

Thoại cơ bản sử dụng dải tần số từ 300Hz tới 3,400Hz.

Bây giờ chúng ta sẽ xem xét, thoại và dữ liệu ADSL chia xẻ cùng một đường dây thuê bao ra sao. Trên thực tế, các Splitter được sử dụng để đảm bảo dữ liệu và thoại không xâm phạm lẫn nhau trên đường truyền. Các tần số mà mạch vòng có thể chuyển tải, hay nói cách khác là khối lượng dữ liệu có thể chuyển tải sẽ phụ thuộc vào các nhân tố sau:

  • - Khoảng cách từ tổng đài nội hạt.

  • - Kiểu và độ dầy đường dây.

  • - Kiểu và số lượng các mối nối trên đường dây.

  • - Mật độ các đường dây chuyển tải ADSL, ISDN và các tín hiệu phi thoại khác.

  • - Mật độ các đường dây chuyển tải tín hiệu radio.

ƯU ĐIỂM CỦA ADSL

ADSL: So sánh với PSTN & ISDN

Vậy sự khác nhau cố hữu giữa ADSL với Modem quay số truyền thống và ISDN là như thế nào?

  • PSTN và ISDN là các công nghệ quay số (Dial-up).

  • ADSL là 'liên tục/always-on" kết nối trực tiếp.

  • PSTN và ISDN cho phép chúng ta sử dụng Fax, dữ liệu, thoại, dữ liệu tới Internet, dữ liệu tới các thiết bị khác.

  • ADSL chỉ chuyển tải dữ liệu tới Internet.

  • PSTN và ISDN cho phép chúng ta tuỳ chọn ISP nào mà ta muốn kết nối.

  • ADSL kết nối chúng ta tới một ISP định trước.

  • ISDN chạy ở tốc độ cơ sở 64kbps hoặc 128kbps.

  • ADSL có thể tải dữ liệu về với tốc độ tới 8Mbps.

  • PSTN ngắt truy nhập tới Internet khi chúng ta thực hiện cuộc gọi.

  • ADSL cho phép vừa sử dụng Internet trong khi vẫn có thể thực hiện cuộc gọi đồng thời.

  • Kết nối Internet qua đường PSTN và ISDN bằng phương thức quay số có tính cước nội hạt.

  • ADSL không tính cước nội hạt.

Ghi chú:

  • Mặc dù Modem ADSL luôn ở chế độ kết nối thường trực, nhưng vẫn có thể cần phải thực hiện lệnh kết nối Internet trên máy PC.

  • Các dịch vụ như Fax và thoại có thể được thực hiện cũng trên kết nối dữ liệu ADSL tới Internet.

  • Trên thực tế, tốc độ Download tiêu biểu đối với dịch vụ ADSL gia đình thường đạt tới (up to) 400kbps

  • Dùng bao nhiêu, trả bấy nhiêu. Cấu trúc cước theo lưu lượng sử dụng (Hoặc theo thời gian sử dụng).

  • Không hạn chế số người sử dụng khi chia sẻ kết nối Internet trong mạng

Các thành phần của ADSL

Trong phần này chúng ta sẽ lần lượt mô tả chức năng của từng thành phần của ADSL, bắt đầu từ Modem ADSL tới Nhà cung cấp dịch vụ Internet. Chúng ta cũng xem xét ở phía ISP để lọc ra những thành phần cơ bản mà họ sử dụng để cung cấp dịch vụ ADSL.

Modem ADSL là gì?

Modem ADSL kết nối vào đường dây điện thoại (còn gọi là local loop) và đường dây này nối tới thiết bị tổng đài nội hạt. Modem ADSL sử dụng kết hợp một loạt các kỹ thuật xử lý tín hiệu tiên tiến nhằm đạt được tốc độ băng thông cần thiết trên đường dây điện thoại thông thường với khoảng cách tới vài km giữa thuê bao và tổng đài nội hạt. Modem ADSL làm việc như thế nào?

ADSL hoạt động bằng cách vận hành cùng lúc nhiều Modem, trong đó mỗi Modem sử dụng phần băng thông riêng có thể.

Sơ đồ trên đây chỉ mô phỏng một cách tương đối, nhưng qua đó ta có thể nhận thấy ADSL sử dụng rất nhiều Modem riêng lẻ hoạt động song song để khai thác băng thông tối đa và cung cấp một tốc độ rất cao. Mỗi đường kẻ sọc đen ở trên thể hiện một Modem và chúng hoạt động tại các tần số hoàn toàn khác nhau. Trên thực tế có thể tới 255 Modem hoạt động trên một đường ADSL. Ðiểm đặc biệt ở chỗ ADSL sử dụng dải tần số từ 26kHz tới 1.1MHz trong 10MHz của băng thông thoại. Tất cả 255 Modems này được vận hành chỉ trên một con chíp đơn. Lượng dữ liệu mà mỗi Modem có thể truyền tải phụ thuộc vào các đặc điểm của đường dây tại tần số mà Modem đó chiếm. Một số Modem có thể không làm việc một chút nào vì sự gây nhiễu từ nguồn tín hiệu bên ngoài chẳng hạn như bởi một đường dây (local loop) khác hoặc nguồn phát vô tuyến nào đó. Các Modem ở tần số cao hơn thông thường lại truyền tải được ít dữ liệu hơn bởi lý ở tần số càng cao thì sự suy hao càng lớn, đặc biệt là trên một khoảng cách dài.

Mạch vòng / Local Loop là gì ?

'Local loop' là thuật ngữ dùng để chỉ các đường dây điện thoại bình thường nối từ vị trí người sử dụng tới công ty điện thoại.

Nguyên nhân xuất hiện thuật ngữ local loop - đó là người nghe (điện thoại) được kết nối vào hai đường dây mà nếu nhìn từ tổng đài điện thoại thì chúng tạo ra một mạch vòng local loop.

CÁC THÀNH PHẦN ADSL TỪ PHÍA NHÀ CUNG CẤP DỊCH VỤ

Bây giờ chúng ta sẽ tìm hiểu xem các ISP thực hiện cung cấp ADSL như thế nào.

Như chỉ ra trong khối vàng ở trên, phạm vi Nhà cung cấp dịch vụ gồm có ba thành phần quan trọng
  • DSLAM - DSL Access Multiplexer.
  • BAS - Broadband Access Server.
  • ISP - Internet Service Provider.
DSLAM là gì?

Một thiết bị DSLAM có thể tập hợp nhiều kết nối thuê bao ADSL - có thể nhiều tới hàng trăm thuê bao - và tụ lại trên một kết nối cáp quang. Sợi cáp quang này thường được nối tới thiết bị gọi là BAS - Broadband Access Server, nhưng nó cũng có thể không nối trực tiếp tới BAS vì BAS có thể được đặt tại bất cứ đâu.

DSLAM là thiết bị đặt ở phía tổng đài, là điểm cuối của kết nối ADSL. Nó chứa vô số các Modem ADSL bố trí về một phía hướng tới các mạch vòng và phía kia là kết nối cáp quang.

Vậy BAS là gì?

Broadband Access Server (BAS) là thiết bị đặt giữa DSLAM và POP của ISP. Một thiết bị BAS có thể phục vụ cho nhiều DSLAM. Các giao thức truyền thông được đóng gói để truyền dữ liệu thông qua kết nối ADSL, vì vậy mục đích của BAS là mở gói để hoàn trả lại các giao thức đó trước khi đi vào Internet. Nó cũng đảm bảo cho kết nối của bạn tới ISP được chính xác giống như khi bạn sử dụng Modem quay số hoặc ISDN. Như chú giải ở trên, ADSL không chỉ rõ các giao thức được sử dụng để tạo thành kết nối tới Internet. Phương pháp mà PC và Modem sử dụng bắt buộc phải giống như BAS sử dụng để cho kết nối thực hiện được. Thông thường ADSL sử dụng hai giao thức chính là :
  • PPPoE - PPP over Ethernet Protocol.
  • PPPoA - Point to Point Protocol over ATM.

Kết nối mạng

Các thành phần kết nối như thế nào?

Dưới đây sẽ trình bày về những giao thức truyền thông được sử dụng trên kết nối ADSL. Khi kết nối vào Internet, bạn sử dụng các giao thức chạy ở tầng vận chuyển TCP/IP (chẳng hạn như HTTP - giao thức được sử dụng bởi các Web Browser). Quá trình này là giống nhau với các kiểu truy nhập quay số qua PSTN, ISDN và ADSL.

Các giao thức được sử dụng giữa Modem và BAS

Khi quay số PSTN/ISDN để truy nhập vào Internet, chúng ta sử dụng giao thức gọi là PPP để vận chuyển dữ liệu TCP/IP và kiểm tra cũng như xác thực tên và mật khẩu người truy nhập. Trong ADSL, PPP cũng thường được sử dụng để kiểm tra tên và mật khẩu truy nhập, và ATM thì luôn được sử dụng ở mức thấp nhất. Kết nối điển hình như dưới đây :

Vai trò của ATM

ATM - Asynchronous Transfer Mode - được sử dụng như là công cụ chuyển tải cho ADSL ở mức thấp. Lý do vì đó là cách thuận tiện và mềm dẻo đối với các công ty thoại muốn kéo dài khoảng cách kết nối từ DSLAM tới BAS giúp họ có thể đặt BAS ở bất cứ đâu trên mạng. Các tham số thiết lập cấu hình ATM Có hai tham số cần phải thiết lập cấu hình một cách chính xác trên Modem ADSL để đảm bảo kết nối thành công tại mức ATM với DSLAM:
  • VPI - the Virtual Path Identifier.
  • VCI - the Virtual Channel Identifier.

Cấu trúc của ADSL

Vai trò của PPP

PPP là giao thức dùng để vận chuyển lưu lượng Internet tới ISP dọc theo các kết nối Modem và ISDN. PPP kết hợp chặt chẽ các yếu tố xác thực - kiểm tra tên/mật khẩu - và đó là lý do chính mà người ta dùng PPP với ADSL. Mặc dù BAS thực thi giao thức PPP và tiến hành việc xác thực, nhưng thực ra việc đó được thực hiện bằng cách truy nhập vào các cơ sở dữ liệu khách hàng đặt tại ISP. Bằng cách đó, ISP biết được rằng các kết nối do BAS định tuyến tới - đã được xác thực thông qua giao dịch với cơ sở dữ liệu riêng của ISP.

MODEM ADSL TRÊN THỰC TẾ

Các loại modem ADSL thông minh và thụ động

Modem ADSL thông minh bản thân nó đã tích hợp sẵn các giao thức truyền thông cần thiết (Như thiết bị Modem ADSL Router hoặc Modem được sử dụng kết nối qua cổng Card Ethernet 10/100Mb) nên chỉ việc lựa chọn và khai báo VPI/VCI cho Modem.

Còn Modem ADSL thụ động thì phải hoạt động dựa trên hệ điều hành của máy tính để cung cấp các giao thức cần thiết. Các loại Modem này bắt buộc phải cài đặt phần mềm điều khiển Modem và thiết lập các giao thức PPP, VPI/VCI. Việc cấu hình như vậy phức tạp và đòi hỏi thời gian nhiều hơn. Chỉ có Windows 98SE, Windows ME và Windows 2000/XP là có cài sẵn cơ chế thực thi ATM, vì thế người ta ít sử dụng các Modem thụ động trên thực tế. Mặc dù các Modem thông minh có hỗ trợ các giao thức cần thiết nhưng chúng vẫn có thể được dùng cho các hệ điều hành nói trên. Các Modem thụ động có thể nối với PC thông qua giao diện USB, hoặc có thể được sản xuất dưới dạng PCI Card để cắm thẳng trên bảng mạch chủ của PC. Lưu ý là việc khai thác giao thức ATM không có nghĩa là cần phải có Card mạng ATM cho PC - đó chỉ là cơ chế hỗ trợ bằng phần mềm trong hệ điều hành.

Mối tương quan giữa điện thoại và ADSL

Thoại và ADSL cùng chung sống ra sao?

ADSL cho phép cùng lúc vừa truy nhập Internet tốc độ cao lại vừa có thể thực hiện cuộc gọi cũng trên đường dây đó. Thiết bị chuyên dụng Splitters được sử dụng để tách riêng các tần số cao dùng cho ADSL và các tần số thấp dùng cho thoại. Như vậy, người ta thường đặt các Splitters tại mỗi đầu của đường dây - phía thuê bao và phía DSLAM.

Tại phía thuê bao, các tần số thấp được chuyển đến máy điện thoại còn các tần số cao đi đến modem ADSL. Tại các tổng đài, các tần số thấp được chuyển sang mạng thoại PSTN còn các tần số cao đi đến ISP.

Tốc độ đa dạng

Tốc độ của kết nối giữa modem ADSL và DSLAM phụ thuộc vào khoảng cách đường truyền và tốc độ tối đa được cấu hình sẵn trên cổng của DSLAM. Còn tốc độ kết nối vào Internet lại còn phụ thuộc vào nhiều yếu tố khác nữa như dưới đây :

Số người dùng kết nối vào cùng một DSLAM và thực tế có bao nhiều người dùng đang khai thác kết nối.

Tốc độ kết nối giữa DSLAM và BAS.

Bao nhiêu card DSLAM cùng nối vào một BAS và bao nhiêu người dùng đang khai thác thực tế kết nối.

Tốc độ kết nối giữa BAS và ISP.

Bao nhiêu BAS kết nối vào ISP và bao nhiêu người dùng thực tế đang khai thác.

Tốc độ của kết nối từ ISP tới mạng Internet toàn cầu.

Bao nhiêu thuê bao của ISP đang khai thác (qua các giao tiếp khác nhau như quay số PSTN/ ISDN và ADSL).

ISP tổ chức Caching và Proxy ra sao, liệu thông tin mà bạn cần khai thác đã được lưu trữ trên Cache chưa hay phải tải về từ Internet.