GN⁺: 스마트한 덤 워치로 손목에 TOTP 토큰
(blog.singleton.io)- 최근 Sensor Watch에서 Casio F-91W의 새로운 교체 로직 보드를 받음
- F-91W는 세계에서 가장 인기 있는 쿼츠 시계 중 하나로, 약 9천만 대가 판매됨
- Sensor Watch 보드는 F-91W의 원래 쿼츠 무브먼트를 ARM Cortex M0+ 기반의 새로운 두뇌로 교체함
- 원래의 LCD 디스플레이, 버튼, 피에조 부저를 사용하며, 보드는 프로그래밍 가능함
- Sensor Watch 프로젝트는 수정하기 쉬운 시계 화면과 작은 유틸리티 앱을 제공함
- 블루투스 라디오는 없지만, 가벼운 유틸리티 시계 케이스와 몇 달 동안 지속되는 배터리 수명, 집에서 재구성할 수 있는 기능이 강력함
- 약 한 시간 만에 로직 보드를 교체하고, Google과 Github 계정의 2FA 비밀을 설정하여 자주 사용하는 OTP 코드를 손목에서 확인할 수 있었음
- 새로운 속도계 시계 화면을 작성하여 노젓기 스트로크미터나 케이던스 미터로 사용 가능함
- 컴퓨터에서 테스트하기 쉬운 wasm 기반 에뮬레이터도 제공됨
TOTP 시계 화면
- 이 시계 화면은 시간 기반 일회용 비밀번호(TOTP)를 생성하여 Google, Github 등 인기 있는 웹사이트에 안전하게 로그인할 수 있게 함
- 알람 버튼을 눌러 설정된 웹사이트/TOTP 비밀을 순환함
- 여러 웹사이트/TOTP 비밀을 지원하며, TOTP QR 코드에서 비밀을 추출하여 소스 코드에 추가해야 함
totp_face.c
편집
- 데모 키를 제거하고, 목록 끝에 키를 추가하려면:
-
static const uint8_t num_keys = 2;
에서 숫자를 하나 증가시킴 -
static uint8_t keys[] = {}
에 16진수 바이트를 쉼표로 구분하여 추가함 -
static const uint8_t key_sizes[] = {}
에 비밀의 크기를 추가함 -
static const uint32_t timesteps[] = {}
에30
항목을 추가함 -
static const char labels[][2] = {}
에 비밀의 레이블을 추가함
-
새로운 시계 화면 작성 – 속도계
- 이 시계 화면의 모든 코드는 메인 프로젝트에 제출한 pull request에서 찾을 수 있음
- 구현은 주로 하나의 메인 루프 함수에 있음
주요 이벤트 처리
- 시계 화면이 활성화되면 "RA"를 표시함
- MODE 버튼을 누르면 다음 시계 화면으로 이동함
- LIGHT 버튼을 누르면 조명을 켬
- ALARM 버튼을 누르면:
- 이전 버튼 누름과의 간격을 기반으로 계산된 속도를 업데이트함
- 틱 카운터를 재설정함
- 빠른 틱 주기를 요청함
- 매 틱마다 현재 속도를 표시하거나 분당 500회 이상일 경우 "Hi", 분당 1회 미만일 경우 "Lo"를 표시함
- 틱 카운터를 증가시킴
GN⁺의 정리
- Sensor Watch는 Casio F-91W의 기능을 확장하여 사용자 정의 가능한 시계 화면과 유틸리티 앱을 제공함
- ARM Cortex M0+ 기반의 새로운 로직 보드는 프로그래밍 가능하며, 다양한 기능을 추가할 수 있음
- TOTP 시계 화면은 인기 있는 웹사이트에 안전하게 로그인할 수 있는 기능을 제공함
- 새로운 속도계 시계 화면은 노젓기 스트로크미터나 케이던스 미터로 유용하게 사용 가능함
- 이 프로젝트는 시계의 기능을 확장하고 사용자 정의할 수 있는 흥미로운 기회를 제공함
Hacker News 의견
-
TOTP 비밀키를 웹페이지에 입력하는 것에 불편함을 느끼는 의견이 있음
- Linux에서
base32
와od
도구를 사용하여 변환 가능함 - 프로젝트는 멋지지만 시계 디자인은 별로임
- Linux에서
-
HN에서 기대하는 콘텐츠임
-
F-91W와 A158W는 같은 형태로, 가격 대비 매우 멋진 시계임
- 밴드가 팔털을 잡아당기는 경우는 거의 없음
- A168WGG는 총알 회색 밴드와 검은색 페이스를 가짐
- A168은 A158보다 약간 큼
-
GA-B2100-1AJF는 G-Shock 중에서도 스타일리시하며 많은 기능을 제공함
-
시계의 디스플레이 효율성이 놀라움
- 첫 번째 숫자는 0-5만 표시하면 됨
- 7만 문제가 됨
-
Nixon에서 일하는 사람은 이 프로젝트를 Nixon 디지털 시계에 적용하고 싶어함
-
손목시계를 재컴파일하고 다시 플래시해야 하는 점이 TOTP 사용을 제한할 수 있음
-
Casio 계산기 시계에 이런 기능이 있었으면 좋겠다는 의견이 있음
-
WASM 에뮬레이터가 Casio 이스터 에그를 에뮬레이트하지 않는 것 같음
-
이 프로젝트를 매일 사용하며, TOTP 코드를 정의하는 새로운 인터페이스를 구현했음
- 사용자 보정 기능을 추가하여 천식 측정기로 사용할 수 있음
- 시계의 정확성을 연간 약 10초로 향상시키는 보정 기능도 있음
- 커뮤니티가 성장 중이며, 최근에는 무한 러너 게임도 만들어졌음
- 유지 보수자들이 매우 친절함
- 오픈 소스 프로젝트에 시간을 투자하고 싶다면 추천함
-
SecurID 토큰과 함께 작동했으면 좋겠다는 의견이 있음
-
TOTP를 시계에 표시하는 것이 보안에 좋은지 의문을 제기함
- 시계를 잃어버리거나 도난당할 경우를 걱정함