TỔNG QUAN VỀ IPv6 (IPv6 Overview)

I- GIỚI THIỆU CHUNG

Hệ thống địa chỉ IPv4 hiện nay không có sự thay đổi về cơ bản kể từ RFC 791 phát hành 1981. Qua thời gian sử dụng cho đến nay đã phát sinh các yếu tố như :

– Sự phát triển mạnh mẽ của hệ thống Internet dẫn đến sự cạn kiệt về địa chỉ Ipv4

– Nhu cầu về phương thức cấu hình một cách đơn giản

– Nhu cầu về Security ở IP-Level

– Nhu cầu hỗ trợ về thông tin vận chuyển dữ liệu thơi gian thực (Real time Delivery of Data) còn gọi là Quality of Service (QoS)

– …

Dựa trên các nhược điểm bộc lộ kể trên, hệ thống IPv6 hay còn gọi là IPng (Next Generation : thế hệ kế tiếp) được xây dựng với các điểm chính như sau :

1- Đinh dạng phần Header của các gói tin theo dạng mới

Các gói tin sử dụng Ipv6 (Ipv6 Packet) có cấu trúc phần Header thay đổi nhằm tăng cương tính hiệu quả sử dụng thông qua việc dời các vùng (field) thông tin không cần thiết (non-essensial) và tùy chọn (Optional) vào vùng mở rộng (Extension Header Field)

2- Cung cấp không gian địa chỉ rộng lớn hơn

3- Cung cấp giải pháp định tuyến (Routing) và định vị địa chỉ (Addressing) hiệu quả hơn

-Phương thức cấu hình Host đơn giản và tự động ngay cả khi có hoặc không có DHCP Server

(stateful / stateless Host Configuration)

4- Cung cấp sẵn thành phần Security (Built-in Security)

5- Hỗ trợ giải pháp Chuyển giao Ưu tiên (Prioritized Delivery) trong Routing

6- Cung cấp Protocol mới trong việc tương tác giữa các Điểm kết nối (Nodes )

7- Có khả năng mở rộng dễ dàng thông qua việc cho phép tạo thêm Header ngay sau Ipv6 Packet Header

 

II- ĐỊA CHỈ IPv6

1- Không gian địa chỉ IPv6

Địa chỉ IPv6 (IPv6 Adddress) với 128 bits địa chỉ cung cấp khối lượng tương đương số thập phân là

2128 hoặc 340,282,366,920,938,463,463,374,607,431,768,211,456 địa chỉ

so với IPv4 với 32 bits địa chỉ cugn cấp khối lượng tương đương số thập phân là

232 hoặc 4,294,967,296 địa chỉ

 

2-Hình thức trình bày

IPv6 Address gồm 8 nhóm, mỗi nhóm 16 bits được biểu diển dạng số Thập lục phân (Hexa-Decimal)

Vd-1 : 2001:0DB8:0000:2F3B:02AA:00FF:FE28:9C5A

(1) (2) (3) (4) (5) (6) (7) (8)

Co thể đơn giản hóa với quy tắc sau :

– Cho phép bỏ các số không (0) nằm phía trước trong mỗi nhóm

– Thay bằng 1 số 0 cho nhóm có giá trị bằng không

– Thay bằng :: cho các nhóm liên tiếp có giá trị bằng không

Như vậy địa chỉ ở Vd-1 có thể viết lại như sau :

Vd-2 : 2001:DB8:0:2F3B:2AA:FF:FE28:9C5A

Vd-3 : địa chỉ = FE80:0:0:0:2AA:FF:FE9A:4CA2

Có thể viết lại = FE80::2AA:FF:FE9A:4CA2

(*) Lưu ý : phần Giá trị đầu (Prefix) được xác định bởi Subnet Mask IPv6 tương tự IPv4

Vd-4 : 21DA:D3::/48 có Prefix = 21DA:D3:0 (48 bits)

hoặc 21DA:D3:0:2F3B::/64 có Prefix = 21DA:D3:0:2F3B ( 64 bits)

 

Chú thích :

Để không bị bỡ ngỡ, chúng ta nên lưu ý về một số khái niệm trước khi nói về địa chỉ của IPv6 Host

a) Link-Local : khái niệm chí về các Host kết nối cùng hệ thống thiết bị vật lý (tạm hiểu Hub, Switch)

b) Site-Local : khái niệm chỉ về các Host kết nối cùng Site

c) Node : điểm kết nối vào mạng (tạm hiểu là Network Adapter). Mỗi Node sẽ có nhiều IPv6 Address cần thiết (Interface Address) dùng cho các phạm vi (Scope), trạng thái (State), vận chuyển (Tunnel) khác nhau thay vì chỉ có 1 địa chỉ cần thiết như IPv4

d) Do vậy khi cài đặt IPv6 Protocol trên một Host, mỗi Network Adapter sẽ có nhiều IPv6 Address gán cho các Interface khác nhau

3-Các loại IPv6 Address

a- Unicast

Unicast Address dùng để định vị một Interface trong phạm vi các Unicast Address. Gói tin (Packet) có đích đến là Unicast Address sẽ thông qua Routing để chuyển đến 1 Interface duy nhất

b- Multicast

Multicast Address dùng để định vị nhiều Interfaces. Packet có đích đến là Multicast Address sẽ thông qua Routing để chuyển đến tất cả các Interfaces có cùng Multicast Address

c-Anycast

Anycast Address dùng để định vị nhiều Interfaces. Tuy vậy, Packet có đích đến là Anycast Address sẽ thông qua Routing để chuyển đến một Interfaces trong số các Interface có cùng Anycast Address, thông thường là Interface gần nhất (khái niệm Gần ở đây được tính theo khoảng cách Routing)

Trong các trường hợp nêu trên, IPv6 Address được cấp cho Interface chứ không phải Node, một Node có thể được định vị bởi một trong số các Interface Address

IPv6 không có dạng Broadcast, các dạng Broadcast trong IPv4 được xem như tương đương Multicast trong Ipv6

 

4-Các loại IPv6 – Unicast Address

IPv6 Unicast Address gồm các loại :

· Global unicast addresses

· Link-local addresses

· Site-local addresses

· Unique local IPv6 unicast addresses

· Special addresses

a-Global unicast addresses (GUA)

GUA là địa chỉ IPv6 Internet (tương tự Public IPv4 Address). Phạm vi định vị của GUA là tòan bộ hệ thống IPv6 Internet (RFC 3587)

clip_image002

001 : 3 bits đầu luôn có giá trị = 001 nhị phân (Binary – bin) (Prefix = 001 /3)

Global Routing Prefix : gồm 45 bits. Là địa chỉ được cấp cho một tổ chức, Công ty / Cơ quan ..(Organization) khi đăng ký IPv6 Internet Address (Public IP)

Subnet ID : gồm 16 bits. Là địa chỉ tự cấp trong tổ chức để tạo các Subnets

Interface ID : gồm 64 bits. Là địa chỉ của Interface trong Subnet

Có thể đơn giản hóa thành dạng như sau (Global Routing Prefix = 48 bits)

clip_image004

 

(*) Các địa chỉ Unicast trong nội bộ (Local Use Unicast Address) : gồm 2 loại :

Link-Local Addresses : gồm các địa chỉ dùng cho các Host trong cùng Link và Neighbor Discovery Process (quy trình xác định các Nodes trong cùng Link)

Site-Local Addresses : gồm các địa chỉ dùng để các Nodes trong cùng Site liên lạc với nhau

