Powered by Blogger.

Giới thiệu về Tor và Tortilla

Bài viết này sẽ giới thiệu về mạng ẩn danh Tor, mục đích , cơ chế hoạt động của mạng Tor và công cụ Tortilla giúp an toàn và bảo mật hơn khi sử dụng Tor. Bài viết được tổng hợp từ https://www.torproject.org/ và một số nguồn khác.

I. Tor là gì?
1.1. Tổng quan
1.1.1. Khái niệm

Tor là một mạng lưới các đường hầm ảo, nó cho phép cá nhân, nhóm người để tăng cường tính riêng tư và mức độ bảo mật trên internet. Nó cũng cho phép các nhà phát triển phần mềm tạo ra các công cụ với các tính năng riêng tư. Tor hỗ trợ một nền tảng cho hàng loạt các ứng dụng, các ứng dụng này cho phép chia sẻ thông tin trên mạng công cộng mà không ảnh hưởng tới tính riêng tư của người chia sẻ.  Tor là một dự án phát triển bởi phòng nghiên cứu U.S. Naval, Mỹ.

1.1.2. Mục đích
Trước khi tìm hiểu mục đích của Tor, chúng ta xem xét một số phương pháp theo dõi trên mạng hiện nay:
  • Phương pháp truyền thống: phân tích lưu lượng gói tin, do gói tin bình thường gồm 2 phần: header và payload. Dữ liệu payload thường sẽ được mã hóa nhưng header thì không, do đó, bắt các gói tin và phân tích header có thể giám sát được truy cập trên internet.
  • Đặt các điểm honeypot trên các phần của internet, theo dõi thông tin vào ra của đối tượng cần quan tâm, dựa vào một quy luật thống kê phù hợp để giám sát truy cập.
  • Tor giúp người sử dụng vượt qua cả hai phương pháp theo dõi trên (Sẽ giải thích phân dưới). Mục đích của việc ra đời Tor:
  • Trước tiên là bảo vệ các kết nối của chính phủ Mỹ. Hiện tại, Tor được sử dụng bởi rất nhiều người khác nhau.
  • Cá nhân: tránh sự giám sát từ các website, kết nối tới website mới với mục đích ẩn danh, truy cập các website bị khóa bởi chính quyền địa phương, tham gia các kết nối xã hội nhạy cảm, ...
  • Nhà báo: liên hệ với những người tố cáo, ... một cách an toàn hơn.
  • - …
=> Sử dụng Tor chống lại việc lần vết, theo dõi khi truy cập mạng.
Đặc điểm của Tor là độ trễ lớn, tốc độ truy cập mạng chậm ( tăng lên khi số lượng người dung tăng), dạng chia sẻ P2P. Tuy nhiên, độ an toàn và tính riêng tư cao.

1.2. Cơ chế hoạt động
1.2.1. Một số khái niệm
Trước khi bàn về cơ chế hoạt động của mạng Tor, chúng ta làm quen với một số khái niệm sau:
  • Tor node: Là một server chuyển tiếp trong mạng Tor, là một mắt xích tham gia vào việc tạo nên một đường kết nối từ người dùng tới đích mong muốn. Tính tới thời điểm hiện tại, có hơn 4000 server chuyển tiếp trong mạng Tor.
  • Exit node: Là một Tor node, đây là node kết nối trực tiếp tới đích mà người dùng mong muốn.
  • AES: thuật toán mã hóa đối xứng: http://people.eku.edu/styere/Encrypt/JS-AES.html
  • Cell: Là một gói tin truyền trong mạng Tor, mỗi cell tối đa 512 bytes được mã hóa bởi mã hóa AES 128 bits. Có hai loại: cell và relay – cell đều có hai thành phần chính: header và payload. Sau đây, chúng ta sẽ quan tâm tới header của mỗi loại, payload là phần dữ liệu cần truyền đi.
Hình 1: Cell and Relay-cell​
- Cell: header sẽ gồm hai phần: CircID và CMD​
+ CircID: xác định cell đang thuộc Circuit nào.​
+ CMD: Xác định cách thức xử lí với phần payload:​
* padding(sử dụng giữ kết nối).​
* create or created(tạo một circuit mới)​
* destroy(hủy một circuit)​
- Relay – cell: Có thêm phần header trước payload(relay - header). Phần CMD sẽ quyết định sẽ làm gì với payload:​
* relay data(chuyển tiếp cell)
* relay begin(mở một luồng)
* relay end(đóng và làm sạch luồng)
* relay teardown(đóng một luồng bị lỗi)
* relay connected(thông báo cho onion proxy chuyển tiếp thành công)
* relay extend or extended(mở rộng circuit bằng cách thêm hop)
* relay truncate and relay truncated(hủy một phần của circuit)
* relay sendme(điều khiển tắc nghẽn)
* relay drop​

1.2.2. Mô hình hoạt động
Hình 2: Alice tập hợp danh sách các Tor node trên Server

Hình 3: Alice chọn một đường ngẫu nhiên tới server đích (Alice – Bob)
Hình 4: Alice truy cập tới site khác, đường đi được reset ngẫu nhiên tới server đích mới (Alice – Jane)

- Giả sử Alice muốn tạo một circuit mới, OP gửi một cell với cmd là create tới node đầu tiên (Bob) được chọn trên đường đi (chọn một circID mới chưa được sử dụng). Phần payload của gói tin này chứa một nửa của thuật toán bắt tay Diffie-Hellman(g^x), mã hóa bởi khóa của router. Bob phản gửi lại cell phản hồi với cmd: created, payload chứa g^y cùng với khóa băm: K = g^xy
- Alice và Bob sẽ tiếp tục gửi các cell chuyển tiếp(mã hóa bằng khóa K)
- Mở rộng circuit:

Alice gửi cell relay extend, xác định node tiếp theo là Carol, mã hóa bằng g^x2
Bob copy thông tin này vào một cell create khác và gửi cho Carol, đồng thời Bob tạo một circID mới để liên lạc với Carol.
Khi Carol phản hồi bằng cell created, Bob đóng gói lại phần payload vào cell relay extended và chuyển lại cho Alice.
* Như vậy, circuit sẽ được mở rộng ra.​
* Thông tin được mã hóa nhiều lớp, circuit được thay đổi theo một chu kì nhất định để đảm bảo tính riêng tư, lạc danh.


1.3. Thuận lợi và rủi ro khi sử dụng mạng Tor.
Tor có hiệu quả cao để giúp bạn ẩn danh và vượt tường lửa. Cách mã hoá của Tor sẽ ngăn ngừa nhà điều hành mạng biết nội dung thông tin cá nhân, che dấu tung tích của đầu đối thoại bên kia cũng như trang web đang truy cập. Khi sử dụng đúng chức năng, nó sẽ bảo vệ người sử dụng nhiều hơn là một proxy đơn lẻ.
Nhưng:
  • - Tor có thể bị ngăn chặn vì phần lớn địa chỉ IP các trạm Tor được liệt kê cho công chúng biết. (Một cách để giải quyết vấn đề này là dùng cầu nối Tor (Tor bridges), là tên gọi các trạm Tor không được công bố công cộng để tránh bị chặn)
  • - Những phần mềm dùng qua mạng Tor có thể có những lỗ hổng làm lộ tung tích của bạn. Một ví dụ là vụ của Freedom hosting, 1 vài đoạn mã script giúp FBI có thể truy ra IP thât của người sử dụng – đó là lỗi của Tor trên Firefox 17 ESR.
  • - Tor không đảm bảo sự ẩn danh nếu các dữ liệu của các ứng dụng không được thiết kế chạy qua Tor. Một số plugin và đoạn mã (script) lờ đi các cấu hình proxy và qua đó có thể làm lộ địa chỉ IP. Gói trình duyệt Tor có kèm theo một ấn bản Firefox đặc biệt có gài sẵn Torbutton. Torbutton:
  • · Ngăn cản plugins khi Tor đang chạy
  • · Cách ly các nội dung động
  • · Xóa cookie
  • · Quản lí cache, lịch sử: chặn tấn công CSS, JS và ghi chép lịch sử(CSS, JS attacks + history recording)
  • · Đưa ra cảnh báo trước khi chạy một ứng dụng nào đó
  • · Quản lí người dùng và giả mạo vị trí
  • · Giả mạo Timezone

  • - Ngoài ra, nếu không dùng thêm các phương pháp mã hoá, thì thông tin có thể bị lộ ở trạm cuối của mạng Tor (exit node). Điều này có nghĩa là chủ nhân của trạm Tor chót và của dịch vụ ISP đứng giữa trạm đó với trang web đến có thể thấy các thông tin của bạn.
  • - Giống như tất cả các mạng vô danh tiềm tàng khác, theo lý thuyết, Tor có nhược điểm là nếu như một phần mềm theo dõi mạng được cài đặt tại 2 máy đầu và cuối trong mạng Tor nó có thể phân tích các thông tin được trao đổi từ 2 máy đó qua mạng Tor. Nhưng cũng rất khó khăn bởi Tor liên tục tự động thay đổi máy chủ, cả máy đầu và máy cuối trong mạng, và dữ liệu cũng đã được mã hóa.

II. Tor Browser Bundle

Tor Browser Bundle (TBB) là gói trình duyệt Tor cho phép sử dụng Tor trên Windows, Mac OS X, hay Linux mà không cần cài đặt bất kỳ phần mềm nào. Hai thành phần chính của TBB là Tor và một phiên bản sửa đổi của Firefox ESR.
Tor chạy một SOCKS server, lắng nghe cục bộ trên cổng TCP 9050. Tor định tuyến kết nối thông qua mạng ẩn danh Tor. Phiên bản sửa đổi của Firefox sẽ định tuyến tất cả lưu lượng DNS và HTTP(S) thông qua SOCKS server trên.
Mặc dù việc tải về và cài đặt TBB tương đối dễ dàng và đảm bảo việc phục vụ nhu cầu lướt web cơ bản, tuy nhiên có 1 số vấn đề sau:
- Firefox là trình duyệt duy nhất được hỗ trợ bởi TBB. Trong khi đó, trong 2 năm qua đã có hơn 6 lỗ hổng được phát hiện trên firefox nhiều hơn Internet Explorer. Hơn nữa, có một số plugin (Adobe Flash...) không tương thích với TBB, do đó không thể chuyển hướng truy cập internet của các plugin đó qua Tor.
- Đa số các phần mềm không hỗ trợ TCP qua SOCKS server
- Một số phần mềm hỗ trợ TCP qua SOCKS server nhưng lại không hỗ trợ DNS qua SOCKS server.
Để giải quyết các vấn đề này, dự án phần mềm Tortilla đã được phát triển.

III. Tortilla
1. Tổng quan :  Tortilla là một dự án phần mềm được thiết kế để cho phép người sử dụng dễ dàng, an toàn và bảo mật khi sử dụng Tor để ẩn danh trên internet.

2. Mục tiêu :  Giải pháp lý tưởng được đưa ra để đảm bảo sự an toàn là toàn bộ lưu lượng truy cập internet đều đi qua Tor.

Tortilla gồm 5 mục tiêu:
- Định tuyến toàn bộ lưu lượng TCP và DNS qua Tor.
- Không cho phép kết nối internet nếu không đi qua Tor.
- Không yêu cầu người sử dụng cài đặt hệ điều hành mới.
- Không cho phép các phần mềm độc hại phá vỡ các đường hầm Tor để kết nối trực tiếp với internet.
- Không yêu cầu thêm phần cứng hoặc thêm máy ảo.
Một số giải pháp từng được nêu ra nhưng không đáp ứng được tất cả các mục tiêu:
- Hardware-Based Transparent Proxy
- Software-Based Transparent Proxy
- Tor tích hợp trực tiếp vào hệ điều hành
- Winsock Hooks

3. Kiến trúc Tortilla
Hình 5: Kiến trúc Tortilla

Các ứng dụng mạng được chạy bên trong một máy ảo để mã độc không thể phá vỡ các đường hầm Tor để truy cập trực tiếp internet và không xác định được thông tin trên hệ thống host. Hai thành phần của Tortilla – Tortilla client và Tortilla virtual network adapter – chỉ chạy trên host.

Tortilla cài đặt một thiết bị mạng ảo Tortilla adapter và một drive NDIS miniport tương ứng (tortilla.sys). Trong quá trình cài đặt, Tortilla vô hiệu hóa các thành phần mạng (clients, các dịch vụ, và các giao thức) ngoại trừ Virtual Network Bridge, đảm bảo rằng các thành phần trên máy host không gây cản trở sự hoạt động của Tortilla.
Hình 6
Sau khi Tortilla được cài đặt, ta có thể cấu hình card mạng ảo kết nối với Tortilla adapter:
Hình 7

Sau khi kết nối, Tortilla client sẽ nhận được toàn bộ lưu lượng mạng từ tầng 2 mô hình OSI thông qua card mạng ảo của máy ảo.
Tortilla client sẽ xử lý 4 loại gói tin nhận được từ máy ảo:
- Gói DHCP Discover/Request: Tortilla client giống như một DHCP server cấp cho máy ảo một địa chỉ IP, subnet mask (mặt nạ mạng), địa chỉ gateway và địa chỉ IP của DNS server, tất cả đều được cấu hình.
- Gói ARP Requests: Tortilla client sẽ reponds lại tất cả các thông điệp ARP requests với địa chỉ MAC mặc định 7A:C0:7A:C0:7A:C0 (TACO TACO TACO).
- Gói DNS Type A (phân giải tên miền thành địa chỉ IP) và Type PTR (phân tích, tìm ra tên miền từ địa chỉ IP): DNS server sẽ phân tích các truy vấn, gửi request thông qua Tor và responses lại cho máy ảo.
- Gói TCP: khi Tortilla client nhận được một gói TCP SYN từ máy ảo, nó sử dụng Tor SOCKS server để kết nối tới máy chủ đích thông qua Tor. Nếu kết nối thành công, Tortilla sẽ xử lý kết nối tới Lightweight TCP/IP stack (lwIP – là một ứng dụng nhỏ và độc lập có khả năng TCP/IP) – nó sẽ hoạt động như proxy giữa máy ảo và Tor SOCKS server.
Tất cả các loại gói tin khác đều được giảm thiểu hoặc bỏ qua bởi Tortilla.

IV. Kết luận
Việc ẩn danh là cần thiết với rất nhiều người sử dụng internet. Sự kết hợp của Tor và Tortilla giúp người sử dụng ẩn danh một cách dễ dàng và hiệu quả. Đây cũng là một phương pháp vô cùng hữu hiệu đối và thường được các hacker sử dụng khi tấn công vào các hệ thống mà không muốn bị phát hiện.

V. Tài liệu tham khảo
- https://www.torproject.org/
-http://news.cnet.com/8301-1009_3-57596462-83/tortilla-tool-makes-anonymizer-tor-more-digestible/
- http://threatpost.com/tortilla-tool-anonymously-routes-tcp-dns-traffic-through-tor
- US-13-Geffner-Tor...-All-The-Things-Slides

Nguồn : whitehat.vn
    Blogger Comment
    Facebook Comment