Giải thích mã cán


13

Ai đó có thể giải thích làm thế nào các giao thức mã cuộn như KeeLoq hoạt động? Tôi hiểu tiền đề cơ bản là họ sử dụng một mã khác nhau mỗi lần để bạn không thể sử dụng phát lại tấn công, nhưng tôi không hiểu làm thế nào một bên xác minh mã chính xác, v.v.

Hơn nữa, làm thế nào để họ thực hiện đồng bộ hóa ban đầu nếu chỉ mục vào các mã cuộn không được biết / chia sẻ trước?

Nếu bạn phải sử dụng Keeloq làm ví dụ để giải thích điều đó là tốt, nhưng tôi muốn giải thích chung về mã cuộn.


Câu trả lời:


10

Mã cuộn yêu cầu một số phần để hoạt động chính xác. Ở đây tôi sẽ mô tả một triển khai chung sử dụng tất cả các phần theo một cách cụ thể. Các hệ thống khác là các biến thể của chủ đề này, nhưng thường sử dụng nhiều kỹ thuật tương tự theo cách tương tự. Thay vì cố gắng mô tả việc thực hiện hoàn chỉnh và cách thức hoạt động cùng một lúc, tôi sẽ mô tả một hệ thống đơn giản và thêm độ phức tạp khi chúng ta đi đến một hệ thống bảo mật bằng mật mã.

Mã cuộn không mã hóa chỉ đơn giản là một máy phát và máy thu mà cả hai đều sử dụng cùng một trình tạo số ngẫu nhiên giả (PRNG). Trình tạo này có hai phần thông tin quan trọng: một phép tính và số được tạo trước đó. Tính toán nói chung là một phương trình phản hồi tuyến tính có thể được biểu diễn bằng một số duy nhất. Bằng cách cung cấp PRNG với số trước đó và giữ số phản hồi giống nhau, một chuỗi số cụ thể được tạo. Chuỗi không có trình tự lặp lại cho đến khi nó đi qua mọi số mà nó có thể tạo ra, và sau đó nó bắt đầu lại với cùng một chuỗi.

Nếu cả điều khiển từ xa và máy phát đều biết số phản hồi và số hiện tại, thì khi điều khiển từ xa truyền số tiếp theo, máy thu có thể kiểm tra nó với máy phát của chính nó. Nếu nó phù hợp, nó kích hoạt. Nếu không, nó sẽ cuộn qua chuỗi cho đến khi tìm thấy số mà điều khiển từ xa được gửi. Nếu bạn nhấn lại điều khiển từ xa, thì nó sẽ khớp và nó sẽ kích hoạt vì việc truyền trước đó đã đồng bộ hóa các trình tạo số. Đây là lý do tại sao đôi khi bạn phải nhấn nút mở khóa hai lần - bộ thu hoặc bộ phát của bạn không đồng bộ.

Đó là phần cán của mã. Nếu PRNG đủ dài, rất khó để tìm ra số phản hồi mà không có nhiều số trong chuỗi liên tiếp, rất khó để có được trong sử dụng bình thường. Nhưng nó không an toàn về mặt mật mã.

Trên đó bạn thêm mã hóa điển hình. Nhà sản xuất xe sử dụng một khóa bí mật cụ thể cho máy phát và máy thu. Tùy thuộc vào nhà sản xuất, bạn có thể thấy rằng mỗi mẫu và năm có một mã khác nhau hoặc họ có thể chia sẻ mã giữa một số mẫu xe và trong nhiều năm. Sự đánh đổi là mỗi cái sau đó yêu cầu phải có một điều khiển từ xa khác nhau, nhưng vấn đề với việc chia sẻ mã trên nhiều mô hình là nếu nó bị hỏng thì nhiều xe hơi dễ bị tổn thương hơn.

Đằng sau mã hóa bạn có thông tin nút, số được tạo PRNG và một ít thông tin về số phản hồi. Không đủ để tạo PRNG từ đầu, nhưng đủ để sau một số lần nhấn nút nhất định và với một số thông tin bên trong về không gian hạn chế, số phản hồi có thể liên quan (một lần nữa, nhà sản xuất, dòng cụ thể) sau đó người nhận có thể, sau vài lần đào tạo truyền, xác định số phản hồi và bắt đầu theo dõi PRNG cho điều khiển từ xa đó.

Mã cuộn chỉ có nghĩa là để ngăn chặn các cuộc tấn công phát lại. Mã hóa có nghĩa là để bảo mật mã cuộn để tránh bị phá vỡ. Chỉ với cái này hay cái kia, hệ thống sẽ quá dễ bị hỏng. Vì nhà sản xuất kiểm soát cả máy phát và máy thu, đào tạo không liên quan đến mật mã khóa công khai hoặc bất kỳ thứ gì đặc biệt liên quan. Nó cũng ngăn chặn fobs hậu mãi làm việc trong xe hơi với loại hệ thống này.

