今日的學習目標是了解醫療 IoT 裝置在實際醫療情境中的角色與應用,認識其面臨的資安風險,並思考資料傳輸與裝置安全的解決方案。
一、理論重點
醫療 IoT 的應用
醫療 IoT 包含穿戴裝置(如智慧手環)、醫院設備(如血壓計、心電圖機)、遠距醫療感測器(如血糖監測儀),它們能即時收集數據並傳送到醫院系統,幫助醫師快速掌握病人狀況。
資安挑戰
IoT 裝置多數設計輕量,計算能力與記憶體有限,導致加密、防火牆等安全機制不足。再加上裝置通常長期連線,一旦被入侵,駭客可能透過裝置進入醫院內網,甚至竄改病人數據。
常見攻擊面
二、案例分享
2017 年,美國 FDA 公開警告某品牌的心律調節器(pacemaker)存在資安漏洞,駭客可遠端連線並更改裝置設定,甚至可能導致病人心律異常,危及生命。這起事件迫使製造商緊急推出韌體更新,並提醒醫院進行大規模裝置檢修。這顯示醫療 IoT 裝置一旦缺乏安全設計,不只是資料外洩問題,更可能直接影響病人安全。
三、簡單程式範例
今天練習的程式需要執行兩個檔案,分別是server.py跟device.py,程式碼如下
server.py
from fastapi import FastAPI, Request
import uvicorn
app = FastAPI()
@app.post("/upload")
async def upload_data(request: Request):
data = await request.json()
print("收到裝置資料:", data)
return {"status": "success", "message": "數據已接收"}
if __name__ == "__main__":
uvicorn.run("server:app", host="127.0.0.1", port=8000, reload=True)
device.py
import requests
import json
# 模擬 IoT 血壓裝置數據
device_id = "BP001"
blood_pressure = {"systolic": 120, "diastolic": 80}
# 傳送到伺服器 API
url = "http://127.0.0.1:8000/upload"
data = {
"device_id": device_id,
"blood_pressure": blood_pressure
}
response = requests.post(url, json=data)
print("伺服器回應:", response.text)
在執行 device.py 前,要先啟動伺服器 server.py。兩個檔案都準備好後,在新的終端機執行python device.py
,這時候會成功回傳
而伺服器端的回應如下
如果這段程式傳輸的是「明文 HTTP」,中間人攔截就能看到病人數據;若改成 HTTPS,再加上昨天所學的Token 機制,就能提升安全性。