b-Link-local addresses (LLA)

LLA là địa chỉ IPv6 dùng cho các Nodes trong cùng Link liên lạc với nhau (tương tự các địa chỉ IPv4 = 169.254.X.X). Phạm vi sử dụng của LLA là trong cùng Link (do vậy có thể bị trùng lặp trong các Link)

Khi dùng HĐH Windows, LLA được cấp tự động với cấu trúc như sau :

clip_image006

64 bits đầu = FE80 là giá trị cố định (Prefix = FE80 :: / 64)

Interface ID = gồm 64 bits . Kết hợp với Physical Address của Netwoprk Adapter (nói ở phần sau)

c-Site-local addresses (SLA)

SLA tương tự các địa chỉ Private IPv4 (10.X.X.X, 172.16.X.X, 192.168.X.X) được sử dụng trong hệ thống nội bộ (Intranet). Phạm vi sử dụng SLA là trong cùng Site.

(*) Site : là khái niệm để chỉ một phần của hệ thống mạng tại các tọa độ địa lý khác nhau

clip_image008

1111 1110 11 = 10 bits đầu là giá trị cố định (Prefix = FEC0 /10)

Subnet ID : gồm 54 bits dùng để xác địng các Subnets trong cùng Site

Interface ID : gồm 64 bits. Là địa chỉ của Interfaces trong Subnet

 

(*) Chú thích

Với cấu trúc như trình bày ở phần trên, các Local Use Unicast Address (Link-local, Site Local) có thể bị trùng lặp (trong các Link khác, Site khác). Do vậy khi sử dụng các Local Use Unicast Addresss có 1 thông số định vị được thêm vào (Additional Identifier) gọi là Zone_ID với cú pháp :

Address%Zone_ID

Vd-5 : ping fe80::2b0:d0ff:fee9:4143%3 Zone_ID = %3. Trong đó :

Address = Local-Use Address (Link-Local / Site-Local)

Zone ID = giá trị nguyên, giá trị tương tương đối (so với Host) xác định Link hoặc Site.

Trong các Windows-Based IPv6 Host, Zone ID được xác định như sau :

+ Đối với Link-Local Address (LLA) : Zobe ID là số thứ tự của Interface (trong Host) kết nối với Link. Có thể xem bằng lệnh : netsh interface ipv6 show interface

+ Đối với Site-Local Address (SLA) : Zone ID là Site ID, được gán cho Site trong Organization. Đối với các Organization chỉ có 1 Site, Zone ID = Site ID = 1 và có thể xem bằng lệnh :  netsh interface ipv6 show address level=verbose

d-Unique- local addresses (ULA)

Đối với các Organization có nhiều Sites, Prefix của SLA có thể bị trùng lặp. Có thể thay thể SLA bằng ULA (RFC 4193), ULA là địa chỉ duy nhất của một Host trong hệ thống có nhiều Sites với cấu trúc:

clip_image010

111 110 : 7 bits đầu là giá trị cố định FC00/7. L=0 : Local à Prefix =FC00 /8

Glocal ID : địa chỉ Site (Site ID). Có thể gán tùy ý

Subnet ID : địa chỉ Subnet trong Site

Với cấu trúc này, ULA sẽ tương tự GUA và khác nhau ở phần Prefix như sau :

clip_image012

e- Các địa chỉ đặc biệt (Special addresses)

Các địa chỉ đặc biệt trong IPv6 gồm :

0:0:0:0:0:0:0:0 : địa chỉ không xác định (Unspecified address)

0:0:0:0:0:0:0:1 : địa chỉ Loopback (tương đương IPv4 127.0.0.1)

IPv4-Cpompatible Address (IPv4CA) :

Format : 0:0:0:0:0:0:w.x.y.z Trong đó w,x,y,z là các IPv4 Address

Vd : 0:0:0:0:0:0:0:192.168.1.2

IPv4CA là địa chỉ tương thích của một IPv4/IPv6 Node. Khi sử dụng IPv4CA như một IPv6 Destination, gói tin sẽ được đóng gói (Packet) với IPv4 Header để truyền trong môi trường IPv4

IPv4-mapped address (IPv4MA)

Format : 0:0:0:0:0:FFFF:w.x.y.z (::FFFF:w.x.y.z) Trong đó w,x,y,z là các IPv4 Address

Vd : 0:0:0:0:0:FFFF:192.168.1.2

IPv4MA là địa chỉ của một IPv4 Only Node đối với một IPv6 Node, IPv4MA chỉ có tác dụng thông báo và không được dùng như Resource hoặc Destination Address

6to4 Address

Là địa chỉ sử dụng trong liên lạc giữa các IPv4/IPv6 nodes trong hệ thống hạ tầng IPv4 (IPv4 Routing Infrastructure). 6to4 được tạo bởi Prefix gồm 64 bits như sau :

Prefix = 2002/16 + 32 bits IPv4 Address =64 bits

6to4 Address là địa chỉ của Tunnel (Tulneling Address) định nghĩa bởi RFC 3056

5-Các loại IPv6 – Multicast Address

Multicast Address của IPv6 Node có họat động tương tự Maulticast trong IPv4. Một IPv6 Node có thể tiếp nhận tín hiệu của nhiều Multicast Address cùng lúc. IPv6 Node có thể tham gia hoặc rời khỏi một IPv6 Multicast Address bất kỳ lúc nào

Ví dụ về một số IPv65 Multicast Address được sử dụng :

FF01::1 (interface-local scope all-nodes multicast address)

FF02::1 (link-local scope all-nodes multicast address)

FF01::2 (interface-local scope all-routers multicast address)

FF02::2 (link-local scope all-routers multicast address)

FF05::2 (site-local scope all-routers multicast address)

Solicited-Node Address (SNA)

Là địa chỉ sủ dụng trong quy trình phân giải để cấp địa chỉ LLA (Link-Local Address) tự động cho các Node (tương tự quy trình tự cấp địa chỉ 169.254.X.X trong IPv4)

SNA có dạng : FF02:0:0:0:0:1:FF / 104 + 24 bits địa chỉ MAC

6-Các loại IPv6 – Anycast Address

Anycast Address có thể gán cho nhiều Interfaces, gói tin chuyển đến Anycast Address sẻ được vận chuyển bởi hệ thống Routing đến Interface gần nhất. Hiện nay, Anycast Address chỉ được dùng như Destination Address và gán cho các Router

IPv6 – Interface ID

Trong tất cả các loại địa chỉ nói trên đều có giá trị Interface ID dùng để xác định Interface. Giá trị Interface ID được xem xét và tạo nên theo các yếu tố sau :

– Xác định bởi Extended Unique Identifier (EUI)-64 Address (*) . EUI-64 Address có thể do gán hoặc kết hợp với MAC (physical) Address của Network Adapter (Window XP / Windows 2k3)

– Được gán tạm thời với giá trị ngẫu nhiên (**) (RFC 3041)

– Được tạo thành bởi Link-layer address hoặc Serial Number khi cấu hình Point-to-Point Protocol (PPP)

– Tự cấp (manual address configuration)

– Là một giá trị phát sinh ngẫu nhiên và gán thường trực cho Interface (Windows Vista / LogHorn)

Extended Unique Identifier (EUI)-64 Address (*)

EUI-64 Address xác định phưong thức tạo 64 bits Interface ID bằng cách kết hợp Mac Address của Network Adapter (48 bits) theo quy tắc như sau :

clip_image014