Mã lăn không phải là không thấm, mặc dù. Hệ thống keeloq cũ đã bị tấn công thành công chỉ vài năm trước (sau một thập kỷ sử dụng) để có thể tìm thấy mã mã hóa của nhà sản xuất và mã cuộn có thể dễ dàng tìm thấy hơn. Trước đó, nó đã bị tấn công theo cách cho phép mọi người lấy phương tiện mà không thực sự phá mã. Đáp lại, khóa mã hóa mới là 60 bit. Không an toàn như nhiều hệ thống mã hóa hiện đại, nhưng đủ an toàn để có thể tồn tại nhiều năm nữa trước khi nó bị hỏng.


À, tôi đã quên phần "không lặp lại trình tự" của PRNG, điều đó rất quan trọng. Lợi thế của việc truyền thông tin cho phép người nhận xác định mã phản hồi là gì? Điều đó có vẻ kém an toàn hơn là chỉ đơn giản là chọn mã phản hồi và sản xuất cả máy phát và máy thu với nó được biết đến ...
NickHalden

@NickHalden mã phản hồi là khác nhau đối với mỗi điều khiển từ xa và khách hàng sẽ muốn thêm nhiều điều khiển từ xa sau hoặc thay thế các điều khiển từ xa bị thiếu. Nó chỉ cần cho đào tạo. Một số phiên bản an toàn hơn một chút yêu cầu một chuỗi các lần nhấn nút cụ thể trên điều khiển từ xa trước khi nó phát ra thông tin phản hồi bổ sung, nhưng nhìn chung hệ thống vẫn đủ an toàn đến mức ngay cả khi bạn phá vỡ mã hóa, bạn vẫn cần nhiều thông tin hơn trước đó. bit thông tin là đủ để bạn có được toàn bộ mã phản hồi.
Adam Davis

8

Lần đầu tiên tôi bắt gặp KeeLoq khi nghiên cứu con chip trong dụng cụ mở cửa nhà để xe. Bảng dữ liệu Microchip thực hiện tốt công việc giải thích cách thức hoạt động của nó.

Tóm lại:

  • máy thu duy trì một cơ sở dữ liệu của tất cả các máy phát, được khóa trên số sê-ri của chúng.
  • mỗi máy phát được liên kết với khóa mã hóa đối xứng (64 bit), có trên chip và cả trong cơ sở dữ liệu của máy thu.
  • mỗi máy phát được liên kết với số thứ tự tuần hoàn 16 bit, cũng được lưu trên chip và trong cơ sở dữ liệu.
  • khi máy phát được kích hoạt, nó sẽ tăng số thứ tự modulo 65536 (gói 16 bit) và gửi một gói chứa bitmask biểu thị nút nào được nhấn, ID nối tiếp và phiên bản được mã hóa của số sê-ri.
  • máy thu khớp với số sê-ri trong cơ sở dữ liệu, rút ​​chìa khóa ra và giải mã số sê-ri.
  • số sê-ri phải là mới; nó không thể là một số sê-ri được sử dụng gần đây, để bảo vệ chống lại các cuộc tấn công. (Xem hình 7.3 trong bảng dữ liệu).
  • nếu số sê-ri xác minh, thì máy thu có thể kích hoạt chức năng dựa trên mặt nạ bit của nút nào được nhấn.
  • nếu số sê-ri mới đi trước hơn 16 giá trị (người dùng vô tình ấn nút nhiều lần trong khi cách xa máy thu) thì phải thực hiện bắt tay thêm để đồng bộ hóa, cần phải nhấn thêm nút. (Người dùng sẽ thực hiện nhấn nút thêm, tin rằng có sự tiếp nhận xấu).

Việc thêm một máy phát mới vào cơ sở dữ liệu máy thu tương tự mơ hồ, ở mức độ cao, với phương pháp cấu hình nhấn nút để thêm máy khách vào điểm truy cập Wi-Fi. Người nhận được nói bằng cách nào đó đưa vào một chế độ theo đó nó chấp nhận một máy phát mới.

Một máy phát mới có thể được chấp nhận từ thông tin được truyền trong các thông điệp kích hoạt thông thường, nếu máy thu và máy phát có chung ID nhà sản xuất bí mật. Điều này là do khóa mã hóa 64 bit được lấy từ ID nhà sản xuất và thông tin nối tiếp của người nhận. (Xem phần 7.1).

Có một cách khác an toàn hơn cho vấn đề này: "Tìm hiểu an toàn". Điều này được bắt đầu theo một cách đặc biệt trên máy phát (ba nút được nhấn cùng một lúc). Máy phát gửi một gói đặc biệt: giá trị hạt giống 60 bit mà từ đó khóa mã hóa được lấy, có lẽ không phụ thuộc vào ID nhà sản xuất hoặc số sê-ri.

Khi máy thu không ở chế độ tìm hiểu, dĩ nhiên nó sẽ từ chối truyền từ các máy phát mà nó không biết.

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.