BLE pairing on boards without a button accepts any phone for 60 s after every boot
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- rust
- Lĩnh vực
- embedded-iot, security
Hướng nghiên cứu
Read boards/esp/src/ble/lifecycle.rs and boards/esp/src/ble/transport.rs, then review the WiCAN profile at hardware-profiles/meatpi-wican-esp32c3.toml and the pairing guidance in docs/ble.md. Decide how pairing should be gated and authenticated across supported hardware, and check the setup wizard issue at OpenCarControls/contracts#10. Done means strangers cannot bond during a normal reboot and the pairing flow is documented.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
- When
pairing_button_pinisn't set (the WiCAN profile sets it to-1, inhardware-profiles/meatpi-wican-esp32c3.toml:32),ble_lifecycle_taskopens the pairing window forpairing_window_seconds(60 s) on every boot (boards/esp/src/ble/lifecycle.rs:91). - Pairing uses
IoCapabilities::NoInputNoOutput(boards/esp/src/ble/transport.rs:173). That's Just Works pairing: unauthenticated, with no MITM protection and no user confirmation. - So any phone in range after a reboot, watchdog reset or brownout can bond, and bonded phones are trusted from then on.
docs/ble.mddoesn't describe the automatic opening on boot yet.
Impact
Low while v1 is read-only: someone can read the car's state. It must be fixed before E-GMP commands are enabled, because then a bonded phone can control the car.
Ideas
- Open the window at boot only while no phone is bonded (first setup), and require a deliberate action after that: a bonded phone's command, or a physical action such as unplugging and replugging the device a set number of times.
- Use authenticated pairing (passkey or numeric comparison) where the hardware allows it, e.g. a code shown in the app and confirmed with a pattern on the device's LED.
- Cover this in the setup wizard (https://github.com/OpenCarControls/contracts/issues/10).
- Document the behaviour in
docs/ble.md.
Done when
A stranger near the car can't bond during a normal reboot, and the pairing flow is documented.
From the audit
- While the window is open, any already-bonded phone can also clear, remove or upsert paired phones, so a window opened at boot widens that too.
- Related: removing a phone doesn't revoke its bond on ESP (https://github.com/OpenCarControls/firmware/issues/9).
- Ngôn ngữ chính
- Rust
- Star
- 1
- Fork
- 0
- Merge trung bình
- 15 giờ 26 phút
- Pull request đã merge (30 ngày)
- 22
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của OpenCarControls/firmware
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
OpenCarControls/firmware#77 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
e-gmp enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
OpenCarControls/firmware#75 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
OpenCarControls/firmware#74 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
e-gmp enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
OpenCarControls/firmware#71 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
OpenCarControls/firmware#70 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của OpenCarControls/firmware
Issue tương tự
-
needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
mozilla-services/syncstorage-rs#2715 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
-
documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
physicsdolphin/nv-uefi-unlocker#53 · 4 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày