Làm cách nào để sử dụng HTTPS trên cấu hình thiết bị dựa trên web đang chạy điểm truy cập và không có quyền truy cập internet?


7

Tôi đang xây dựng một thiết bị dựa trên Raspberry Pi cho những người làm vườn ở sân sau có trang web và điểm truy cập cho cấu hình ban đầu, bao gồm cả cấu hình Wi-Fi. Kết nối sử dụng WPA2 và hai thiết bị duy nhất trên mạng nội bộ đó sẽ là chính thiết bị và điện thoại / máy tính bảng / máy tính xách tay của người dùng. Điểm truy cập chỉ hiển thị trong khi định cấu hình, giúp giảm khả năng kẻ tấn công bên ngoài có thể đoán mật khẩu do nhà máy vận chuyển ngẫu nhiên. Vì vậy, tôi có lưu lượng được mã hóa, gần như chắc chắn chỉ có hai nút, trong một thời gian ngắn và mật khẩu ngẫu nhiên. Do đó, tôi không thể thấy HTTPS mà tôi có thể thấy và tôi đã lên kế hoạch chạy HTTP.

Tuy nhiên, hôm nay tôi đã biết rằng bắt đầu vào tháng 7, Chrome sẽ bắt đầu đánh dấu tất cả các trang web HTTP là không an toàn. [1] Nhưng vì cấu hình Wi-Fi sẽ được thực hiện bởi điểm truy cập, nên chưa có truy cập internet để xác minh chứng chỉ TLS, mà tôi hiểu là cần thiết cho hoạt động đúng. [2] Tôi có thể tự ký chứng nhận, nhưng điều đó thể hiện những vấn đề khác. [3]

Vì vậy, các lựa chọn của tôi dường như là:

  • Trình bày trang cấu hình với thông báo "Trang web này không an toàn", đáng sợ
  • Trình bày trang cấu hình với thông báo lớn, đáng sợ, "Chứng chỉ này không đáng tin cậy" (ví dụ: tự ký)

Làm thế nào bạn sẽ cung cấp khóa màu xanh đáng yêu đó theo mặc định cho một trang cấu hình thiết bị?

[1] https://www.theverge.com/2018/2/8/16991254/chrom-not-secure-marked-http-encoding-ssl

[2] /security/56389/ssl-certert-framework-101-how-does-

[3] https://www.globalsign.com/en/ssl-inif-center/dangers-elf-sign-certert/


Một phần câu hỏi của bạn dựa trên sự hiểu lầm: bạn thực sự không cần truy cập Internet để xác minh chứng chỉ. Tệp chuỗi chứng chỉ trên thiết bị cần truy nguyên nguồn gốc của sự tin cậy mà trình duyệt đã biết. Nếu không, chỉ cần truy cập Internet là không đủ, một quy trình thực sự sẽ phải được thực hiện để thêm CA vào trình duyệt.
Chris Stratton

Tôi đã có một chứng chỉ được tin cậy bởi hầu hết các trình duyệt cho trang web chính của tôi. Vì vậy, tôi sẽ chỉ sử dụng chứng chỉ hiện có của mình, nếu đó là ký tự đại diện, đã được iPhone và Android tin cậy?
Chậm Bro

Không. Hoàn toàn không !!! nếu bạn đã làm điều đó, bạn sẽ tiết lộ bí mật cho phép mạo danh trang web của bạn cho mọi người đã mua một trong những sản phẩm của bạn. Chứng chỉ bạn sử dụng cho mục đích này chỉ cần được sử dụng cho mục đích này và được xem là bị xâm phạm ngay từ đầu. Nếu bạn cần bảo vệ người dùng khỏi nhau, bạn sẽ cần một chứng chỉ duy nhất cho mỗi hộp được tạo. Điều đó tương đối dễ thực hiện với một CA tùy chỉnh cho một ứng dụng khách mà bạn điều khiển như một ứng dụng di động tùy chỉnh, nhưng khó hơn nhiều đối với một trình duyệt chỉ có nguồn gốc tin cậy.
Chris Stratton

1
Để có một chứng chỉ duy nhất cho mỗi thiết bị, bạn cần một CA sẵn sàng ký kết rất nhiều về mặt kinh tế. Nếu bạn có thể tạo một ứng dụng khách tùy chỉnh như ứng dụng di động bạn viết, thì bạn có thể khiến nó tin tưởng CA tùy chỉnh của riêng bạn. Nhưng nếu hộp của bạn cần được các trình duyệt chứng khoán tin cậy với danh sách ủy thác chứng khoán, thì bạn sẽ phải làm việc với một CA được công nhận.
Chris Stratton

1
Cảm ơn bạn, điều này đang trở nên rõ ràng hơn bây giờ. Tại sao bạn không đăng bài này như một câu trả lời và tôi sẽ nâng cao nó?
Chậm Bro

