Thư viện sách cấm bên trong bóng đèn thông minh Wi‑Fi
(richardosgood.com)- Banned Book Library là một dự án dead drop số biến bóng đèn thông minh Wi‑Fi thành điểm truy cập công khai và máy chủ web, cho phép các thiết bị ở gần truy cập sách điện tử trong lúc bóng đèn đang bật
- Phần cứng bắt đầu từ một bóng đèn cài sẵn Tasmota dựa trên ESP32C3 4MB, và do dung lượng flash nhỏ nên ràng buộc chính là điều chỉnh không gian lưu trữ để chứa đồng thời firmware, website và các tệp sách
- Việc thêm microSD bị từ bỏ vì khó hàn bên trong bóng đèn thực tế, khó tháo bo mạch và khó lắp lại an toàn; thay vào đó, bảng phân vùng được sửa để tăng không gian lưu tệp từ 320KB lên 2MB
- Chỉ dùng Arduino không thể truy cập vùng flash được bảo vệ, nên dự án dùng ESP-IDF cùng Arduino as a Component, đồng thời thiết lập đường cập nhật với firmware safeboot riêng và ElegantOTA
- Ứng dụng web hoàn chỉnh có danh sách sách, bảng quản trị, chức năng khôi phục và captive portal; tuy nhiên do giới hạn 4MB, mỗi bóng đèn gần với một thư viện cá nhân chứa vài cuốn được chọn lọc hơn là một kho sách lớn
Tổng quan
- Dự án bắt đầu từ ý tưởng cải tạo bóng đèn thông minh Wi‑Fi để cung cấp một điểm truy cập Wi‑Fi mở và một máy chủ web chứa sách cấm
- Khi bóng đèn được bật, người dùng ở gần có thể dùng thiết bị điện tử có Wi‑Fi để truy cập tài liệu được lưu trong bóng đèn
- Vì ở dạng bóng đèn nên nó không quá dễ bị chú ý, giá cũng tương đối thấp, nên được hình dung như một dead drop số có thể để lại rải rác trong khu phố
- Ý tưởng chịu ảnh hưởng từ truyện ngắn Library của Ben Brown; trong câu chuyện đó, “thư viện” đóng vai trò là một kho lưu trữ số cho các tác phẩm sáng tạo, hướng dẫn sử dụng, mô hình 3D và những tài liệu không nên biến mất khỏi Internet
- Vài tháng trước, công việc thực tế đã bắt đầu và thành phẩm được công bố là Banned Book Library
Phần cứng
- Sau khi chia sẻ ý tưởng tại một buổi gặp mặt DEFCON ở địa phương, tác giả bắt đầu xem xét Tasmota
- Tasmota là firmware mã nguồn mở có thể cài lên nhiều thiết bị thông minh để tích hợp với các hệ thống tự động hóa gia đình như HomeAssistant
- Mục đích chính là cho phép điều khiển thiết bị cục bộ mà không phụ thuộc vào dịch vụ đám mây
- Nhiều thiết bị thông minh phụ thuộc vào các dịch vụ đám mây có thể thay đổi hoặc biến mất theo thời gian, và Tasmota có thể thay thế điều đó bằng lưu trữ nội bộ
- Dù không sửa trực tiếp Tasmota, tác giả đã tìm được nơi bán bóng đèn Wi‑Fi có cài sẵn Tasmota
- Trang sản phẩm ghi rằng bóng đèn dùng
ESP32C3 4MB - Các chân GPIO để điều khiển LED cũng được công khai, điều này hữu ích cho các bước sau
- Ánh xạ chân là
R=GPIO6,G=GPIO7,B=GPIO5,CW=GPIO3,WW=GPIO4
- Trang sản phẩm ghi rằng bóng đèn dùng
- Tasmota có tính năng cập nhật firmware OTA, nên có khả năng nạp firmware tùy biến mà không cần tháo bóng đèn ra
- Vấn đề lớn nhất là flash 4MB, vì phải chứa cả firmware, website và các tệp sách trong đó
- Tác giả mua hai bóng đèn để đề phòng khả năng làm hỏng một chiếc trong quá trình thử nghiệm
Tháo rời
- Phần tán quang bằng nhựa trắng ở đầu bóng được tháo ra bằng cách rạch hai vòng quanh mép bằng lưỡi dao rồi vặn tách
- Bên trong là một bo mạch con hình tròn gắn LED, nối với bo bên dưới bằng sáu chân
- Một phần bo mạch chính nhô lên qua lỗ ở giữa, và đó là ăng-ten của ESP32
- Vỏ bóng đèn và bo mạch con đều bằng nhôm, có vẻ là thiết kế có tính đến việc đảm bảo tín hiệu Wi‑Fi
- Khi tháo bo mạch con ra, có thể thấy ESP32C3 bên trong cùng các linh kiện có vẻ dùng cho chuyển đổi nguồn và điều khiển LED
- ESP32 có nhiều chân lộ ra, trông như có thể gắn đầu đọc thẻ microSD
- Vì không thể đưa mỏ hàn vào bên trong bóng, bo mạch chính phải được lấy ra, đồng nghĩa phải cạy bỏ một lớp vật liệu đổ khuôn giống cao su bằng dao và tua vít
- Việc tháo bo mạch chính cực kỳ phiền phức, và sau khi lắp lại thì khó tin tưởng vào độ an toàn, nên không phù hợp để trở thành bước bắt buộc trong quy trình triển khai dead drop thực tế
- Bóng đèn đã tháo rời được dùng làm nền tảng phát triển, và các dây được hàn vào VCC, GND, TX, RX, IO9 để lập trình qua serial
- Tác giả xác định nhãn chân VCC, GND, TX, RX bằng ảnh cùng mô-đun trên AliExpress
- GND được nối vào lớp vỏ kim loại dễ hàn hơn
- Để vào chế độ download, thiết bị được khởi động trong khi IO9 được nối đất
- Tác giả dump toàn bộ firmware bằng
esptool, và vài phút sau đã cótasmota_original_firmware.bin
Thử nghiệm ban đầu
-
Hello World
- Ban đầu, tác giả định sửa mã nguồn Tasmota để biến nó thành Banned Book Library, nhưng firmware này phức tạp hơn dự kiến và phạm vi quá lớn vì hỗ trợ nhiều kiến trúc và thiết bị
- Vì mục tiêu dự án là cắt bỏ các tính năng không cần thiết và giải phóng dung lượng lưu trữ, tác giả từ bỏ hướng sửa Tasmota
- Sau khi xác nhận có thể lập trình ESP32 bằng Arduino, tác giả thiết lập Arduino IDE
- Một chương trình Hello World cơ bản được nạp để gửi thông điệp qua cổng serial, qua đó xác nhận có thể ghi firmware tùy biến trực tiếp lên bóng đèn
-
Máy chủ web
- Bước tiếp theo là thiết lập một điểm truy cập Wi‑Fi mở và máy chủ web
- Tác giả tham khảo hướng dẫn về web server cho ESP32, nhưng đã chỉnh sửa vì điều khiển LED không phải mục tiêu ở giai đoạn đó
- Sau đó chuyển sang Async Web Server và tiếp tục triển khai dựa trên các hướng dẫn liên quan
-
Thẻ microSD
- Để mở rộng dung lượng lưu trữ, tác giả mua bo breakout microSD của Sparkfun
- Tác giả tham khảo datasheet của ESP32C3 để xác định cách đấu nối đầu đọc thẻ SD
- Thay vì dùng bóng đèn thật, tác giả dùng Adafruit ItsyBitsy ESP32 để làm prototype vì dễ hàn pin header và kết nối microSD hơn nhiều
- Tác giả đã thành công trong việc host các tệp web server bằng microSD và LittleFS, nhưng cách này khó áp dụng cho bóng đèn thật nên cuối cùng bị loại bỏ
- Để hàn vào ESP32C3 của bóng đèn thật thì phải lấy bo mạch ra khỏi vỏ, việc này gần như tương đương với phá hỏng thiết bị
- Tác giả cũng thử tận dụng lại các chân điều khiển LED, nhưng trong cấu trúc đó GPIO chỉ có thể dùng làm đầu ra để bật transistor và hoàn tất mạch xuống mass
- Một kẹp in 3D để úp lên ESP32 và tiếp xúc với các chân cũng được thiết kế, nhưng quá thiếu ổn định và độ tin cậy thấp nên bị loại bỏ
Xem xét đường vòng
- Tác giả khảo sát các bóng đèn thông minh khác để xem có loại nào dễ hàn hơn không
- Có tìm được nhiều bài viết tháo rời, nhưng đa số đều có cấu trúc bên trong tương tự bóng đang dùng
- Một số bóng dùng chip không phải ESP32, nhưng vì tác giả đã quen với việc lập trình ESP32 nên phạm vi được thu hẹp về các bóng dựa trên ESP32
- Một bóng mua ở cửa hàng phần cứng địa phương có cấu trúc tương tự, nhưng có lớp bảo vệ bằng nhôm khiến việc tháo bo mạch chính an toàn trở nên khó khăn
- Philips WiZ có vẻ hứa hẹn vì chỉ cần tháo phần tán quang bằng nhựa là lộ ra ESP32C3-mini-1, nhưng vẫn không thể tiếp cận các chân ESP32 cần thiết
- Tác giả cũng xem xét cách đưa mạch riêng vào bóng LED thông thường, nhưng cách này còn phức tạp và đặc thù hơn việc flash bóng Tasmota
- Cuối cùng, tác giả giữ nguyên lựa chọn bóng Tasmota và quyết định giải quyết bài toán trong giới hạn 4MB
Vấn đề dung lượng lưu trữ
- Bảng phân vùng của ESP32 thường được lưu ở offset flash
0x8000; tác giả dump vùng này rồi chuyển sang CSV để xem cấu trúc - Các phân vùng gốc gồm năm phần:
nvs,otadata,safeboot,app0,spiffsnvsđược dùng làm vùng lưu trữ không mất dữ liệu cho các thiết lập như mạng Wi‑Fi, mật khẩu và màu LEDotadatađược xác định là vùng liên quan đến cập nhật OTAsafebootlà firmware khởi động riêng mà Tasmota dùng để flash firmware chínhapp0lưu firmware chínhspiffslà một phân vùng hệ thống tệp nhỏ để lưu file; trong trường hợp này nó cũng có thể biểu diễn LittleFS
- Với cấu hình ban đầu, firmware chính chiếm gần 3MB, safeboot chiếm gần 1MB, và dung lượng lưu tệp chỉ còn 320KB
- Vì firmware tùy biến đơn giản hơn Tasmota, tác giả cho rằng có thể giảm kích thước
app0và tăngspiffs - Cấu hình phân vùng mới đặt
spiffsở kích thước0x200000, đảm bảo 2MB không gian lưu trữ cho các tệp web và sách - Việc sửa bảng phân vùng có rủi ro cao; nếu hỏng, thiết bị có thể không khởi động được và chỉ có thể cứu bằng lập trình qua serial
- Cuối bảng có checksum MD5, nên không thể chỉ thay đổi offset và kích thước là khởi động được
- Nếu di chuyển chính phân vùng
app0đang chạy, firmware đó sẽ không thể khởi động lại, nên vị trí bắt đầu củaapp0phải được giữ nguyên - Tác giả tạo CSV phân vùng mới, dùng
gen_esp32part.pyđể tạo bảng nhị phân, rồi dùngxxdđể biến nó thành mảng C và đưa vàopartition.h - Một hàm được viết để bỏ qua nếu MD5 của bảng phân vùng đã trùng với bảng mới; nếu không, nó sẽ xóa bảng cũ và ghi bảng mới
- Trong môi trường Arduino, việc truy cập vùng flash được bảo vệ bị chặn, nên dù API trả về thành công thì thực tế vẫn không thể đọc hay ghi bảng phân vùng
ESP-IDF
- ESP-IDF, framework chính thức của ESP32, phức tạp hơn trong việc cấu hình và sử dụng, nhưng cho phạm vi kiểm soát thiết bị và framework rộng hơn
- Có thể thay đổi thiết lập framework bằng
idf.py menuconfig, một menu vận hành tương tự menuconfig của nhân Linux - Để đọc và ghi bảng phân vùng, cần đặt
SPI_FLASH_DANGEROUS_WRITE_ALLOWEDthànhAllowed - Cũng phải vô hiệu hóa
SPI_FLASH_DANGEROUS_WRITE_ABORTSthì mới truy cập được bảng phân vùng - Dùng trực tiếp ESP-IDF đồng nghĩa không thể tận dụng nguyên trạng các tiện ích của Arduino, nhưng bằng cách thêm Arduino as a Component, tác giả có thể dùng đồng thời tính năng Arduino và quyền kiểm soát của ESP-IDF
- Các thư viện như ElegantOTA, Async_TCP, AsyncWebServer phải được clone vào thư mục
componentscủa dự án hoặc thư mụclibrariescủa thành phần Arduino - Một số
CMakeLists.txtcũng cần chỉnh sửa, và để xử lý các bước lặp lại này, tác giả thêm scriptbuild.shvào kho mã - Việc build được thực hiện bằng
idf.py build, còn flash qua serial dùngesptool -p /dev/ttyUSB0 write-flash 0xe0000 build/library.bin
Trang cấu hình
- Ảnh firmware chính chứa các endpoint web server quan trọng, nhưng mã thư viện thực tế lại được lưu riêng trong phân vùng LittleFS
- Ảnh hệ thống tệp phải được flash riêng, và vì vậy ElegantOTA được tích hợp vào
- Nếu khởi động khi hệ thống tệp chưa được flash, thiết bị sẽ hiển thị trang cấu hình
- Trang cấu hình hướng dẫn quy trình flash ảnh hệ thống tệp và firmware safeboot qua ElegantOTA
Safeboot
- Để giữ khả năng cập nhật OTA cho firmware chính, ban đầu tác giả định giữ nguyên safeboot của Tasmota
- Safeboot của Tasmota dùng thiết lập Wi‑Fi trong phân vùng
nvsđể thực hiện cập nhật - Vấn đề là SSID và mật khẩu Wi‑Fi được lưu dưới dạng văn bản thuần trong phân vùng
nvs - Nếu để bóng đèn ở bên ngoài, việc giữ nguyên thông tin xác thực Wi‑Fi là một trạng thái vận hành không an toàn
- Firmware tùy biến trước hết xóa phân vùng
nvs, rồi xóa thêm cả phân vùng SPIFFS - Khi thiết lập Wi‑Fi trong
nvsbiến mất, safeboot của Tasmota không thể kết nối mạng nữa, khiến đường cập nhật firmware mặc định bị đứt - Để giải quyết, cần có một firmware safeboot tùy biến riêng
- Tác giả tạo firmware safeboot dựa trên một ví dụ GitHub thực hiện cập nhật OTA bằng một web server tối thiểu và điểm truy cập
- Một số mục trong
menuconfigđược tắt đi để giảm kích thước ảnh đủ lọt vào phân vùng safeboot, và cuối cùng nó hoạt động - Bản thân phân vùng safeboot không có mật khẩu, nhưng chức năng quản trị để khởi động lại vào safeboot thì được bảo vệ bằng mật khẩu
Ứng dụng web
-
Thư viện
- Màn hình đầu tiên hiển thị hình một container vận chuyển màu vàng có cửa
- Hình ảnh này là chi tiết tham chiếu đến truyện ngắn Library của Ben Brown đã nhắc ở trên
- Dù chiếm dung lượng lưu trữ, hình này vẫn được giữ lại, và trang đầu còn có thêm hiệu ứng glitch để tạo cảm giác “giống hacker”
- Trang thư viện chính được triển khai bằng HTML và CSS do tác giả tự viết
- Kế hoạch ban đầu chỉ là một trang chỉ mục HTML cơ bản có danh sách tệp, nhưng sau đó được làm đẹp và thú vị hơn
- Cấu trúc website tương đối đơn giản
- Có một phần giải thích người xem đang nhìn thấy điều gì
- Phần sách hiển thị tiêu đề, tác giả và lý do bị thách thức hoặc cấm
- Cũng có một phần liên kết tham khảo, nhưng vì điểm truy cập Banned Book Library không có kết nối Internet nên khi đang kết nối vào đó, các liên kết ngoài sẽ không hoạt động
-
Quản trị
- Đường dẫn
/admincó một bảng quản trị được bảo vệ bằng mật khẩu - Bảng quản trị cho phép điều khiển nhiệt độ màu của LED
- Mục đích là khi đặt ở nơi công cộng, có thể chỉnh cho giống màu của bóng đèn hiện có để việc thay đổi ít bị chú ý hơn
- Vì nhà bán bóng đã công khai các chân GPIO điều khiển từng màu LED, tác giả có thể dùng
AnalogWrite()để đặt cường độ cho từng màu - Thiết lập màu được lưu vào
NVSđể lần khởi động sau quay lại cùng màu đó - Tính năng quản trị cũng có nút dẫn tới trang khôi phục
- Đường dẫn
-
Khôi phục
- Tính năng khôi phục sẽ hoàn nguyên bảng phân vùng ở một mức độ nào đó và khởi động vào safeboot
- Trên thực tế, nó khởi động lại vào phân vùng safeboot tùy biến rồi cho phép flash firmware khác lên trên firmware Banned Book Library
- Firmware được flash có thể là phiên bản mới, Tasmota, ESPHome hoặc thứ khác
- Tác giả vẫn chưa tìm ra cách tốt để khôi phục chính phân vùng safeboot
- Sau khi flash lại Tasmota rồi bấm “Firmware Upgrade” trong giao diện Tasmota, thiết bị lại khởi động vào safeboot tùy biến
- Safeboot này có thể dùng cho cập nhật Tasmota, nhưng không khớp mượt với trải nghiệm nâng cấp thông thường của Tasmota
- Vì vấn đề này, quá trình khôi phục phân vùng không đưa subtype của safeboot trở lại hoàn toàn thành
Factory, mà giữ nó ởOTA_1
-
Captive portal
- Sau khi người dùng kết nối vào điểm truy cập mở, họ có thể chỉ thấy không có Internet rồi bỏ cuộc, nên cần có captive portal
- Cách cũ là chặn các yêu cầu HTTP rồi chuyển hướng tới cổng, nhưng hiện nay phần lớn website dùng HTTPS nên cách này không còn phù hợp
- Cách hiện đại là dùng tùy chọn DHCP để báo có captive portal, đồng thời xử lý các yêu cầu phát hiện portal theo từng thiết bị
- Tác giả tìm được mã ví dụ captive portal cho ESP32 và dùng một phần trong dự án
- Mã đó thực hiện hai việc
- Máy chủ DNS trả lời mọi yêu cầu bằng chính địa chỉ IP của ESP32
- Nó bắt các yêu cầu HTTP cụ thể được dùng bởi Microsoft, Android, iOS, Firefox và gửi chuyển hướng hoặc phản hồi phù hợp
- Các yêu cầu không xác định sẽ được
server.onNotFoundchuyển hướng về URL cục bộ, còn màn hình serial sẽ in ra host và URL được yêu cầu
Suy nghĩ cuối cùng
-
Giới hạn kích thước
- Tổng dung lượng lưu trữ của thiết bị bị giới hạn ở 4MB
- Một vài cuốn epub mà tác giả kiểm tra có dung lượng khoảng 350KB mỗi cuốn, nên một bóng đèn chỉ chứa được vài cuốn như vậy
- Ban đầu, giới hạn này gây thất vọng vì tác giả từng hình dung một web server cung cấp thật nhiều sách cấm
- Về sau, chính giới hạn không gian lại được xem như một ưu điểm vì mỗi dead drop phản ánh lựa chọn của người tạo ra nó
- Người tạo phải chọn những cuốn sách quan trọng với mình hoặc mà họ thấy người khác nên có thể tiếp cận
- Nếu trong một khu vực có nhiều bóng đèn như vậy, mỗi bóng chứa tài liệu khác nhau, thì trải nghiệm đi tìm và khám phá nội dung có thể còn thú vị hơn
-
Ý tưởng tương lai
-
Điều khiển màu sắc
- Tác giả muốn thêm các thanh trượt để điều khiển chi tiết hơn màu RGB và nhiệt độ màu trắng
- Nhờ đó có thể khớp gần hơn với màu ánh sáng hiện có ở nơi lắp đặt
-
Mạng mesh
- Liên quan đến giới hạn lưu trữ, đã xuất hiện ý tưởng để nhiều bóng đèn tạo thành mạng mesh
- Nếu dùng cách như bảng băm phân tán, có thể cung cấp sách từ các thiết bị nằm trong tầm của nhau cho người dùng truy cập vào bất kỳ thiết bị nào
- Ý tưởng này vẫn là một hướng thú vị đáng để khám phá
-
Khác
- Tác giả còn có thêm nhiều ý tưởng tái sử dụng thiết bị thông minh vào mục đích khác
- Chip ESP32 được đánh giá là rất rẻ nhưng vẫn đủ mạnh
- Sau khi học cách sử dụng ESP32, khả năng cao tác giả sẽ tiếp tục làm thêm nhiều dự án ESP32 khác
-
1 bình luận
Ý kiến trên Hacker News
Giống như câu thoại của Pravin Lal trong Alpha Centauri, lời cảnh báo rằng kẻ muốn kiểm soát dòng chảy thông tin rốt cuộc là kẻ muốn thống trị vẫn còn nguyên tính thời sự
Có cảm giác thực tế hợp với câu “nền dân chủ chết đi giữa tiếng vỗ tay như sấm” hơn
Đây là game 4X hay nhất mọi thời đại, và năm 2060 mà trò chơi đó hình dung dường như ngày càng đến gần hơn mỗi ngày
Có vẻ như đó là tác phẩm đánh dấu đỉnh cao của độ phức tạp và sự trưởng thành trong game
Trò chơi này và các tư tưởng của nó thật sự không lỗi thời theo thời đại
Bởi vì ta đã thấy rằng dối trá cũng là thông tin, và khi đi theo cùng dòng chảy đó, nó thậm chí còn lan nhanh hơn
Đúng như dự đoán, ví dụ về sách trong bài thực ra không phải là “sách cấm” theo nghĩa thực sự
Thông thường đó là trường hợp sách có nội dung quá lộ liễu bị loại khỏi bộ sưu tập thư viện trường học theo yêu cầu của phụ huynh
Vì đó không phải ý chính của bài nên tôi nhớ là chỉ thấy cỡ hai ví dụ sách
Nineteen Eighty-four cũng có nội dung tình dục, nên một kẻ độc đoán muốn hạn chế tiếp cận văn học về chủ nghĩa toàn trị chỉ cần kích động phụ huynh nổi giận vì vấn đề giới tính là đủ
Không phải cứ một cuốn sách phải bị cấm trên toàn thế giới thì mới được gọi là “bị cấm”
Chắc thực tế không nhiều cuốn như vậy, nhưng dạo này nó trông giống như con đường tắt để nổi tiếng tai tiếng
Hồi trước từng có PirateBox
Đó là kiểu nạp firmware tùy biến lên một điểm truy cập Wi-Fi nhỏ có kèm web server và forum/file host; trang gốc đã chết nhưng có một dự án phái sinh ở đây: https://www.jasongriffey.net/librarybox/
Tuy vậy, chỉ nghĩ đến chuyện cho phép người dùng tải lên rồi sẽ có những loại tệp gì xuất hiện thôi cũng đã thấy lo
Mọi người sợ kết nối vào Wi-Fi mở, mà nó cũng không cho “internet miễn phí”, nên thường họ ngắt kết nối ngay
Đáng tiếc là dự án phái sinh LibraryBox giờ cũng không còn hoạt động sôi nổi nữa
Tôi tò mò danh sách sách cấm là gì
Nếu lướt qua trong bối cảnh thiếu vắng một trong những nền tảng xã hội lớn nhất, có vẻ sẽ chẳng có gì thú vị, chỉ toàn những cuốn có thể thấy ở góc “sách cấm” của các nhà sách chính thống
Trông giống sự tầm thường của tư tưởng do thiếu vắng đa dạng có ý nghĩa
Danh sách “sách cấm” ngắn ngủi, chỉ có Call of the Wild, The Adventures of Huckleberry Finn, The Adventures of Tom Sawyer, Women in Love các kiểu
Quả thật rất kinh ngạc và dũng cảm
Vì vậy không có một danh sách duy nhất; bạn muốn bỏ gì vào thì bỏ
Khoảng năm 2012 tôi cũng từng thấy người ta gọi kiểu này là Pirate Box
Ý tưởng cơ bản là dựng một mạng Wi-Fi và web server tách biệt khỏi internet rộng lớn hơn, để mọi người tải lên và tải xuống tệp
Nói cách khác, đó là một thư viện chia sẻ số bị giới hạn theo địa lý
Với một người quan tâm đến phần mềm hiệu quả và sử dụng năng lượng tiết kiệm, việc ảnh trong bài là PNG 5MB khá nổi bật
Android rất thích tự ngắt kết nối khỏi các mạng Wi-Fi không cung cấp internet
Muốn tắt tính năng này thì phải đi qua khá nhiều bước cài đặt khó hiểu
Lần cuối tôi kiểm tra, cơ chế phát hiện cổng mạng của điện thoại chưa yêu cầu cả chứng chỉ HTTPS hợp lệ
Khi người dùng được nhắc bấm “Sign In”, họ sẽ lập tức thấy dead drop
Tuy nhiên tôi chưa tự làm thử, nên không biết thực tế có hoạt động không hay có cần DNS đúng cách hay không
Đây là một ví dụ hay cho thấy nếu có mục tiêu rõ ràng, đam mê và tò mò, thì ngay cả khi không có nhiều kiến thức ban đầu, người ta vẫn có thể đi rất xa
Trông thì ngầu thật, nhưng câu “vì là bóng đèn nên sẽ khó bị phát hiện và không gây chú ý” nghe khá đáng nghi
Chắc nó cũng không khó tắt hơn bất kỳ thiết bị Wi-Fi công khai nào khác, và chỉ cần tắt điện hoặc tắt từng thiết bị một chút là có thể tìm ra
Các access point doanh nghiệp hiện đại còn có chức năng định vị thiết bị vật lý và cảnh báo tự động về access point trái phép
Nhưng cái sau thì thường bị phớt lờ hoặc tắt đi vì nó kêu liên tục mỗi khi ai đó in hoặc truyền màn hình bằng Wi-Fi Direct
Nhất là nếu nó trông như một bóng đèn bình thường đang cắm đúng chỗ, khó ai nghĩ đó là một điểm truy cập Wi-Fi
Vật liệu đổ khuôn màu nâu có lẽ còn được dùng để tản nhiệt khỏi các linh kiện, ngoài các vai trò khác