Mục lục:

Bộ tạo Arduino TOTP: 3 bước
Bộ tạo Arduino TOTP: 3 bước

Video: Bộ tạo Arduino TOTP: 3 bước

Video: Bộ tạo Arduino TOTP: 3 bước
Video: Học lập trình Arduino KHÔNG HỀ KHÓ - Bộ KIT học tập Arduino Uno R3 BLK 2024, Tháng bảy
Anonim
Máy phát điện Arduino TOTP
Máy phát điện Arduino TOTP
Máy phát điện Arduino TOTP
Máy phát điện Arduino TOTP
Máy phát điện Arduino TOTP
Máy phát điện Arduino TOTP

Nguồn cảm hứng

Có một người bạn quan tâm đến mật mã và bảo mật, tôi muốn tạo ra một món quà sinh nhật hoàn hảo.

* Đây là một dự án tôi thực hiện như một món quà sinh nhật và được tạo ra trong điều kiện thời gian eo hẹp (xin thứ lỗi cho tay nghề lộn xộn)

LƯU Ý: Thế hệ TOTP được sử dụng trong dự án này tạo và sử dụng mã 6 chữ số, nhưng do phần cứng hiện có của tôi, tôi đã chọn cắt 2 chữ số ở cuối và hiển thị và sử dụng 4, được cho là (nhưng không đáng kể) làm giảm Bảo vệ.

Thông tin chung

Dự án này tạo mã mới sau mỗi 30 giây bằng cách sử dụng khóa chia sẻ trước và thời gian hiện tại (được theo dõi bằng cách sử dụng mô-đun đồng hồ thời gian thực) và hiển thị mã đó trên màn hình khi nhấn nút. Trường hợp sử dụng phổ biến nhất sẽ là xác minh hai yếu tố dựa trên Mật khẩu một lần dựa trên thời gian (TOTP) và Mật khẩu một lần dựa trên HMAC (HOTP) để xác thực.

TOTP là một thuật toán tính toán mật khẩu dùng một lần từ khóa bí mật được chia sẻ và thời gian hiện tại. HTOP là một thuật toán sử dụng thuật toán HMAC để tạo mật khẩu một lần.

Các công ty như Google, Microsoft và Steam đã sử dụng công nghệ TOTP để xác thực hai yếu tố của họ

Liên kết thú vị

Bài viết giải thích cách Google sử dụng công nghệ này để xác thực người dùng -

Việc triển khai JavaScript của HOTP và TOTP có thể được sử dụng khi tạo phần mềm bằng cách sử dụng dự án này -

Thư viện mật mã cho Arduino được sử dụng trong dự án này -

Giấy TOTP -

Mức độ chuyên môn

Có thể hướng dẫn này dành cho những người đam mê quan tâm đến bảo mật và có thể muốn triển khai một thành phần phần cứng tốt cho thế hệ TOTP của họ. Tài liệu hướng dẫn này được viết cho khán giả đã hiểu các kiến thức cơ bản về diễn giải sơ đồ điện tử và lập trình thô sơ, nhưng nếu bạn chỉ định làm theo chính xác Tài liệu hướng dẫn này, đừng lo lắng nếu bạn không có kinh nghiệm và hãy đặt câu hỏi trong bình luận! Hơn nữa, dự án cũng có thể thú vị đối với các nhà sản xuất có kinh nghiệm hơn vì sản phẩm cuối cùng không chỉ là một phần tốt đẹp để có xung quanh (theo ý kiến của tôi), mà còn có rất nhiều tiềm năng để mở rộng và các tính năng mới mà không gặp nhiều rắc rối.

Quân nhu

Vật liệu:

  1. 1x Arduino Nano (Amazon)
  2. 1x Mô-đun đồng hồ thời gian thực (RTC) DS3231 AT24C32 (Amazon)
  3. 1x SH5461AS Cathode chung 4 chữ số 7 đoạn (Amazon)
  4. 1x Nút ấn (Amazon)
  5. Điện trở 1x 10k (Amazon)
  6. TÙY CHỌN PCB 1x 5x7cm (Amazon)
  7. TÙY CHỌN Dây hàn với PCB
  8. TÙY CHỌN 1x Breadboard để thử nghiệm (Amazon)

