Windows Internet Security - Protecting Your Critical Data Seth Forgie & Dr. Cyrus Peikari
Chương 3
TCP/IP
Trùc khi bạn lấy được bằng lái xe, bạn phải qua được một bài thi viết về luật giao thông. Tương tự như
vậy, trước khi bạn vào “siêu xa lộ thông tin”, bạn phải hiểu về các protocol điều khiển luồng thông tin.
Chương này giới thiệu với bạn các luật như thế, được gọi là Transmission Control Protocol/Internet
Protocol (TCP/IP). Bạn sẽ học những luật này và xem chúng ảnh hưởng trên đường truyền giao tiếp
như thế nào, nhằm mục đích giúp bạn có thể tự phòng thủ một cách tốt nhất trước các tấn công của
hacker.
Bất kỳ lúc nào bạn kết nối vào Internet bằng đường điện thoại hoặc bằng một đường truyền băng thông
rộng là máy tính của bạn đã trở thành một phần của World Wide Web. Nếu bạn có thể yêu cầu truy
cập vào máy tính giữ đòa chỉ của www.yahoo.com thì mọi nhân vật ở yahoo.com cũng có thể kết nối vào
máy tính của bạn. Các lý giải tương tự tiếp theo đây sẽ minh họa cho liên kết vừa nói, bằng cách so
sánh giữa cơ sở hạ tầng của Internet và các con đường nối liền các ngôi nhà lại với nhau.
Máy tính cũng giống như một ngôi nhà
Một ngôi nhà và tương quan của nó với đường vào nhà, với các con đường xung quanh cũng tương tự
như một máy tính và tương quan của nó với Internet (xem Hình 3.1). Hãy tưởng tượng ra một căn nhà
nằm tách biệt giữa rừng. Nó sẽ là mục tiêu khó gặm đối với một tên trộm. Dó nhiên là tên trộm vẫn có
thể lội bộ xuyên qua khu rừng và lấy đi một số món đồ nhỏ nào đấy, nhưng nếu để lấy nhiều đồ, hắn sẽ
phải vác chúng một quãng đường dài để ra khỏi khu vực hoang sơ đó.
Hình 3.1
– Kết nối các máy tính cũng giống như các căn nhà kết nối với nhau
Một ngôi nhà biệt lập cũng giống như một máy tính không kết nối vào Internet. Mặc dù một hacker có
thể tiếp cận nơi ở của nạn nhân, đột nhập hẳn hòi vào nhà và lấy trộm thông tin trong máy tính của cô
ta, nhưng làm như vậy sẽ phải tốn nhiều công sức mà lại quá mạo hiểm. Vấn đề ngược lại sẽ xảy ra cho
những kết nối Internet “lúc nào cũng online” như kết nối bằng modem DSL hay modem cáp. Vì những
kết nối như vậy luôn tạo sẵn con đường từ Internet vào máy tính của bạn, cho nên một hacker luôn có
thể dễ dàng sờ mó đến các tài sản của bạn.
Chapter03-TCP/IP III - 1
Windows Internet Security - Protecting Your Critical Data Seth Forgie & Dr. Cyrus Peikari
Các port trên máy tính của bạn chính là các cửa sổ và cửa đi
Các port chính là các “cổng” ảo mà qua đó thông tin đi vào và đi ra khỏi máy tính của bạn (xem Hình
3.2). Khi bạn kết nối vào Internet, có tới 65.534 port có thể dùng được. Điều này không có nghóa là tất
cả các port này đều mở hoặc đều được sử dụng; đơn giản chúng chỉ dành sẵn cho các chương trình trên
máy của bạn khi cần đến.
Hình 3.2
– Các port và các cửa sổ
Khi máy tính của bạn kết nối vào Internet, một số port sẽ được mở mặc đònh (default port). Tuy nhiên,
nhiều chương trình (ví dụ như một Web server hay một ftp server) sẽ mở thêm một số port nữa (extra
port). Đa số trong các chương trình này luôn chạy ở những port mặc đònh và cố đònh (fixed port). Như
thế, nếu một hacker tiếp cận và truy vấn về tất cả các port đang mở trên máy tính của bạn, anh ta có
thể nói được dễ dàng danh mục các chương trình có liên quan đến Internet mà bạn đang chạy. Ví dụ,
nếu bạn có một ftp server đang chạy thì port 21 sẽ mở. Để biết thêm về các port quan trọng khi bạn
đang là một người dùng tại nhà, hãy xem Phụ lục A.
Có thể dễ dàng so sánh các port với các cửa đi và cửa sổ của một ngôi nhà. Mỗi ngôi nhà đều có sẵn
một bộ gồm các cửa đi và cửa sổ. Có cửa sau, cửa trước, cửa nhà xe, và thường có cả cửa hông nữa.
Việc đầu tiên mà các tên trộm thường tìm kiếm là một lối đột nhập dễ dàng. Không cần phải phá lỗ
trên tường, khi mà một cửa đi hoặc một cửa sổ là đủ để vào. Đấy là những gì mà một hacker sẽ làm khi
anh ta rà quét (scan) để tìm những port đang mở trên máy tính của bạn. Hacker tìm kiếm các port đang
mở và có thể truy cập được.
Tuy nhiên, với một port đang mở thì chưa chắc một hacker có thể chui vào được. Để có thể “hack”
được, port này phải có cho phép truy cập. Ví dụ, mỗi lúc bạn kết nối với yahoo.com, máy tính của bạn
thực ra đã kết nối với port 80 trên máy server của yahoo. Dù sao đi nữa, bạn cũng không thể làm gì
được ngoài chuyện đọc các trang Web thông qua port này. Điều đó bảo vệ các thông tin của Web
server khỏi bò các hacker quậy phá. Nếu yahoo.com cho phép những người lướt Web (surfer) xóa hoặc
thay đổi nội dung trang Web, chắc yahoo.com không giữ được trang Web của mình lâu như vậy. Nếu
chương trình Web server bò cấu hình sai (misconfigure), hoặc nếu có một lỗi về lập trình trong phần
mềm Web server, các hacker có thể chiếm quyền truy cập trái phép.
Phần mềm bò cấu hình sai có thể so sánh với một cửa đi hoặc một cửa sổ quên khóa. n trộm không
phải bao giờ cũng “khoét vách” để vào nhà. Thay vào đó, đầu tiên họ sẽ tìm cửa sổ hoặc cửa đi không
khóa để vào cho dễ. Phần mềm bò cấu hình sai thường luôn là mục tiêu tấn công của các hacker
Internet.
Đường và xa lộ Internet
Du hành trên Internet có thể là chuyện nhỏ mà cũng có thể là chuyện lớn. Một máy tính của người
dùng có thể lang thang đến cách nó vài dặm, hoặc cũng có thể đi tuốt đến bên kia trái đất. Nó có thể
cũng đơn giản giống như lái xe đến nhà một người bạn ở cách năm dặm, hay là gửi một thông tin kỹ
thuật số ở khoảng cách gần. Khi khoảng cách tăng lên, việc kết nối bắt đầu phức tạp lên theo.
Chapter03-TCP/IP III - 2
Windows Internet Security - Protecting Your Critical Data Seth Forgie & Dr. Cyrus Peikari
Ví dụ, để đi mua sắm ở một khu thương xá, bạn có thể chỉ cần ra khỏi nhà, ra đường nhánh, quẹo lên
đường chính để lên xa lộ, chạy đến lối rẽ vào khu thương xá, qua cổng, đậu xe vào bãi. Quá trình cũng
diễn ra tương tự khi máy tính gửi thông tin đi trên Internet.
Khi bạn yêu cầu một trang Web, sự việc xảy ra giống như bạn gửi đi nhiều toa xe nhỏ chứa thông tin
(xem Hình 3.3). Những gói tin này đi dọc theo line điện thoại hoặc đường cáp đến nhà cung cấp dòch vụ
Internet (ISP), và sau đó sẽ được gửi tiếp ra một trong những đường cáp quang truyền tốc độ cao xuyên
lục đòa. Khi tín hiệu đến gần đích, nó nhảy khỏi đường cáp quang và đi đến ISP đang nắm giữ đòa chỉ
của trang Web; sau đó kết nối với máy Web server ta cần. Trong trường hợp này, lời yêu cầu một trang
Web sẽ chỉ giống như vài chiếc xe hơi (gói tin nhỏ) đi đến đòa chỉ mong muốn, trong khi dữ liệu trả về
từ trang Web sẽ gồm rất nhiều toa xe.
Hình 3.3
– Minh họa việc chuyển các gói tin
Tổng quan về TCP/IP
Internet cũng phải điều chỉnh các tai nạn và tắc nghẽn giao thông. Vì rằng có rất nhiều gói tin bay tới
bay lui giữa các máy tính của ngưới dùng và Web server, cho nên TCP/IP đã quy đònh rằng các gói tin
có thể tìm ra nhiều con đường khác nhau để đi trên Internet. Cũng giống như một khách du lòch có thể
sẽ đi vòng để tránh giao thông tắc nghẽn của thò tứ, các gói tin cũng sẽ chọn những lối đi thay thế vòng
quanh các khu vực bận rộn trên Internet.
Hình 3.4
– Liên lạc giữa các router
Hoạt động chỉnh hướng này do các thiết bò dạng máy tính nhỏ gọi là router (thiết bò đònh tuyến) đảm
nhiệm. Mỗi router trên Internet sẽ giữ liên lạc với các router nằm gần (neighboring router) để xem có
lối đi dự phòng không hoặc có kết nối nào bò đứt không. Khi một router xác đònh được có một khu vực
“kẹt” (bad part) trên Internet, nó sẽ tìm một lối đi nhanh hơn để cho dữ liệu chuyển qua. Mỗi lần một
gói tin đi qua một router sẽ giống như nhảy một bước (hop) trong hành trình. Số hop mà một gói tin phải
thực hiện khi đi trên Internet có liên quan trực tiếp đến chất lượng kết nối. Số hop càng càng cao nghóa
Chapter03-TCP/IP III - 3
Windows Internet Security - Protecting Your Critical Data Seth Forgie & Dr. Cyrus Peikari
là tốc độ truyền càng chậm. Các router và các dây nhợ kết nối của nó hình thành một khái niệm là
Web (mạng lưới). World Wide Web giống như một mạng nhện làm bằng các router và các dây kết nối.
Trong mạng, dữ liệu sẽ đi theo đường nhanh nhất và ngắn nhất. Trong ví dụ ở Hình 3.4, nếu giữa
Router C và Router D không bò đứt dây, phần lớn dữ liệu sẽ đi từ máy tính trong nhà qua Router C, rồi
Router D, và cuối cùng qua Router E, khi trở lại cũng theo đường đó. Tuy nhiên, vì các chức năng thông
minh của các router cho phép chúng nói chuyện với nhau, cả hai Router C và D sẽ nhanh chóng nhận ra
kết nối trực tiếp giữa chúng bò đứt. Hai router này sẽ chuyển hướng cho thông tin đi qua Router B. Mặc
dù số hop tăng lên, nhưng vẫn giữ cho dữ liệu được truyền trôi chảy. Điều này làm cho Internet trở nên
đáng tin cậy.
TCP/IP: Các luật giao thông
Các luật lệ của đường đi
Ở nhà, bạn (hầu như) làm chủ chính mình. Tuy nhiên, khi bước ra đường, bạn đi vào một thế giới đầy
dẫy các luật lệ và quy tắc. Nếu không có các luật này, sự hỗn loạn sẽ ngự trò. Ví dụ cho điều này
thường thấy ở các nước kém phát triển, do thiếu các luật giao thông đã đưa đến nhiều tai nạn chết
người. Như thế, luật lệ được làm ra để hướng dẫn và kiểm soát đại chúng. Tương tự, các máy tính cũng
phải tuân theo các luật lệ khi truyền dữ liệu. TCP/IP (Transmission Control Protocol/Internet Protocol)
đònh nghóa các luật lệ này cho Internet. Nếu trên đường nhựa có một đống các luật lệ quy tắc, thì cũng
có một đống sách và quy tắc tiêu chuẩn cho đường kỹ thuật số.
Để minh họa cho tầm quan trọng
của TCP/IP, hãy tưởng tượng nước
Mỹ không có Dòch vụ Bưu điện
Liên bang (USPS-United States
Postal Service). Nhờ có các luật lệ
và quy tắc do USPS ban hành, bạn
có quyền nằm dài và chắc mẩm
rằng (đa số) các thư từ của bạn
sẽ đến đúng đòa chỉ. Giống như
USPS có một bộ phận điều khiển,
Internet cũng có W3C (World
Wide Web Consortium) giúp điều
hành các luật lệ và quy tắc (xem
Hình 3.5).
Hình 3.5
– USPS chuyển phát thư từ giống như Internet
chuyển phát các gói dữ liệu
Suy nghó tương tự như một ông xếp giỏi giang
Các gói tin thường bò thất lạc trên các con đường ảo này. TCP/IP đã được xây dựng để sửa chữa vấn đề
đó và dù việc thất lạc gói tin xảy ra nhưng vẫn cung cấp được kết nối đáng tin cậy.
Hãy tưởng tượng ra Bob-xếp (CEO-Chief
Executive Officer) của một công ty-cần
gửi cho Sally-cũng là xếp của một công
ty khác-một bản đề xuất dày 100 trang.
Do chính sách (policy) của công ty, mỗi
lần Bob chỉ gửi được một trang (xem
Hình 3.6). Cách nhanh nhất, nếu bất
chấp giá cả, có phải là thuê 100 người
cùng lúc mang các trang giấy đi không?
Hình 3.6
– Chuyển bản đề xuất
Các câu hỏi-đáp mẫu tương tự sau đây sẽ cho thấy sự tài tình ẩn chứa trong TCP/IP và lý do tại sao nó
được xem là đáng tin cậy. Hãy xem xét các vấn đề mà xếp Bob gặp phải khi gửi bản đề xuất đi:
- Hỏi: Chuyện gì sẽ xảy ra nếu có một người đưa tin bò kẹt? Nếu có ai trong số những người đưa
tin đi chậm, các trang sẽ bò sai thứ tự.
Chapter03-TCP/IP III - 4
Windows Internet Security - Protecting Your Critical Data Seth Forgie & Dr. Cyrus Peikari
- Đáp: Để ngăn ngừa chuyện này, Bob đơn giản chỉ cần đánh số các trang, để Sally có thể sắp
thứ tự lại bản đề xuất khi đã nhận đủ các trang.
TCP/IP cũng đánh số các gói tin sao cho có thể đặt chúng lại đúng thứ tự khi đến đích. Việc chuyển
thông tin qua Internet là sự kiện không thể bấm giờ được, bởi vì nếu các gói tin có đi ra khỏi một máy
tính theo một trật tự nào đó, thì không có nghóa là chúng đến nơi theo đúng trật tự đó. Các gói tin có
khả năng chọn các đường đi khác nhau, vì vậy một số sẽ đến không đúng thứ tự. Tuy nhiên, TCP/IP sẽ
sắp thứ tự lại các gói tin bằng cách dùng bộ đếm tuần tự đã thêm vào trong các gói tin.
- Hỏi: Cái gì sẽ xảy ra nếu một trong các chú nhóc đưa tin biến luôn và không bao giờ chuyển
đến đích trang giấy của mình?
- Đáp: Khi Sally biết có một số trang đã thất lạc, những trang này rất dễ xác đònh nhờ vào hệ
thống số trang. Khi đó cô ta sẽ gửi người đưa tin của mình trở lại cho Bob để cố gắng lấy bổ
sung các trang thất lạc.
TCP/IP sẽ theo dõi tất cả các gói tin và sẽ cho người gửi biết những gói tin nào đã không được nhận,
như thế các gói tin thất lạc sẽ được gửi lại. Hệ thống đánh số tuần tự không phải chỉ để sắp thứ tự các
gói tin lại, mà còn dùng để đảm bảo tất cả các gói tin đều đã đến đích. Nếu có một gói tin nào không
đến đích được trong một khoảng thời gian nhất đònh, máy tính ở đầu nhận sẽ gửi ngược lại một ít gói tin
để yêu cầu gửi lại các gói tin bò thất lạc.
- Hỏi: Nếu lỡ có chú nhóc đưa tin nào đó trên đường lại phát bệnh kém trí nhớ, quên mất phải
chuyển trang đề xuất đến cao ốc hoặc văn phòng nào thì sao?
- Đáp: Bob có thể điền đòa chỉ ở đầu mỗi trang.
TCP/IP quy đònh rằng mỗi gói tin đều phải có ghi đòa chỉ IP và port đích trong header của nó. Mỗi gói
tin đi trên Internet phải chứa thêm những dữ liệu nhất đònh để mô tả được bản thân nó theo nhiều cách.
Các thông tin như đòa chỉ và port gửi, đòa chỉ và port nhận, số đếm tuần tự sẽ được gửi chung với gói tin
để bảo đảm cho nó đến được đúng chỗ.
- Hỏi: Nếu có chú nhóc đưa tin nào lại làm việc cho công ty đối thủ và nó sửa một số nội dung
trên trang đề xuất thì sao?
- Đáp: Bob có thể ghi một con số bí mật ở đầu trang, số này đại diện cho tổng số từ và chữ cái
trong trang.
TCP/IP dùng một con số gọi là checksum. Checksum đảm bảo cho bất kỳ gói tin nào bò sai lạc nội dung
trên đường truyền đều sẽ bò từ chối và bắt buộc phải được gửi lại. Checksum là con số tính theo kích
thước và nội dung gói tin. Số này sau đó sẽ được thêm vào gói tin khi gửi nó đi. Khi gói tin đến đích,
checksum sẽ được ghi nhận, và một con số khác sẽ được tính từ kích thước và nội dung của gói tin. Nếu
hai số trùng nhau, gói tin được xem như “còn nguyên”. Nếu không, gói tin sẽ bò từ chối và một gói tin
thay thế sẽ phải được gửi tiếp.
- Hỏi: Nếu thông tin trang đề xuất rất nhạy cảm và cần được giữ kín?
- Đáp: Bob có thể dùng mật mã để ngụy trang thông tin, để người khác không thể đọc được nó
nếu không có chìa khóa thích hợp. Sau đó, Bob có thể thông báo bằng điện thoại cho Sally biết
chìa khóa giải mã.
TCP/IP làm việc bên dưới bất kỳ tầng mã hóa nào. Điều đó có nghóa là nó không quan tâm việc dữ liệu
trông ra sao. Nó chỉ đơn thuần làm công việc cắt nhỏ dữ liệu ra rồi gửi đi. Vì lý do này, TCP/IP có thể
gửi đi được trên Internet các file đã mã hóa, các file nhạc, các văn bản, các trang Web và ngay cả tiếng
nói nữa.
TCP/IP: Các chi tiết xương máu
Khi bạn đã có một cái nhìn tổng quan về TCP/IP, bạn có thể quán triệt được các chi tiết của nó. Phần
này sẽ trình bày khía cạnh kỹ thuật của TCP/IP, bao gồm cấu tạo của gói tin và cách thức nối kết
TCP/IP hoạt động. Mặc dù phần này nặng về kỹ thuật, nhưng nó sẽ giúp bạn hiểu được một số điều
phức tạp hơn sẽ trình bày trong các chương sau.
Chapter03-TCP/IP III - 5