Câu trả lời:


4

Một tùy chọn có thể là sử dụng HTTPS và gửi chứng chỉ thực trên thiết bị:

Vì bạn kiểm soát điểm truy cập, có lẽ bạn sẽ điều khiển máy chủ DHCP trên điểm truy cập, do đó bạn có thể yêu cầu nó cung cấp địa chỉ máy chủ DNS cùng một lúc.

Máy chủ DNS này có thể nằm trên AP và có thể phân giải tên máy chủ đủ điều kiện để tự trỏ đến nó.

Sau đó, bạn có thể mua chứng chỉ cho tên miền đủ điều kiện đó và gói sản phẩm này với sản phẩm để tạo kết nối HTTPS được xác minh đầy đủ.

Một vấn đề lớn với ý tưởng này là bạn đang vận chuyển khóa riêng và chứng nhận cho tên miền đó, vì vậy bạn nên cho rằng nó sẽ bị xâm phạm tại một số điểm vì vậy bạn không bao giờ nên đặt máy thật (Bạn có thể cần chạy máy với điều này tên trong một thời gian rất ngắn để thực sự có được chứng chỉ) trên internet sử dụng tên máy chủ đó làm kẻ tấn công sẽ có thể dễ dàng giả mạo nó.

Ngoài ra phần sụn cho AP sẽ có tuổi thọ giới hạn vì chứng chỉ sẽ hết hạn (có thể sau một năm theo iirc mặc định), sau đó bạn sẽ nhận được các cảnh báo hết hạn chứng chỉ khó chịu.

Ý tưởng tiếp theo:

Bỏ chế độ Điểm truy cập WiFi và sử dụng Bluetooth, vd

https://www.hardill.me.uk/wordpress/2016/09/13/provisioning-wifi-iot-devices/

Nhược điểm là Apple hiện không hỗ trợ WebBluetooth, nhưng Chrome trên Windows / Linux / Mac thì có và bạn có thể gửi một ứng dụng iOS gốc cho người dùng điện thoại / máy tính bảng Apple.


Vì vậy, tôi đang hình dung điều này, dựa trên câu trả lời của bạn: Thiết lập DNS và DHCP trong thiết bị. Một trong các bản ghi DNS là device1234.myrealdomain.com, trong đó myrealdomain.com là um, tên miền thực của tôi :-) Chứng chỉ device1234 đã được CA của tôi ký trước khi rời nhà máy và iPhone / Android đã nhúng chuỗi tin cậy đó , và biết tin tưởng thiết bị đó. Tôi không cần phải có quyền truy cập internet để xác minh và khi chứng nhận sắp hết hạn, tôi đẩy xuống một chứng chỉ mới được ký. Liệu điều đó có hiệu quả?
Chậm Bro

Không, bạn tuyệt đối không được sử dụng chứng chỉ dựa trên bất kỳ điều gì có ý nghĩa (như trang web của bạn) cho mục đích này, bởi vì bạn sẽ phân phối nó cho nhiều hộp. Khi bạn làm điều đó, bạn đang xuất bản một cách hiệu quả phần được cho là bí mật cho tất cả mọi người thấy. Bạn cũng sẽ cần một cái gì đó với thời gian hết hạn lâu hơn nhiều so với nhiều CA đưa ra ngày hôm nay - nếu không, một hộp bị tắt trong một hoặc hai năm không thể được cắm lại bởi một trình duyệt thực thi thậm chí đủ lâu để cấu hình truy cập Internet để có thể lấy chứng chỉ cập nhật để đáp ứng trình duyệt.
Chris Stratton

Chris xem xét phản hồi của tôi ngay phía trên bạn, trong đó tôi mô tả tình huống tôi gửi chứng chỉ dành riêng cho thiết bị, không phải chứng chỉ trang web chính với mỗi thiết bị. Trong trường hợp thiết bị ngoại tuyến lâu hơn một năm, tôi sẽ xem xét rằng nó bị hỏng. Chúng sẽ không được sản xuất và ngồi trên kệ, chúng sẽ được cấu hình ngay trước khi rời khỏi nhà máy.
Chậm Bro

Nếu bạn có CA riêng thì bạn không cần máy chủ DNS, bạn có thể phát hành certs cho địa chỉ IP của thiết bị giúp mọi thứ đơn giản hơn. Và certs có thể hết hạn khi bạn muốn
hardillb

1
Một chứng chỉ 90 ngày là hoàn toàn, hoàn toàn, hoàn toàn và không thể tồn tại đối với bao bì trong một sản phẩm phần cứng. Nó sẽ là một cơn ác mộng hỗ trợ khách hàng và có thể nhấn chìm doanh nghiệp của bạn. Đừng làm điều đó. Thậm chí đừng nghĩ về việc làm nó.
Chris Stratton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.