Bước 1: Lắp ráp và kiểm tra

Lắp ráp và kiểm tra
Lắp ráp và kiểm tra
Lắp ráp và kiểm tra
Lắp ráp và kiểm tra
Lắp ráp và kiểm tra
Lắp ráp và kiểm tra

Lắp ráp tất cả các thành phần trên breadboard và đấu dây chúng theo sơ đồ đấu dây đính kèm (tệp Fritzing có ở đây).

Đảm bảo rằng bạn đã cài đặt Arduino IDE (có thể tìm thấy nó trên mạng nếu bạn không có) và cài đặt các thư viện sau:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Tải xuống bản phác thảo đính kèm (cũng có thể truy cập tại đây: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) và mở nó bằng Arduino IDE. Mở liên kết này (https://www.lucadentella.it/OTP/) và nhập bất kỳ tên nào vào trường tên tài khoản và khóa bí mật tùy chỉnh (dài 10 ký tự) vào trường sau, đảm bảo lưu cả hai giá trị đó ở một nơi an toàn để sao lưu. Sao chép nội dung của trường "Arduino HEX array:" và chuyển trở lại trình chỉnh sửa Arduino, thay thế mảng trên dòng 25 (hmacKey) bằng mảng bạn đã sao chép từ trang web.

Sau khi kiểm tra kỹ từng kết nối dây, hãy đảm bảo rằng mô-đun RTC có một ô đồng xu trong đó và kết nối Arduino với máy tính xách tay của bạn bằng dây USB mini và tải lên bản phác thảo đính kèm.

Sau khi tải lên, khi nhấn nút, một số sẽ hiển thị trên màn hình. Nếu bạn tải xuống ứng dụng Google Authenticator trên điện thoại thông minh và quay lại trang web được sử dụng để tạo mảng HEX, quét mã QR hoặc nhập "mã Google Authenticator" vào ứng dụng, bạn sẽ thấy một số hiển thị trong ứng dụng. Nếu mọi thứ hoạt động chính xác, khi bạn nhấn nút, 4 chữ số hiển thị phải khớp với 4 chữ số đầu tiên của mã hiện tại được hiển thị trên ứng dụng điện thoại thông minh. Nếu không đúng như vậy, hãy đảm bảo rằng máy tính đang được sử dụng để tải lên mã Arduino được đặt thành giờ UTC và thử lại.

Bước 2: Chuyển sang PCB

Chuyển sang PCB
Chuyển sang PCB
Chuyển sang PCB
Chuyển sang PCB

Sau khi đảm bảo mọi thứ đều hoạt động bình thường, bạn có thể chuyển các thành phần vào PCB và hàn mọi thứ lại với nhau theo cách mà bạn có vẻ phù hợp. Tôi đã đính kèm một sơ đồ PCB ngoài tệp Fritzing (có sẵn tại đây). Lưu ý rằng tôi đã đặt tất cả các thành phần trên cùng của bo mạch để tăng tính thẩm mỹ, nhưng cũng có thể được gắn bên dưới và sau đó được bao bọc trong một số loại vỏ để làm cho nó sạch sẽ hơn. Tôi cắt và dán các que kem nóng có màu Sharpie vào các cạnh của PCB để tạo ra một hộp tạm thời cho thiết bị. Một bước tùy chọn khác là gắn một kẹp pin 9 volt vào các chân VIN và GND của Arduino, làm cho nó hoạt động bằng pin.

Bước 3: Đã hoàn thành

Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!

Đây là cách tạo ra trình tạo hoàn chỉnh của tôi, nếu bạn đã làm theo và tự tạo một cái, hãy chia sẻ nó bên dưới!

Hãy nhớ bỏ phiếu Người hướng dẫn của tôi cho Cuộc thi STEM nếu bạn thấy phù hợp, và để lại bình luận / bất kỳ câu hỏi nào bạn có thể có ở bên dưới!

Đề xuất: