1P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 파일을 암호화하고 복구 키를 여러 친구에게 분할해 보관할 수 있는 오프라인 도구로, Shamir의 비밀 분할 알고리듬을 사용
  • 예를 들어 5명의 친구에게 키 조각을 나누고, 3명이 협력하면 복구 가능, 단 한 명만으로는 접근 불가
  • 각 친구는 recover.html 파일이 포함된 독립형 번들을 받아, 인터넷 없이 브라우저에서 복구 수행 가능
  • 오픈소스(Apache-2.0) 로 공개되어 있으며, 서버나 계정 시스템 없이 로컬에서만 실행
  • 개인 데이터 보호와 신뢰 분산을 동시에 달성할 수 있는 간단하고 자급적인 복구 방식 제공

ReMemory 개요

  • ReMemory는 파일을 암호화한 뒤 복호화 키를 여러 신뢰할 수 있는 친구에게 분할해 전달하는 오프라인 도구
    • Shamir’s Secret Sharing을 이용해 키를 여러 조각으로 나누고, 특정 수 이상의 조각이 모이면 복구 가능
    • 예시로 5명에게 조각을 나누고, 3명이 협력하면 원본 파일 복구 가능
  • 각 친구는 recover.html 이 포함된 번들을 받아, 브라우저에서 오프라인으로 복구 절차 수행
    • 인터넷 연결이나 서버 접근이 필요하지 않으며, 웹사이트가 사라져도 복구 가능

동작 방식

  • 파일을 암호화한 후, 생성된 키를 여러 share로 분할해 친구들에게 배포
    • Encrypt → Split key → Distribute 순서로 진행
    • 복구 시 Combine shares → Decrypt → File recovered 절차로 원본 파일 복원
  • 서로 다른 조합의 친구들이 일정 수 이상 모이면 복구 가능 (예: 5명 중 3명)

특징 및 한계

  • 특징
    • 브라우저에서 실행되는 오프라인 도구
    • 복구 키를 친구 간에 분할해 보관 가능
    • 오픈소스(Apache-2.0) 로 공개
    • 웹사이트 없이도 복구 가능한 자급형 구조
  • 한계
    • 서비스나 회사 형태가 아님
    • 계정 시스템이나 클라우드 제품이 아님
    • 데이터를 외부에 저장하지 않음
    • 자체적으로 백업 솔루션 역할을 하지 않음

사용 방법

  • 데모 번들을 다운로드해 3개의 샘플 번들 확인 가능
    • 예: bundle-alice/recover.html을 브라우저에서 열고, Bob과 Carol의 README.txt 파일을 드래그해 추가
    • 임계치(3명)가 충족되면 자동으로 복호화 진행
  • 실제 사용 전 데모를 통해 친구들이 복구 과정을 체험 가능

신뢰와 검증

  • GitHub에서 전체 코드를 공개, 누구나 검토 가능
  • 자체 보안 감사 문서를 통해 암호화 선택 근거를 설명
  • 모든 처리는 로컬 브라우저 내에서 수행, 파일이 외부로 전송되지 않음
  • 실제 비밀 파일 사용 전, 데모 번들로 작동 방식 확인 권장
  • 암호화에는 age 도구를 사용, 현대적이고 신뢰받는 암호화 방식 적용

개발 배경

  • 개인이 사고를 당했을 때 신뢰할 수 있는 친구들이 중요한 파일에 접근할 수 있도록 하기 위해 제작
  • 단일 인물이나 서비스에 모든 권한을 맡기지 않기 위한 목적
  • 기존에 단순하고 독립적으로 복구 가능한 도구가 없어 직접 개발
  • 다른 사람들에게도 유용할 수 있어 공개 공유
Hacker News 의견들
  • 미래의 나를 낯선 사람처럼 대해야 함
    그 낯선 사람을 위해 글을 쓰면, 미래의 내가 고마워할 것임
    우리는 기억할 거라 생각하지만 실제로는 잊어버림
    너무 자신을 몰아붙이지 말고, 미래의 나를 위해 단순한 비전자식 기록 방식을 추천함
    가족이나 친구가 알아볼 수 있도록 간단한 암호를 넣는 것도 좋음 — 예를 들어 가족만 아는 암호, 어릴 적 키우던 반려동물 이름, 증조부 이야기 속 중간 이름 같은 것들임
    장모님과 대모님이 기억을 자주 잃기 시작했을 때, 나는 집안 곳곳에 Valet Bowl을 두고, 펜이 달린 작은 노트를 쓰게 했음
    잊으면 노트를 보고, 열쇠를 잃으면 그릇을 확인하게 함
    결국 ‘기억하려 하지 말고, 손이 기억하게 하라’는 훈련을 하는 중임

    • 이 댓글 말하는 거 맞지? 이전 HN 댓글 링크
      웃긴 건, 그릇은 안 만들었는데 그 댓글은 기억하고 있음. 지금은 차 키가 어딨는지 모르겠음. 그릇을 만들었어야 했음
    • 나는 코드 주석에서 늘 미래의 나에게 말을 거는 편임
      덕분에 미래의 나는 과거의 나에게 늘 감사함. 현재의 나도 행복함
  • 7명 중 5명이라는 건, 예를 들어 교통사고 같은 상황에서 동시에 2명 이상과 함께 있으면 안 된다는 뜻임
    단순한 기억 상실을 넘어, 혼수상태나 장기 입원 같은 상황도 고려해야 함
    신뢰할 수 있는 제3자가 청구서나 클라우드 요금 같은 걸 처리할 수 있도록 접근 권한을 마련해두는 게 실용적임

  • 나는 비밀 관리자 비밀번호를 내화·방수 금고에 잠긴 종이 일지에 적어둠
    위치는 나와 파트너만 알고 있음
    나머지 비밀번호는 모두 패스워드 매니저에 저장함

    • 나도 같은 방식인데, ‘내화 금고’는 과신하지 말라고 경고하고 싶음
      집이 전소될 정도의 화재면 금고 내부 온도도 충분히 높아져 내용물이 타버릴 수 있음
      은행 금고가 훨씬 안전한 대안임. 은행은 집보다 덜 타니까
    • 우리는 서로의 비밀을 담은 패스워드 매니저를 공유함
      이는 기억 상실보다는 사망 시 접근 문제를 대비한 것임
      신뢰가 낮은 상황이라면 변호사를 중개자로 두는 것도 가능함
    • 물리적 금고의 장점은 디지털과 달리 ‘완전히 공개되거나 완전히 잃는’ 극단이 아니라는 점임
    • 결국 사망 대비 백업 계획이 기억 상실 상황에도 통할 수 있음
    • 가족이 있다면, 집 밖의 신뢰할 수 있는 사람 한 명에게도 정보를 일부 공유하길 권함
  • 이런 아이디어가 주목받는 게 반가움
    예전에 같은 HashiCorp 라이브러리로 비슷한 걸 만들었지만 완성도 부족으로 공개하지 못했음
    passcrux 프로젝트를 다시 손볼 계획임
    내 목표는 패스워드 매니저의 마스터 비밀번호 보존이었고, 친구들에게 분할된 백업을 맡기는 구조였음
    Shamir 분할은 쉬웠지만, 부분 데이터 손실 보정을 위한 에러 정정 기능을 추가하고 싶음

  • 기억 상실을 대비한다면 다음 상황도 고려해야 함

    • 자신이 만든 비밀번호 체계를 잊을 수 있음
    • 복호화해야 할 데이터가 있다는 사실조차 잊을 수 있음
    • 판단 능력이 떨어져 다른 사람이 결정을 대신할 수 있음
    • 생체 인증이 작동하지 않거나, 시도 제한으로 잠길 수 있음
    • 사고에 가족이나 친구도 함께 휘말릴 수 있음
      그래서 나는 단순히 물리적 보안에 의존하는 게 최선이라 생각함
      집 문서처럼 평문으로 적되, 무엇이며 왜 필요한지, 접근 방법을 명시해야 함
    • 그래서 나는 모든 단계를 위한 공개용 복구 가이드를 따로 둠
  • 기억 상실 대비는 상속 계획과는 다르지만, 생체 인증을 활용할 수 있음
    그래도 두 가지를 통합해 한 번에 대비하는 게 낫다고 생각함

  • 우리 가족은 내가 어디에 두었는지 아는 ‘빨간 노트’ 를 알고 있음
    거기에 내 디지털 자산 접근법이 자세히 적혀 있음

  • 다들 하는 것처럼 모니터에 비밀번호 스티커 붙이면 됨

    • 그럴 거면 최소한 YubiKey Bio 같은 생체 인증을 함께 쓰길
    • 난 키보드 밑에 붙여둠. 훨씬 안전함 :p
  • 내 친구가 예전에 이런 걸 만들었음
    keybearer 소개 페이지 / GitHub 저장소

    • 믿기지 않음! 오래전부터 이런 걸 찾고 있었는데, 대부분은 Shamir 암호화만 하고 UX가 엉망이었음
      14년 전에 이걸 구현했다니 대단함
      나는 복구 앱과 비기술자용 PDF 설명서를 ZIP에 함께 넣는 방식으로 만들었음
      복구 경험을 최대한 부드럽게 하려는 시도였음
      네 버전이 내가 본 것 중 유일하게 제대로 작동하는 사례임. 존경함
  • 이런 시스템이 작동하려면 친구가 있어야 함