Mac Address = 6 nhóm 8 bits = 48 bits. Trong đó 24 bits là mã nhà sản xuất, 24 bits là mã số Adapter

Bước 1 : Tách đôi MAC Address làm 2 nhóm (mổi nhóm 24 bits), chèn vào giữa 16 bits giá trị FFFE

Bước 2 : Đảo ngược giá trị bit thứ 7 của nhóm đầu

Ví dụ : Network Adapter có MAC address = 00-AA-00-3F-2A-1C

Bước 1 à 00-AA-00-FF:FE-3F-2A-1C

Bước 2 à 02-AA-00-FF-FE-3F-2A-1C à Interface ID = 02AA:00FF:FE3F:2A1C (64 bits)

TRIỂN KHAI ISA FIREWALL CHO HỆ THỐNG DOANH NGHIỆP – PHẦN 3: VPN CLIENT TO GATEWAY

VPN (Virtual Private Network) là giải pháp hữu hiệu để kết nối các hệ thống mạng của doanh nghiệp có nhiều chi nhánh và nằm khác vị trí địa lý hoặc doanh nghiệp của bạn có nhiều nhân viên phải thường xuyên đi công tác xa và họ muốn truy cập vào tài nguyên mạng nội bộ. Để đáp ứng các nhu cầu trên,trong phần 3 này tôi sẽ trình bày cách cấu hình VPN Client to Gateway thông qua ISA Server 2006

Mo_hinh_ISA

Bài lab bao gồm các bước:

1. Cấu hình VPN Client to Gateway trên máy ISA Server

2. Tạo access rule cho phép kết nối VPN


3. Cấu hình NAT Inbout trên Router ADSL


4. Kiểm tra kết nối VPN

Nội dung bài LAB

FOREVER

Download : http://cid-aff6754ac8fede08.skydrive.live.com/self.aspx/Music/Forever.swf

Quá khứ đã là quá khứ làm sao quá khứ có thể quay lại khi thời gian đã trôi qua… Có còn lại chăng đi nữa chỉ là những kỉ niệm về ngày xưa ,ngày mà tôi còn vô tư với tuổi thơ của mình…Tôi nghe bài này đã lâu lắm rồi nhưng không nghĩ nó lại là một bản Ballad hay đến thế, cứ như là giấc mơ. Đêm nay sao tôi nhớ về ngày xưa quá..

"I stand alone in the darkness
the winter of my life came so fast
memories go back to my childhood
to days I still recall
Oh how happy I was then
there was no sorrow there was no pain
walking through the green fields
sunshine in my eyes"

(Tôi đứng giữa bóng tối của mùa đông cô đơn lạnh lẽo..tôi là những bức tranh của kí ức ngày xưa trở về tới thời thơ ấu của tôi…và mãi sẽ vẫn còn gọi về..)
(Ôi việc tôi đã hoàn thành ở đó đã hạnh phúc như thế nào..không có nỗi đau đớn nào khi ở đó ..Không có 1 chút nỗi đau nào khi đi qua cánh đồng nắng chang chang và xanh ngát trong đôi mắt của tôi…)

Tôi vẫn đứng đây và chờ… Cho dù bây giờ không có em..Tôi ước gì mình chỉ là hạt cát nhỏ kia để được bên em..Tôi ước gì mình là ngôi sao sáng trên bâu trời kia để được nhìn thấy em…..Dù cho đi đến đâu,dù ở đó tôi có hạnh phúc bao nhiêu đi nữa cũng không thể bằng khi ngày xưa,và tôi chẳng thể ở lại đó….tôi chỉ muốn về đây ..Về trở lại những ngày xưa đó..Tôi chỉ là cơn gió thoáng qua mái tóc của em… Chỉ khẽ rung chiếc lá ngày xưa mà chúng ta đã từng cầm ..Và em có còn chờ tôi mãi mãi…?

"I”m still there everywhere
I”m the dust in the wind
I”m the star in the northern sky
I never stayed anywhere
I”m the wind in the trees
would you wait for me forever "
(Tôi còn là ở đó khắp nơi..
Tôi còn là bụi trong những cơn gió
Tôi là ngôi sao trong bầu trơi bắc
Tôi không bao giờ ở lại bất cứ nơi đâu
Tôi là cơn gió đi qua những cây kia
Bạn sẽ đợi tôi mãi mãi? )

Bài hát khi lắng nghe đã thấy buồn..Nhưng khi cầm lời dịch của bài hát trong tay tôi mới hiểu vì sao mà bài hát buồn như thế..Đó có phải là kí ức về tuổi thơ ,về mối tình đầu…Hãy giữ mãi mãi trong tim cho dù ngày mai có ra sao đi nữa, tôi vẫn nhớ mãi mãi…

forever

Forever
(Stratovarius)

I stand alone in the darkness
the winter of my life came so fast
memories go back to childhood
to days I still recall
Oh how happy I was then
there was no sorrow there was no pain
walking through the green fields
sunshine in my eyes
Im still there everywhere
Im the dust in the wind
Im the star in the northern sky
I never stayed anywhere
Im the wind in the trees
would you wait for me forever ?

forever_mine

Mãi mãi

Tôi đứng một mình trong bóng tối
Tuổi già mới đến nhanh làm sao
Khi nghĩ về thưở ấu thơ
Đến tận bây giờ tôi vẫn nhớ
Khi đó mới hạnh phúc biết bao
Ko có những fiền muộn hay nỗi đau
Đi ngang qua những cánh đồng xanh
Ánh mặt trời lấp lánh trong mắt
Tôi vấn sẽ đi khắp mọi nơi
Tôi như hạt bụi trong gió
Tôi như ngôi sao trên bầu trời fương bắc
Tôi sẽ ko bao giờ dừng chân
Và tôi như ngọn gió lướt qua thật nhanh
Em sẽ mãi đợi tôi ko??

Introduction to Cryptography (Hashes – Digital Signatures)

HASH1

Ở đây không phải tôi muốn trình bày về các chuyện làm loạn thần kinh2. Các thuật toán hash rất thường được sử dụng trong khoa học máy tính, và dường như là giải pháp thông dụng nhất để tăng tốc quá trình xử lý index trong các database hoặc các mảng dữ liệu lớn. Mặc dù chúng phổ dụng như thế, nhưng nhiều người vẫn không biết hash là cái quỷ gì. Trước khi chúng ta có thể bàn về chữ ký điện tử (digital signatures), bạn cần phải tìm hiểu về hash.

Thuật toán hash sẽ lấy ra một khối dữ liệu lớn và tinh giản nó thành một fingerprint 3, hay còn gọi là digest 4 của dữ liệu ban đầu. Nếu bạn đang là một khoa học gia máy tính, xin bạn vui lòng bỏ qua một hoặc hai đoạn tiếp theo đây, vì e rằng các mô tả về hash của tôi sẽ làm bạn chán. Tôi nghĩ rằng đưa ra hai ví dụ sau đây là cách đơn giản nhất để giải thích về thuật toán hash.

Một là, nếu tôi đưa cho bạn con số 483.820 và bắt bạn phải chia cho 4, bạn sẽ báo kết quả là 120.955. Như vậy, ta nói 120.955 là fingerprint của phép toán (483.820 / 4). Dù bạn có làm bài toán này bao nhiêu lần đi nữa, thương số vẫn sẽ là 120.955. Nhưng nếu bạn thay bất kỳ số hạng nào trong bài toán này bằng một con số khác, thương số sẽ không còn là 120.955 nữa.

