Xin chào mọi người!
Hôm nay mình mở luồng này để đưa ra một giải pháp bảo mật cho việc cập nhật phần mềm qua bootloader, đồng thời giới thiệu với các bạn một phần mềm bootloader mới toanh: Blasher!
Để bắt đầu, mình xin đưa ra một tình huống như sau: Bạn, một cao thủ, cung cấp sản phẩm là thiết bị điện tử mà bạn phát triển cho khách hàng. Mỗi lần cần nâng cấp phần mềm cho khách hàng hoặc vá lỗi phần mềm, bạn lại chạy đến tháo chip, thay chíp, hoặc văn minh hơn thì cắm giao tiếp ISP vào thiết bị để cập nhật phần mềm. Điều này đồng nghĩa với việc nếu khách hàng ở xa hoặc sản phẩm được đóng vỏ kĩ quá thì bạn sẽ rất vất vả.
Vậy giải pháp ở đây là gì?
Giải pháp mà các nhà sản xuất thiết bị cầm tay hay dùng là sử dụng một chương trình uprom. Khách hàng tải rom và phần mềm bootloader về, cắm sản phẩm vào máy tính và tự cập nhật phần mềm.
Tuy nhiên, nếu bạn cũng muốn làm như vậy thì khó khăn ở đây là gì? Đó chính là vấn đề bảo mật. Nếu bạn dùng các chương trình bootloader như Megaload (AVR) hay TinyBootloader (PIC) thì bạn phải gửi cho khách hàng file .HEX hoặc .BIN. Nếu khách hàng là người muốn sao chép sản phẩm của bạn thì sao? Đương nhiên bạn đã gửi cho họ công cụ để làm việc đó (file .HEX, .BIN). Đây chẳng khác nào hành động cầm roi tự quất vào mông...
Giải pháp cho vấn đề này rất đơn giản: Bạn mã hóa file .HEX hoặc file .BIN đó lại. Chương trình bootloader trên máy tính sẽ gửi dữ liệu được mã hóa xuống. Chương trình bootloader trong chíp sẽ giải mã dữ liệu máy tính truyền xuống. Vậy bạn làm việc này như thế nào? mã hóa bằng cách nào cho an toàn? Nếu đây không phải là chuyên môn của bạn thì bạn có thể sử dụng giải pháp của người khác.
Hôm nay mình xin giới thiệu với các bạn một chương trình bootloader mới toanh trên PC. Đó là Blasher!. Chương trình này hỗ trợ nạp bootloader cho AVR với đầu vào là file binary (.BIN).
Bạn dùng một tiện ích có tên là Secure Hex2Bin để chuyển file .HEX thành file .BIN mã hóa. Sau đó dùng Blasher để nạp.
Trước mắt các bạn cứ sử dụng mấy file hex mình gửi sẵn để làm bootloader. Khi nạp ISP thì chọn kích thước bootloader là 1024word (2K byte). Nếu Cho chip chạy tần số 8MHz thì trên Blasher chọn baud là 19200. Còn nếu cho chip chạy là thạch anh 16M thì chọn baud 38400. Password mã hóa trên phầm mềm SH2B là *******.
Software, Firmware cho bootloader bạn có thể xem trong file .zip mình up lên. Các bạn download và thử xem nhé.
(Mã nguồn về firmware booloader mình xin được up lên trong các bài viết sau. Khi có mã nguồn bạn có thể tự định nghĩa lại password mã hóa)
To be continued...
Hôm nay mình mở luồng này để đưa ra một giải pháp bảo mật cho việc cập nhật phần mềm qua bootloader, đồng thời giới thiệu với các bạn một phần mềm bootloader mới toanh: Blasher!
Để bắt đầu, mình xin đưa ra một tình huống như sau: Bạn, một cao thủ, cung cấp sản phẩm là thiết bị điện tử mà bạn phát triển cho khách hàng. Mỗi lần cần nâng cấp phần mềm cho khách hàng hoặc vá lỗi phần mềm, bạn lại chạy đến tháo chip, thay chíp, hoặc văn minh hơn thì cắm giao tiếp ISP vào thiết bị để cập nhật phần mềm. Điều này đồng nghĩa với việc nếu khách hàng ở xa hoặc sản phẩm được đóng vỏ kĩ quá thì bạn sẽ rất vất vả.
Vậy giải pháp ở đây là gì?
Giải pháp mà các nhà sản xuất thiết bị cầm tay hay dùng là sử dụng một chương trình uprom. Khách hàng tải rom và phần mềm bootloader về, cắm sản phẩm vào máy tính và tự cập nhật phần mềm.
Tuy nhiên, nếu bạn cũng muốn làm như vậy thì khó khăn ở đây là gì? Đó chính là vấn đề bảo mật. Nếu bạn dùng các chương trình bootloader như Megaload (AVR) hay TinyBootloader (PIC) thì bạn phải gửi cho khách hàng file .HEX hoặc .BIN. Nếu khách hàng là người muốn sao chép sản phẩm của bạn thì sao? Đương nhiên bạn đã gửi cho họ công cụ để làm việc đó (file .HEX, .BIN). Đây chẳng khác nào hành động cầm roi tự quất vào mông...
Giải pháp cho vấn đề này rất đơn giản: Bạn mã hóa file .HEX hoặc file .BIN đó lại. Chương trình bootloader trên máy tính sẽ gửi dữ liệu được mã hóa xuống. Chương trình bootloader trong chíp sẽ giải mã dữ liệu máy tính truyền xuống. Vậy bạn làm việc này như thế nào? mã hóa bằng cách nào cho an toàn? Nếu đây không phải là chuyên môn của bạn thì bạn có thể sử dụng giải pháp của người khác.
Hôm nay mình xin giới thiệu với các bạn một chương trình bootloader mới toanh trên PC. Đó là Blasher!. Chương trình này hỗ trợ nạp bootloader cho AVR với đầu vào là file binary (.BIN).
Bạn dùng một tiện ích có tên là Secure Hex2Bin để chuyển file .HEX thành file .BIN mã hóa. Sau đó dùng Blasher để nạp.
Trước mắt các bạn cứ sử dụng mấy file hex mình gửi sẵn để làm bootloader. Khi nạp ISP thì chọn kích thước bootloader là 1024word (2K byte). Nếu Cho chip chạy tần số 8MHz thì trên Blasher chọn baud là 19200. Còn nếu cho chip chạy là thạch anh 16M thì chọn baud 38400. Password mã hóa trên phầm mềm SH2B là *******.
Software, Firmware cho bootloader bạn có thể xem trong file .zip mình up lên. Các bạn download và thử xem nhé.
(Mã nguồn về firmware booloader mình xin được up lên trong các bài viết sau. Khi có mã nguồn bạn có thể tự định nghĩa lại password mã hóa)
To be continued...
Comment