我在區域網路內的 ESP8266 微控制器上設定了一個 Web 伺服器。發送到該單元的 HTTP GET 請求可以打開和關閉電源插座,我計劃在房子周圍部署幾個這樣的插座。
此 LAN 使用標準網際網路盒(路由器+數據機)連接到網際網路。我想阻止 LAN 外部的任何人(包括來自互聯網的任何人)向微控制器發送任何內容。
假設人們無法破解我受 WPA-PSK 保護的 Wifi,我的設定是否有安全漏洞?任何人入侵我的 DIY 智慧插座有多困難?
答案1
雖然外部的任何人都不可能直接存取伺服器(只要您不轉發路由器上的任何連接埠),但您將很容易受到類似的攻擊跨站請求偽造。例如,如果有人向您發送了 HTML 格式的電子郵件(或讓您載入網頁,或...),其中包含載入的內嵌圖像http://192.168.1.50/control?outlet=all&action=off
(或無論其IP 位址和語法是什麼),您的郵件用戶端將嘗試從該 URL 加載圖像,您的商店將關閉(或其他任何情況)。
因此,如果您有足夠的極客朋友來了解您的網路設置,那麼您可能會被惡作劇。實際上,您還應該預期隨機 XSRF 命中會嘗試利用您可能實際擁有或不擁有的隨機其他設備;如果控制器的網路伺服器被其中任何一個混淆,他們可能會意外地破壞它。
[更新] 更好地保護這一點在很大程度上取決於網絡伺服器具有哪些加密功能——我在快速搜索中沒有看到太多信息,所以我不確定它能做什麼。最簡單的方法是將密碼變數加入請求中。這不是特別安全,因為它會在線上可見,儲存在客戶端的歷史記錄中並登入伺服器等,但總比沒有好(並且比使用奇怪的語法更好,因為它很容易更改) 。做不是使用與其他任何操作相同的密碼。
從 GET 切換到 POST 也會有一點幫助,特別是因為 HTTP 標準規定 GET 請求不應該改變伺服器的狀態——也就是說,客戶端發送/不發送 GET 請求應該是安全的取決於例如其快取的狀態。使用 HTTPS 會有更多幫助(如果伺服器支援)。使用 WebDAV 摘要身份驗證(而不是密碼字串)也很好(同樣,如果伺服器支援它),但您需要添加某種針對重播攻擊的保護才能真正有效。
答案2
儘管一切皆有可能,但如果您沒有通過端口轉發(有時稱為虛擬伺服器)映射的任何端口,尤其是80、443 和8080,或您的網絡伺服器使用的任何端口...來自LAN 外部的攻擊的機會通過路由器到該設備的頻率接近零。
但同樣,在沒有更徹底的安全審查的情況下,不要將此作為最終答案。只要有意願,無論採取什麼預防措施,都有辦法。