Nhưng nếu tôi trao cho bạn con số 120.955 và không cho bạn biết thêm một thông tin nào khác, bạn sẽ không thể nói chắc chắn với tôi phép toán nguyên thủy là gì, vì rằng có một số vô hạn các phép chia có thể có thương số là 120.955.

Trên nhiều phương diện, các đặc điểm vừa nêu rất giống với những điều có liên quan đến thuật toán hash. Để hash, bạn sẽ lấy ra một khối dữ liệu lớn và tiến hành tính toán một phép tính nào đó trên toàn bộ khối dữ liệu đó. Kết quả thu được sau khi hash sẽ là một giá trị nhỏ hơn dữ liệu nguyên thủy. Nếu bạn thay đổi dữ liệu nguyên thủy, dù chỉ một bit thôi, giá trị hash được sẽ khác đi. Cũng như phép chia vừa nêu ở trên, sẽ có rất nhiều tập hợp dữ liệu khác nhau cùng tính ra chung một giá trị hash.

Hai là tôi muốn nói đến giá trị CRC (cyclic redundancy check)5. Giá trị này thường được gắn vào sau đa số các message khi chúng đi trên đường truyền.

CRC

Ảnh 1 : CRC

Khi message sắp được gửi lên đường truyền, thường sẽ có một đa thức duyệt qua tất cả các byte của message. Đa thức này sẽ cho kết quả là mã CRC (CRC code). Mã này sẽ được gắn vào sau message rồi gửi đi. Khi message đến đích, hệ thống ở nơi nhận sẽ duyệt bằng cùng một đa thức qua toàn bộ message (dĩ nhiên là trừ CRC nguyên thủy) và thu được bản CRC thứ hai (ta gọi là CRC’ như trong hình). Sau đó phần mềm sẽ so sánh CRC’ với CRC nguyên thủy. Nếu hai CRC trùng nhau, ta có thể tin chắc rằng message đã không hề bị sửa đổi khi gửi qua mạng.

CRC hoạt động như một fingerprint hay một digest của message, dùng để kiểm tra lại message khi nhận. Nhiều message có thể sản sinh ra cùng một giá trị CRC, và nếu chỉ một bit của message bị thay đổi, giá trị CRC sẽ thay đổi. CRC phô bày tất cả các thuộc tính tương đồng với các thuộc tính của hash.

Các thuật toán hash được dùng trong mã hóa đều được thiết lập với một số thuộc tính đặc biệt sau:

– Bạn không thể cho hash duyệt ngược để tìm lại bất kỳ clear text 6 nguyên thủy nào.

– Digest được tạo ra sẽ không thể cho bạn biết bất kỳ điều gì về clear text nguyên thủy.

– Không thể tính toán để tạo lại clear text được từ một giá trị cụ thể đã hash ra. Điều này làm cho khi attacker tráo văn bản sẽ gây ra việc không trùng khớp digest.

Có nhiều thuật toán hash để mã hóa. MD2 là thuật toán hash của nhóm RSA7, tạo digest 128 bit dùng tốt cho bộ vi xử lý cấp thấp 8 bit. MD5 cũng tạo ra digest 128 bit, dùng tốt cho bộ xử lý 32 bit. Thuật toán hash SHA-1 cũng dùng tốt cho các bộ xử lý cao cấp và tạo ra digest 160 bit.

 

Ghi chú:

Trong thực tế, các đa thức tạo CRC sẽ được xây dựng theo cách sao cho khi hệ thống ở nơi nhận duyệt bằng cùng một đa thức, sẽ không chỉ duyệt trên phần message, mà cả trên phần CRC nguyên thủy được đính kèm. Nếu message chưa bị xâm hại, CRC sẽ “cancel”việc tính toán một cách ngon lành và kết quả duyệt lần này của đa thức sẽ được gán bằng 0. Nếu có bất kỳ bit nào trong message hoặc CRC bị thay đổi, kết quả cho ra của đa thức sẽ khác 0. Điều này làm cho việc kiểm tra tính toàn vẹn (intergrity) của message trở nên nhanh chóng mà không phải dùng đến một phép toán so sánh hiện (explicit compare operation).

 

CHỮ KÝ ĐIỆN TỬ (Digital Signatures)

Bây giờ bạn đã là chuyên gia về thuật toán hash, hãy xem xem ta dùng chúng cách nào. Trong ví dụ này, tôi muốn thay đổi bài toán của chúng ta một chút. Hãy giả định rằng ở mục này tôi lại không quan tâm việc có ai đọc trộm Bí kíp nấu ăn của Bà Cụ (BKNA) hay không. Nếu vậy, BKNA có thể được gửi đi như một clear text. Việc để cho BKNA ở dạng clear text sẽ làm đơn giản hóa về mặt hình ảnh và sẽ cho phép ta tập trung hơn vào việc xử lý chữ ký điện tử.

Tuy nhiên, tôi rất muốn bảo đảm rằng BKNA là phải do chị tôi gửi đến. Tôi rất muốn ngăn ngừa một vấn đề đã từng được giải thích trước đây, đó là một hacker nào đó cố tình giúi cho tôi một BKNA khác.

Ở ảnh 2 trình bày thuật toán hash như một cái phễu. Bản clear text lớn sẽ được cho đi qua phễu và dưới phễu ta sẽ thu được digest.

Tao_chu_ki_dien_tu

Ảnh 2 : Tạo chữ ký điện tử

Như trong hình minh họa, ta bắt đầu với BKNA ở dạng clear text. Tại đây một thuật toán hash thích hợp đã được chọn để xử lý clear text BKNA , tạo ra một digest. Tiếp theo, key riêng của người gửi sẽ được dùng để mã hóa digest này. Digest đã mã hóa sẽ được gắn vào với clear text BKNA nguyên thủy và gửi đến người nhận qua đường Internet.

Kiem_tra_1_chu_ki_dien_tu

Ảnh 3 : Kiểm tra một chữ ký điện tử

————-

1 [hash] băm; (làm cho, mớ) lộn xộn.

2 Neuro-toxic substances

3 dấu tay-nên hiểu là cái đặc trưng-ND

4 bảng tóm tắt, bảng liệt kê

5 công cụ kiểm tra tính dư thừa tuần hoàn-nên hiểu là công cụ kiểm tra tính toàn vẹn của dữ liệu, và có thể dùng đi dùng lại nhiều lần-ND

6 bạch văn-văn bản đọc được, chưa bị mã hóa

7 Nhóm 3 người ở Học viện Kỹ thuật MIT (Rivest, Shamir và Adleman) đã sáng tạo ra thuật toán mã hóa công khai.

————-

Tài liệu tham khảo : PKI Implementing and Managing E-Security (Andrew Nash, William Duane, Celia Joseph, and Derek Brink)

Hacking Techniques for Attacks (Part 4)

Hacking Techniques for Attacks (Những kỹ thuật hacker thường dùng với mục đích tấn công)

Các hacker hoàn toàn có thể trút hết cơn tàn phá mà không cần thiết phải chui vào trong hệ thống của bạn. Ví dụ, một hacker có thể đánh sụm máy chủ của bạn bằng cách cho máy bạn tràn ngập các tín hiệu khó chịu (obnoxious signal) hoặc tràn ngập các đoạn mã có hại (malicious code). Kỹ thuật này được gọi là tấn công từ chối dịch vụ (DoS – Denial of Service).

Các hacker sẽ tiến hành một cuộc tấn công DoS theo một trong hai phương pháp, cả hai phương pháp này đều khả thi. Phương pháp thứ nhất là làm tràn ngập máy tính mục tiêu bằng luồng thông tin áp đảo. Phương pháp thứ hai là gửi lệnh lừa đảo tuyệt khéo (well-crafted command) hoặc gửi dữ liệu sai (erroneous data) có thể làm sụm máy tính mục tiêu.

Một vài kỹ thuật hacker thường dùng với mục đích tấn công mà tôi giới thiệu trong bài viết này :

– Làm tràn ngập bằng SYN (SYN Flooding)

– Xì trum tấn công (Smurf Attacks)

– Làm quá tải hệ thống (System Overloads)

– Lừa đảo DNS (DNS Spoofing)

 

Phần 4 : Lừa đảo DNS (DNS Spoofing)

Có những kiểu tấn công DoS khác lại hoạt động gián tiếp. Những kiểu tấn công này thường không tập trung vào server mà thay vào đó, mục tiêu sẽ là client. Trong trường hợp này, máy tính client sẽ bị đánh lừa về nơi mà nó muốn đi lấy thông tin. Ví dụ, nếu bạn nghĩ rằng máy tính của bạn sẽ đi đến www.yahoo.com, nhưng hóa ra lại đi đến trang na ná như Yahoo! của hacker, thì có thể vô tình bạn đã cung cấp cho hacker password và những thông tin cá nhân của mình.

Bình thường, một máy tính client sẽ dùng query để hỏi DNS server, khi nó muốn đổi một tên domain hay một địa chỉ trang Web ra thành một địa chỉ IP. Có chuyện này, bởi vì máy tính client cần địa chỉ IP để định vị Web server hay email server dùng tên domain nó đang quan tâm. Quá trình này được tiến hành qua ba bước như sau :

1.Client hỏi DNS server địa chỉ IP ứng với tên domain là bao nhiêu.

2. DNS server sẽ dùng các query để tên domain đã được hỏi.

3. Client kết nối với Web server theo địa chỉ IP đã được DNS server cung cấp.

Domain_Name_System

Ảnh 5 : Hệ thống Domain Name (Domain Name System)

Tuy vậy, quá trình này có thể dễ dàng bị lợi dụng để đẩy các user cả tin đến những trang Web tầm bậy, hoặc hướng dẫn email đi (outgoing email) phải đi qua những máy tính bất lương. Việc này được thực hiện bằng cách ghi các địa chỉ IP sai vào database của DNS server . Khi điều này xảy ra, hầu như client không thể nhận ra được là đang có vấn đề. Khả năng bại lộ duy nhất chỉ có khi các entry của DNS sever được kiểm tra một cách đặc biệt, hoặc server của hacker bị down.

DNS_gia_mao

Ảnh 6 : DNS giả mạo

Trong trường hợp một entry của DNS server bị hack, chỉ có những email đi mới bị gửi đến khu vực lừa đảo, trừ phi mail server sử dụng cùng một DNS server với client. Trong trường hợp tệ hại như thế, cả email đi lẫn email đến (incoming email) đều bị hướng dẫn phải đi qua một máy tính bất lương. Tuy nhiên, trong ví dụ của chúng ta, giả định rằng mail server đang dùng một DNS server rất an ninh để phân giải tên các domain.

Trong trườnghợp DNS server bị hack thì :

1. Client B hỏi địa chỉ IP của “youremail.com”

2. DNS server đã bị hack sẽ trả lời lại một địa chỉ IP đã bị giả mạo là 192.168.0.10

3. Client B kết nối với mail server giả mạo và gửi mail đi.

4. Server giả mạo sẽ tạo bản email copy rồi gửi đến mail server thật.

5. Mail server thật-dùng một DNS server an ninh-sẽ gửi mail đến client như bình thường.

Kịch bản như trên có thể sẽ cung cấp cho hacker một số thông tin có giá trị. Ví dụ như, nếu client B là một bác sĩ hay một luật sư, hacker sẽ có thể truy xuất các hồ sơ nhạy cảm. Nếu client B đang làm việc trong một dự án tối mật, hacker có thể bán các thông tin cho một công ty cạnh tranh. Hoặc nếu như client đang được dùng như một trang Web bán hàng trực tuyến, hacker có thể chộp được từng email xác nhận (confirmation email), trong đó có đầy đủ địa chỉ khách hàng hoặc/và số của thẻ tín dụng.

Như bạn cũng thấy, một màn lừa đảo DNS có khả năng phá hoại rất rộng lớn. Khi hacker muốn biến mất một trang Web hay muốn chộp các email, hắn ta chỉ việc từ chối dịch vụ những ai dùng trúng DNS server đã bị hack. Tuy nhiên cũng có một cách giải quyết vấn đề này.

Các DNS server có thể được cấu hình sao cho an ninh hơn. Thực tế đánh giá cho thấy có khoảng một nửa đến ba phần tư số DNS server là chẳng có an ninh gì cả. Đây là vấn đề đã biết, vì vậy nếu bạn quan ngại rằng có khả năng các DNS server của bạn cũng chẳng an ninh, hãy tiếp xúc với ISP (Internet Service Provider : nhà cung cấp dịch vụ Internet) của mình và phỏng vấn họ về những software họ đã dùng; cũng như có an toàn không nếu bị tấn công theo kiểu lừa đảo. Hy vọng rằng, họ sẽ biết bạn đang nói về cái gì và sẽ cho bạn các câu trả lời xác đáng.

Qua 4 phần của bài viết này tại DaoDuyHieu’s Blog, tôi vừa giải thích một số cách hacker dùng để vô hiệu hoá hoặc làm sụp đổ các hệ thống tiêu mà không cần phải xâm nhập. Với các kỹ thuật làm tràn ngập kết nối giả mạo, làm sụp đổ do tràn bộ nhớ đệm hay lừa đảo DNS, các hacker có thể làm cho cuộc sống của bạn trở nên khốn đốn. Hơn nữa, mặc dù trong những kiểu tấn công này, hacker không thể xâm nhập được, nhưng nếu chúng được dùng kết hợp với những kiểu tấn công khác, các hacker có thể chiếm được quyền truy cập trái phép. Ví dụ, một hacker có thể sẽ nã dồn dập (hammer) firewall của bạn, đảm bảo giữ cho firewall của bạn trở nên quá bận bịu với việc sắp xếp các dữ liệu để trả lời vô ích. Điều này về lý thuyết đã cho phép hacker truy cập thoải mái hệ thống của bạn.

Về mặt thống kê mà nói, có nhiều khả năng tấn công những máy khác, hơn là tấn công máy tính của bạn như một mục tiêu. Tuy vậy, cũng có điều an ủi nho nhỏ. Nhiều user thích trực diện chiến đấu với các cuộc tấn công hơn là trở thành một nô lệ. May thay, bây giờ bạn đã có đủ kiến thức để hiểu cái gì xảy ra ở sau sân khấu. Các bài tiếp theo của mình sẽ được xây dựng từ những hiểu biết này sẽ cho phép bạn tự phòng thủ hiệu quả hơn và sẽ cập nhật tại DaoDuyHieu’s Blog, các bạn đón theo dõi nha.

Hacking Techniques for Attacks (Part 3)

Hacking Techniques for Attacks (Những kỹ thuật hacker thường dùng với mục đích tấn công)

