에어갭 노트북에 파일을 보내기 위한 페이지를 완성했다. 홈페이지에도 올려뒀다.
이걸로 작은 파일(문서, 사진 정도)을 옮길 수 있으니, 해보고 싶은 분들은 PSBT 페이지의 QR SENDER로 한번 해보셔요들. 작동 잘 된다.
1. 만든 방식
원리는 단순하다. 파일을 base64로 인코딩한 뒤, QR코드 하나가 담을 수 있는 크기만큼 잘게 쪼갠다. 그 조각들을 순서대로 QR코드로 바꿔서 화면에 계속 띄워준다. 에어갭 노트북 쪽 카메라가 그 화면을 계속 찍고 있다가, 조각을 다 모으면 원래 파일로 복원하는 방식이다.
중간에 조각 하나를 놓쳐도 상관없다. 안내 프레임을 주기적으로 다시 끼워 넣으면서 끝날 때까지 전체를 반복 재생하기 때문에, 놓친 조각도 결국 다시 나온다.
2. 여전히 단방향
전에도 언급했지만, 이 노트북은 여전히 단방향이다. QR SENDER는 노트북 안으로 파일을 넣어주는 기능이지, 에어갭 노트북에서 밖으로 파일을 빼내는 기능은 만들어 두지 않았다.
들어오는 문은 넓혔지만, 나가는 문은 여전히 없다.
3. RECEIVER도 만들었다
이번엔 받는 쪽도 마저 만들었다. QR RECEIVER는 카메라로 QR코드를 계속 읽어들이면서 조각들을 자동으로 모으고, 체크섬까지 맞으면 원래 파일로 복원해서 저장 버튼까지 띄워준다.
이제 두 기기 사이에 인터넷도, 블루투스도, USB도, 선 하나 없이 문서나 사진을 주고받을 수 있게 됐다. 화면 하나와 카메라 하나면 끝이다.
물론 에어갭 노트북 쪽은 여전히 RECEIVER만 돌린다. 보내는 쪽(SENDER)은 딴 기기 몫이다 — 이 노트북에서 뭔가를 내보내는 기능은 여전히 없다.
재밌다.