Các hacker hoàn toàn có thể trút hết cơn tàn phá mà không cần thiết phải chui vào trong hệ thống của bạn. Ví dụ, một hacker có thể đánh sụm máy chủ của bạn bằng cách cho máy bạn tràn ngập các tín hiệu khó chịu (obnoxious signal) hoặc tràn ngập các đoạn mã có hại (malicious code). Kỹ thuật này được gọi là tấn công từ chối dịch vụ (DoS – Denial of Service).

Các hacker sẽ tiến hành một cuộc tấn công DoS theo một trong hai phương pháp, cả hai phương pháp này đều khả thi. Phương pháp thứ nhất là làm tràn ngập máy tính mục tiêu bằng luồng thông tin áp đảo. Phương pháp thứ hai là gửi lệnh lừa đảo tuyệt khéo (well-crafted command) hoặc gửi dữ liệu sai (erroneous data) có thể làm sụm máy tính mục tiêu.

Một vài kỹ thuật hacker thường dùng với mục đích tấn công mà tôi giới thiệu trong bài viết này :

– Làm tràn ngập bằng SYN (SYN Flooding)

– Xì trum tấn công (Smurf Attacks)

– Làm quá tải hệ thống (System Overloads)

– Lừa đảo DNS (DNS Spoofing)

 

Phần 3 : Làm quá tải hệ thống (System Overloads)

Một kiểu tấn công DoS khác là tấn công các phần mềm đang chạy trên máy tính mục tiêu. Trong các chương trình máy tính, cứ trung bình khoảng 1000 dòng lệnh sẽ có một lỗi (glitch, bug), mà một chương trình thì có thể dài đến cả tỉ dòng, như vậy số lỗi có thể sẽ lên đến cả trăm, cả ngàn. Nếu một hacker biết cách khai thác các lỗi đặc biệt này, anh ta có thể đánh gục được máy tính mục tiêu. Ví dụ, trong một chương trình mua hàng trực tuyến nổi tiếng, người ta đã phát hiện được một lỗi về lập trình có thể làm cho tải của bộ xử lý trung tâm tăng vọt lên đến 100%, như thế cũng có nghĩa là không chương trình nào khác có thể chạy được nữa. Lúc đó chỉ cần gửi đến một yêu cầu đơn giản có dạng chính thức “http://” là có thể cho server mục tiêu sụm bà chè.

Kiểu tấn công này cũng giống như tháo nắp lọ muối. Bình thường, lọ muối hoạt động rất tốt. Nhưng nếu có ai đó hiểu rõ cấu tạo của lọ muối và bí mật tháo lỏng nắp của nó ra. Thế là ô la la, dĩa của bạn ngập đầy muối mặn đắng.

Kiểu tấn công DoS này thường được dùng để khai thác cùng với một vụ làm tràn bộ nhớ đệm. Những kỹ thuật hacker thường dùng để truy cập trái phép (Hacking Techniques for Unauthorized Access), hacker có thể làm tràn bộ nhớ đệm như là một mánh khóe để ép máy tính phải chạy một chương trình bất hảo. Tuy nhiên, kiểu truy xuất này nói chung là khó dùng, bởi vì làm tràn bộ nhớ đệm thường sẽ làm cho máy tính sụm luôn. Như đã giải thích ở phía trước, đoạn chương trình làm tràn sẽ nạp đầy vào một đoạn bộ nhớ đã được xác định trước, sau đó sẽ làm tràn vùng nhớ bên trên, như thế sẽ ghi đè lên dữ liệu của các biến bộ nhớ khác. Lúc đó, nếu có một chương trình nào cần lấy dữ liệu, sẽ đi truy xuất đúng vào các biến bộ nhớ đã bị ghi đè, thế là chương trình “tưng” luôn, và thường là sẽ kéo theo cả máy tính “tưng” luôn cùng với nó.

Các vụ tấn công DoS là mối đe dọa không chỉ đối với các công ty, doanh nghiệp lớn, mà cả đối với các văn phòng nhỏ và người dùng tại nhà. Hiện có sẵn hằng hà sa số các chương trình có thể cho bất kỳ ai khả năng làm tràn một mục tiêu. Chỉ một cái click chuột đơn giản là có thể đổ ầm ầm hàng trăm gói tin SYN xuống thẳng đầu nạn nhân. Nếu bạn nghi là bị tấn công bằng kiểu từ chối dịch vụ, bạn có thể dùng tool NETSTAT để xác định có bị tấn công hay không. Dùng tool này sẽ thấy hiện lên rõ ràng vụ tấn công nếu có. Trong hình dưới trình bày một kết quả của tool NETSTAT cho thấy có một cuộc tấn công SYN. Các dòng ở cột State cho thấy rất rõ hiện đang có một vụ tấn công SYN diễn ra ngầm bên dưới.

SYN_RECV

Ảnh 4 : Các kết nối Internet hiện có (kể cả các server)

Như bạn cũng có thể thấy, các cuộc tấn công DoS cũng không đến nỗi phức tạp lắm. Vì rằng, một hacker có thể dễ dàng tìm được các chương trình tấn công có sẵn, cho nên các cuộc tấn công này cũng đâm ra rất phổ biến. Đến đây có thể bạn sẽ hỏi, “Làm sao để ta có thể ngăn chận các cuộc tấn công DoS?”. Thật đáng tiếc là đến nay cũng chưa thể ngăn chận triệt để các cuộc tấn công như thế.

Vì rằng các cuộc tấn công này dựa trên nguyên lý cơ sở để các máy tính xây dựng nên các liên lạc với nhau, cho nên cách duy nhất để chấm dứt những chuyện bậy bạ này là đi sáng chế ra lại một Internet mới. Đến nay cách thức thực tế duy nhất để làm giảm bớt các cuộc tấn công như vậy là chặn (block) tất cả các traffic đến từ một số vùng đặc biệt của Internet. Dù sao, như chúng tôi đã giải thích, các hacker thường có rất nhiều máy tính nô lệ, thường nằm trong các mạng của các trường đại học hay của các công ty. Nếu một server cấm cửa đối với một địa chỉ rõ ràng đã gây ra vụ tấn công, cũng đồng nghĩa là server này cấm mọi người ở hướng đó truy cập mình. Điều này sẽ giống như đặt một chế độ kiểm dịch lên toàn thành phố chỉ vì một người duy nhất trong thành phố bị bệnh thủy đậu.

Hacking Techniques for Attacks (Part 2)

Hacking Techniques for Attacks (Những kỹ thuật hacker thường dùng với mục đích tấn công)

Các hacker hoàn toàn có thể trút hết cơn tàn phá mà không cần thiết phải chui vào trong hệ thống của bạn. Ví dụ, một hacker có thể đánh sụm máy chủ của bạn bằng cách cho máy bạn tràn ngập các tín hiệu khó chịu (obnoxious signal) hoặc tràn ngập các đoạn mã có hại (malicious code). Kỹ thuật này được gọi là tấn công từ chối dịch vụ (DoS – Denial of Service).

Các hacker sẽ tiến hành một cuộc tấn công DoS theo một trong hai phương pháp, cả hai phương pháp này đều khả thi. Phương pháp thứ nhất là làm tràn ngập máy tính mục tiêu bằng luồng thông tin áp đảo. Phương pháp thứ hai là gửi lệnh lừa đảo tuyệt khéo (well-crafted command) hoặc gửi dữ liệu sai (erroneous data) có thể làm sụm máy tính mục tiêu.

Một vài kỹ thuật hacker thường dùng với mục đích tấn công mà tôi giới thiệu trong bài viết này :

– Làm tràn ngập bằng SYN (SYN Flooding)

– Xì trum tấn công (Smurf Attacks)

– Làm quá tải hệ thống (System Overloads)

– Lừa đảo DNS (DNS Spoofing)

 

Phần 2 :  Xì trum tấn công (Smurf Attacks)

Một biến thể của tấn công DoS gây tràn ngập là tấn công kiểu Smurf (*). Bạn hãy tưởng tượng một công ty nọ có năm mươi nhân viên chuyên giải đáp thắc mắc của khách hàng bằng email. Mỗi nhân viên này dùng một chương trình trả lời tự động không giới hạn, chương trình này sẽ tự động gửi các mail trả lời lịch sự khi nhận được câu hỏi. Điều gì sẽ xảy ra, nếu có một khách hàng vì bực bội đã gửi một trăm bản email copy cho mỗi người trong số năm mươi nhân viên nói trên, với địa chỉ email trả về (return address) giả mạo? Lúc đó một trăm email đến sẽ làm phát sinh… năm ngàn email đi, mà lại đi tới chỉ… một mailbox duy nhất. Vô phúc cho ai sở hữu địa chỉ bị ông khách hàng quý hóa kia lấy làm địa chỉ giả mạo, mailbox của anh ta sẽ tràn ngập những mail là mail! Điều đau khổ của khổ chủ là phải ngồi duyệt hết đống xà bần đó, để bảo đảm là không bỏ sót một email quan trọng nào do xếp hoặc bạn bè mình gửi đến, hix hix. Tấn công kiểu Smurf cũng tương tự như ví dụ vừa nêu. Kẻ tấn công sẽ gửi một tín hiệu yêu cầu đến một mạng nhiều máy tính, và tất nhiên là mỗi máy tính trong mạng đều sẽ trả lời cho một địa chỉ giả mạo. Các chương trình đặc biệt kết hợp một số kỹ thuật khác sẽ khuếch đại chuyện này cho đến khi một cơn lũ thông tin ập đổ xuống đầu một máy tính tội nghiệp.

Smurf

Ảnh 3: Các tấn công DoS có thể phá hủy ảo cả một hệ thống máy tính.

Như bạn đã biết, một máy tính sẽ bỏ qua tất cả các gói tin không có địa chỉ rõ ràng chính xác. Có một ngoại lệ cho chuyện này nếu máy tính dùng loại card mạng chạy ở mode ngẫu nhiên (promiscuous). Tuy nhiên, có một ngoại lệ khác nữa mà chúng ta vẫn chưa bàn tới.

Công ty của bạn sẽ làm gì nếu muốn chuyển một thông báo quan trọng tới tất cả mọi người trong công ty? Nếu email là một trong các khả năng, công ty sẽ gửi một spam mail nội bộ tới mọi thành viên có địa chỉ email. Mặt khác, công ty có thể thông báo trên hệ thống loa. Hoặc họ có thể đặt một bảng thông báo gần máy bán cà phê tự động. Tất cả những kỹ thuật vừa nêu chỉ nhằm đảm bảo cho hầu hết nhân viên đều có thể nhận được thông tin. Cũng tương tự như vậy trong một mạng máy tính, có rất nhiều lúc server cần gửi thông tin đến từng máy tính thành viên trong mạng. Điều này được hoàn tất bằng cách sử dụng địa chỉ broadcast.

Do cách xây dựng địa chỉ IP bên trong một mạng, luôn luôn có một địa chỉ mà mỗi máy tính đều sẽ trả lời. Địa chỉ này được gọi là địa chỉ broadcast và thường được dùng để cập nhật các danh sách tên và những mục cần thiết khác mà các máy tính đều cần để giữ cho mạng tồn tại và hoạt động được. Mặc dù địa chỉ broadcast là cần thiết trong một số trường hợp, nhưng nó cũng có thể đưa tới cái gọi là cơn bão broadcast.

Một cơn bão broadcast cũng tương tự như một tiếng vọng không bao giờ mất. Còn đặc biệt hơn nữa, nó giống như một tiếng vọng nhưng lại mạnh dần lên cho đến khi bạn không còn có thể nghe thấy gì nữa vì quá ồn. Nếu một máy tính gửi đi một yêu cầu đến hệ thống mạng nhưng lại dùng địa chỉ broadcast và địa chỉ trả về cũng là địa chỉ broadcast thì từng máy tính trong mạng sẽ đáp ứng đến từng lời đáp ứng của máy tính khác; chuyện này tiếp tục diễn ra theo hiệu ứng quả cầu tuyết (**) cho đến khi toàn mạng đầy những gói tin echo khiến cho chẳng còn gì có thể gửi qua được nữa.

Bây giờ bạn đã hiểu cách thức làm việc của broadcast, hãy tưởng tượng cái gì xảy ra nếu một hacker gửi một ngàn gói tin broadcast đến mạng của chúng ta và hắn lại dùng địa chỉ IP trả về giả mạo (Spoofed Return IP Address). Mạng chắc chắn sẽ khuếch đại các gói tin ban đầu lên thành mười ngàn hoặc trăm ngàn gói tin và tống tất tần tật đến một máy tính vô tội bị giả địa chỉ.

Trong trường hợp này, không giống như kiểu tấn công SYN, máy tính mục tiêu vẫn có thể xây dựng một chầu kết nối với máy tính phát yêu cầu. Tuy nhiên, sự tăng quá mức của các yêu cầu kết nối sẽ làm cho server ngập đầu ngập cổ, và như thế là server trở nên vô dụng.

Những kiểu tấn công này không chỉ quất sụm server một cách nhanh chóng và hiệu quả, mà còn giữ cho hacker trở nên vô hình. Với bản chất của cuộc tấn công như vậy, sẽ không thể lần ra được gói tin nguyên thủy do hacker gửi. Trong trường hợp tấn công bằng SYN, địa chỉ phải là địa chỉ bịp. Như thế, điểm xuất phát nguyên thủy của gói tin cũng coi như không thể biết được. Trong trường hợp tấn công kiểu smurf, hacker sẽ không trực tiếp tấn công mục tiêu, mà thay vào đó là dùng hiệu ứng phụ của việc gửi tín hiệu broadcast đến mạng để thực hiện âm mưu một cách gián tiếp. Như thế cuộc tấn công xuất hiện như đến từ hệ thống mạng khác hoặc máy tính khác.

———-

(*) Smurf là tên software lần đầu tiên áp dụng thành công kỹ thuật gây tràn ngập bằng các gói tin broadcast và ping. Tên này lấy theo các nhân vật truyện tranh của họa sĩ người Bỉ Peyo, bản dịch ở Việt Nam gọi là xì trum, gồm 101 chú nhóc bé tí da màu xanh. Bạn có thể xem chi tiết tại:

http://en.wikipedia.org/wiki/Smurf

http://en.wikipedia.org/wiki/Smurf_attack

http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci213012,00.html

(**) Chắc bạn không lạ gì hiệu ứng này, khi lăn theo sườn dốc phủ đầy tuyết thì đầu tiên chỉ là một nắm tuyết, nhưng đến chân dốc lại là một quả cầu tuyết khổng lồ.

Hacking Techniques for Attacks (Part 1)

Hacking Techniques for Attacks (Những kỹ thuật hacker thường dùng với mục đích tấn công)

Các hacker hoàn toàn có thể trút hết cơn tàn phá mà không cần thiết phải chui vào trong hệ thống của bạn. Ví dụ, một hacker có thể đánh sụm máy chủ của bạn bằng cách cho máy bạn tràn ngập các tín hiệu khó chịu (obnoxious signal) hoặc tràn ngập các đoạn mã có hại (malicious code). Kỹ thuật này được gọi là tấn công từ chối dịch vụ (DoS – Denial of Service).

Các hacker sẽ tiến hành một cuộc tấn công DoS theo một trong hai phương pháp, cả hai phương pháp này đều khả thi. Phương pháp thứ nhất là làm tràn ngập máy tính mục tiêu bằng luồng thông tin áp đảo. Phương pháp thứ hai là gửi lệnh lừa đảo tuyệt khéo (well-crafted command) hoặc gửi dữ liệu sai (erroneous data) có thể làm sụm máy tính mục tiêu.

Một vài kỹ thuật hacker thường dùng với mục đích tấn công mà tôi giới thiệu trong bài viết này :

– Làm tràn ngập bằng SYN (SYN Flooding)

– Xì trum tấn công (Smurf Attacks)

– Làm quá tải hệ thống (System Overloads)

– Lừa đảo DNS (DNS Spoofing)

 

Phần I : Làm tràn ngập bằng SYN (SYN Flooding)

Kiểu tấn công DoS thứ nhất là làm tràn ngập bằng tín hiệu SYN. Một vụ tấn công SYN sẽ bắt buộc các tài nguyên của máy tính mục tiêu ngừng hoạt động, bằng cách ép chúng phải đáp ứng một cơn lũ các lệnh. Để có thể hiểu được điều này, hãy tưởng tượng bạn đang làm thư ký trong một công ty, nhiệm vụ của bạn là trả lời và chuyển các cuộc gọi điện thoại. Cái gì sẽ xảy ra nếu cùng lúc có hai trăm người gọi đến và đều cúp máy khi bạn bắt máy trả lời? Bạn sẽ rất bận rộn để bắt cho hết các cuộc điện thoại tào lao này (làm sao dám bỏ một cuộc gọi nào), và chắc chắn bạn sẽ không thể làm xong bất kỳ công việc nào khác. Cuối cùng bạn sẽ khóc rưng rức, sẽ khùng luôn và chắc chắn phải “say goodbye” với cái ghế thư ký khốn khổ đó. Hacker sẽ dùng một kỹ thuật giống như vậy khi họ triển khai một vụ tấn công DoS.

SYN_Flooding

Ảnh 1 : Ví dụ minh họa tấn công từ chối dịch vụ (DoS) bằng điện thoại.

Để tiến hành một vụ tấn công DoS, đầu tiên hacker phải xác định được địa chỉ IP của mục tiêu. Sau đó, hacker sẽ dùng địa chỉ IP này để kết nối vào mục tiêu bằng một máy tính client. Để khuếch đại uy lực của cuộc tấn công, hacker sẽ thường setup rất nhiều máy tính client cùng lúc tấn công mục tiêu. Để làm được việc này, thường thì trước đó hacker đã phải thực hiện vài cú hack mở màn để lấy được quyền điều khiển trên một loạt máy tính có băng thông kết nối rộng. Nguồn phổ biến nhất để cung cấp những máy tính “nô lệ” này chính là hệ thống mạng máy tính của các trường đại học hoặc là hacker sẽ dùng những credit card “chùa” để thuê các server và dùng nó làm công cụ phục vụ ý đồ của mình. Khi hacker setup xong các máy tính nô lệ của mình, anh ta sẽ ngồi ở trung tâm điều khiển bà bắt đầu phát động cuộc tấn công.

Quy trình kết nối liên lạc của máy tính gồm 3 bước bắt tay. Một cú tấn công theo kiểu SYN sẽ cải biên quá trình bắt tay này, nhằm hạ gục bằng cách làm cho máy tính bị quá tải. Như bạn đã biết, đầu tiên máy tính client sẽ gửi gói tin SYN đến máy tính server để bắt đầu kết nối. khi máy tính server nhận được gọi tin này, nó sẽ xử lý tím địa chỉ trả về và gửi ngược lại một gọi tin SYN ACK. Đây chính là điểm mà cuộc tấn công DoS tìm kiếm.

Một server bao giờ cũng chỉ có một số hạn chế các tài nguyên để dành cho các kết nối của client. Khi một server nhận được gói tin SYN khởi tạo từ client, server mới bắt đầu định vị các tài nguyên này. Điều này cũng có nghĩa là số kết nối client cùng lúc sẽ bị giới hạn. nếu cùng lúc có quá nhiều client kết nối, server sẽ bị tràn và sẽ “bức sô” do quá trình xử lý bị quá tải.

Yếu điểm của hệ thống lúc này sẽ hiện ra khi hacker cố tính đưa vào một địa chỉ trả về giả mạo trong gói SYN ban đầu. Như vậy, khi server gửi ngược gói tin SYN ACL cho client giả mạo, nó sẽ không bao giờ nhận được gói tin ACK kết thúc. Như vậy là đối với từng gói SYN giả mạo, các tài nguyên càng ngày càng bị buộc phải ngưng hoạt động cho đến khi mà server từ chối không nhận thêm kết nối nào nữa. Để tấn công được, cần phải có vô số các gói tin giả mạo, nhưng nếu hacker có nhiều máy tính nô lệ để cùng gửi các gói tin, anh ta có thể làm quá tải hệ thống một cách nhanh chóng.

SYN_Flooding2

Ảnh 2 : Tấn công kiểu SYN

Một ví dụ nổi tiếng của kiểu tấn công này đã xảy ra vào cuối năm 1999. Rất nhiều Web xịn đã bị sụm trước một cơn lũ các tín hiệu cùng lúc đến từ hàng trăm máy tính khác nhau. Các trang Web sẽ không hề hấn gì nếu cuộc tấn công chỉ xảy ra từ một máy; tuy nhiên, bằng việc dùng các chương trình điều khiển từ xa, một hoặc một số hacker sẽ phát động một cuộc tấn công phối hợp dùng cùng lúc hàng trăm-hàng ngàn máy tính, như vậy mục tiêu của họ sẽ bị quá tải một cách nhanh chóng.

———

Tài liệu tham khảo : Windows Internet Security-Protecting Your Critical Data (Seth Fogie & Dr. Cyrus Peikari)

Bản quyền của blog.

This blog uses this version of the Creative Commons License. This license has four main points:

  • You’re free to copy, distribute, and edit all entries on this blog.
  • If you use my entries, please cite and link to the original entries on this blog.
  • You may not use my entries for commercial purposes. Please contact me if you want to use my entries for commercial purposes.
  • If you alter, transform, or build upon my entries you may distribute the resulting work only under the same or similar license to this one.

DaoDuyHieu’s Blog dùng phiên bản này của Creative Commons Lisence. Bản quyền này có bốn điểm chính:

  • Bạn được toàn quyền sao chép, phán tán và chỉnh sửa các bài viết trên blog.
  • Nếu bạn sử dụng các bài viết thì xin ghi rõ nguồn (và liên kết) đến DaoDuyHieu’s Blog.
  • Bạn không được sử dụng các bài viết vì lợi nhuận. Nếu muốn sử dụng vì lợi nhuận thì xin liên hệ với tác giả.
  • Các bạn có thể sửa đổi bổ sung thêm vào các bài viết (ví dụ dùng tư liệu để viết bài khác) với điều kiện bài viết mới của bạn cũng theo cùng ba nguyên tắc này của Creative Commons Lisence.