보안·신뢰

내 파일은 내 것입니다. 아직 부족한 점도 숨기지 않습니다

파일은 우리 서버로 올라가지 않습니다. 암호화한 클라우드 백업은 내 기기에만 있는 키로만 열립니다. 그리고 Syncra는 파일을 바꾸거나 지우기 전에 이전 사본부터 보관합니다.

마지막 검토:

데이터를 잃지 않기 위한 원칙

찾아서 켜야 하는 설정이 아니라 동기화 엔진 자체의 규칙입니다.

  • 이전 사본을 먼저 보관합니다

    Syncra가 파일을 바꾸거나 지우기 전에, 이전 사본은 버전 보관소(.syncra/versions)로 옮겨집니다. 버전을 복원해도 그 시점의 현재 파일이 다시 버전으로 남기 때문에 복원도 되돌릴 수 있습니다. 버전은 설정한 보관 기간 동안 유지됩니다.

  • 대량 삭제는 멈추고 묻습니다

    폴더의 상당 부분을 지우게 되는 실행은 멈추고 확인을 기다립니다. 이 안전장치는 끌 수 없고 기준값만 조정할 수 있으며, AI·MCP 에이전트는 스스로 해제할 수 없습니다. 반드시 사람이 확인해야 합니다.

  • 먼저 계획하고, 그다음 실행합니다

    모든 변경은 실행 전에 계획되고 미리 볼 수 있습니다. MCP로 연결된 AI 비서는 미리 본 계획만 실행할 수 있고, 그사이 파일이 바뀌었다면 계획을 다시 세워야 합니다.

  • 충돌해도 두 버전이 모두 남습니다

    양쪽에서 같은 파일이 바뀌면, 한쪽이 다른 쪽을 덮어쓰지 않고 두 버전을 나란히 보관합니다.

  • 안전한 쓰기, 폴더 밖으로는 나가지 않음

    전송 중인 파일은 임시 이름(.syncra-part)으로 쓴 뒤 한 번에 교체합니다. 심볼릭 링크는 따라가지 않고, 경로가 동기화 폴더 밖으로 벗어날 수도 없습니다.

  • 핵심 코드에 unsafe 없음

    동기화 엔진, 네트워크, 클라우드, 서비스, 데몬, AI, MCP 크레이트와 데스크톱 셸은 #![forbid(unsafe_code)]로 컴파일되어, 메모리 안전하지 않은 코드가 실수로 들어올 수 없습니다. 외부 의존성은 이 보장에 포함되지 않습니다.

암호화와 키 관리

Syncra에는 데이터가 오가는 길이 세 가지 있고, 길마다 보호 방식이 다릅니다.

  • 암호화를 켠 클라우드 백업

    파일 내용은 업로드 전에 내 PC에서 암호화됩니다. 64 KiB 청크마다 무작위 256비트 키로 XChaCha20-Poly1305를 적용하고, 각 청크는 자신의 순서와 원격 안의 전체 경로까지 인증합니다. 그래서 바이트 변조, 순서 바꾸기·잘라내기, 파일 바꿔치기, 잘못된 키를 읽을 때 모두 감지됩니다. 클라우드 업체에는 암호문만 보입니다.

  • 키는 어디에 있나

    암호화 키와 복구 키는 운영체제의 보안 자격 증명 저장소(Windows 자격 증명 관리자, macOS 키체인, Linux Secret Service)에만 다른 클라우드 비밀과 함께 보관됩니다. 설정 파일에는 쓰지 않으며 Syncra로 전송하지도 않습니다. 복구 키로 다른 PC에서 백업을 열 수 있습니다. 키와 PC를 모두 잃으면 우리를 포함해 누구도 그 파일을 복구할 수 없습니다.

  • 내 네트워크 안의 직접 동기화

    기기는 QR 코드 또는 코드, 일회용 비밀, 6자리 비교 코드로 페어링합니다. 연결은 인증 기관 대신 기기 공개키를 고정한 QUIC·TLS 1.3을 쓰고, 데이터 청크는 XChaCha20-Poly1305로 봉인됩니다. 우리 서버를 거치지 않습니다.

누가 무엇을 볼 수 있나

데이터내 기기Syncra 서버내 클라우드 업체
암호화한 클라우드 원격의 파일 내용읽을 수 있음받지 않음암호문만 보임
내 네트워크에서 동기화하는 파일 내용읽을 수 있음받지 않음관여하지 않음
암호화 키와 복구 키OS 자격 증명 저장소에 보관받지 않음받지 않음
암호화된 클라우드 연결의 폴더 구조, 파일 개수, 대략적 크기, 수정 시각읽을 수 있음받지 않음보임 — 파일·폴더 이름 자체는 데스크톱 0.1.3 이후 만든 연결에서 암호화됨
계정 정보: 이메일, 이름, 기기 공개키내 정보저장함(개인정보처리방침 참고)관여하지 않음
카드 정보결제 대행사 화면에서 입력받지 않음관여하지 않음

암호화는 클라우드 원격마다 직접 켜야 하고, 켠 뒤에는 끌 수 없습니다. 켜지 않은 원격은 업체에 일반 파일로 저장됩니다. OS 자격 증명 저장소가 없는 서버에서는 비밀 정보가 암호화된 파일에 저장되며, 그 한계는 문서에 설명되어 있습니다.

계정과 기기

컨트롤 플레인(계정·팀·결제·기기 목록)은 내 파일을 보지 못합니다. 보관하는 정보는 이렇게 보호합니다.

  • 서명된 기기 요청

    기기마다 고유한 Ed25519 키 쌍이 있습니다. 요청은 메서드, 경로, 시각, 일회용 nonce, 본문의 SHA-256 해시에 대해 서명됩니다. 서버는 nonce를 한 번만 받아들이고 시각 차이가 5분을 넘는 요청은 거부하므로, 가로챈 요청을 다시 보낼 수 없습니다. 기기를 폐기하면 즉시 차단됩니다.

  • 로그인

    이메일 링크, Google 계정, 패스키로 로그인할 수 있습니다. 세션 토큰은 서버에 해시로만 저장됩니다. 브라우저 세션은 CSRF 토큰과 출처(Origin) 검사로 교차 사이트 요청을 막습니다.

  • 저장된 비밀은 암호화

    결제 대행사 키 같은 운영 비밀은 AES-256-GCM으로 봉인해 저장하며, 키는 플랫폼 비밀로 따로 보관합니다. 브라우저로는 절대 돌려주지 않습니다.

  • 위조할 웹훅이 없는 결제

    결제 웹훅 수신 주소를 열어 두지 않습니다. 금액은 서버에서만 정하고, 결제 후에는 서버가 결제 대행사에 직접 물어 확인하며 미확정 결제는 10분마다 다시 확인합니다. 카드 정보는 결제 대행사에만 있습니다.

  • 고칠 수 없는 감사 로그

    계정·기기·팀 작업은 감사 로그에 기록되고, 이 테이블은 데이터베이스 수준에서 UPDATE와 DELETE를 거부합니다. Business 워크스페이스는 내보낼 수 있습니다.

랜섬웨어와 복구

동기화 도구는 작업만큼 빠르게 피해도 퍼뜨릴 수 있습니다. Syncra는 그것을 막도록 만들어졌습니다.

  • 스스로 멈춥니다

    Syncra는 내 기기에서 대규모 피해의 징후를 살핍니다. 확장자 일괄 변경, 엔트로피가 높은 덮어쓰기, 갑작스러운 대량 수정·삭제, 랜섬 노트 파일명 등입니다. 점수가 일시정지 수준에 이르면 해당 쌍은 보호 상태가 되어 사람이 재개할 때까지 자동·수동 실행이 모두 거부되므로, 한쪽의 피해가 반대쪽으로 번지지 않습니다. AI 에이전트는 재개할 수 없습니다.

  • 한 번에 복구

    복구는 피해 없는 쪽을 마지막 정상 시점으로 되돌리고, 피해 입은 쪽을 정상 쪽과 같게 다시 맞춘 뒤 보호를 풉니다. 대체되는 손상 파일은 삭제하지 않고 버전 보관소로 옮깁니다.

  • 시점 복원

    한쪽 전체 또는 하위 폴더를 원하는 시각의 모습으로 되돌립니다. 버전 보관소와 감사 로그로 재구성하며, 복원은 아무것도 파괴하지 않고 스스로 기록되므로 다른 복원으로 취소할 수 있습니다.

감지는 휴리스틱이라 공격을 놓치거나 오탐을 낼 수 있습니다(오탐은 직접 해제할 수 있습니다). Syncra 밖에서 폴더를 직접 바꾼 내용은 기록되지 않으므로 시점 복원으로는 되돌릴 수 없고, 그때는 정상 쪽을 다시 복사하는 방식으로 복구합니다. 어느 것도 오프라인·원격지 백업을 대신하지 않습니다.

직접 확인할 수 있는 것

모든 것을 믿어 달라고 할 수는 없으니, 직접 확인할 수 있는 것을 적습니다.

  • 서명된 릴리스

    Windows 설치 파일과 명령줄 도구는 PROJECTTEAMFORYOU 앞으로 발급된 코드 서명 인증서로 서명됩니다. 릴리스 파이프라인은 서명이나 타임스탬프가 검증되지 않는 파일을 게시하지 않으며, SHA-256 체크섬(SHA256SUMS)은 서명 뒤에 계산하므로 받은 파일과 직접 비교할 수 있습니다.

  • 의존성 감시

    Dependabot이 매주 의존성 업데이트를 제안하고, 모든 변경은 지속적 통합에서 RustSec 취약점 DB와 npm 고위험 감사로 점검합니다.

  • 엄격한 웹사이트

    페이지마다 해당 페이지에 등록된 해시의 스크립트만 허용하는 콘텐츠 보안 정책(CSP), HSTS, 프레임 삽입 금지, 콘텐츠 유형 추측 금지를 적용합니다. 웹앱은 폴더를 브라우저 안에서 처리하며 아무것도 업로드하지 않습니다.

  • 표준 security.txt

    보안 연락처와 신고 정책은 연구자가 찾는 표준 위치인 /.well-known/security.txt에 공개합니다.

취약점 신고

제목에 “Security”를 넣어 [email protected]으로 보내 주세요. 문제를 고치기 전에는 공개 이슈를 열거나 내용을 공개하지 말아 주세요. 한국어와 영어로 받습니다.

[email protected]

포함해 주세요

  • 발견한 내용과 영향받는 구성 요소 또는 URL
  • 재현 절차 또는 개념 증명
  • 테스트한 버전 또는 빌드
  • 연락받을 방법

대응 시간 목표

  • 신고 접수는 영업일 3일 이내에 알려 드립니다.
  • 초기 평가는 7일 이내에 공유합니다.
  • 치명적 문제는 14일, 그 외는 90일 이내에 수정 또는 완화 조치를 내는 것을 목표로 합니다.

이는 보장이 아닌 목표입니다. 다른 사람의 데이터와 서비스 장애를 피한 선의의 연구에는 법적 조치를 하지 않습니다. 현재 유료 버그 바운티는 운영하지 않습니다.

현재의 한계

없는 것을 말하지 않는 보안 페이지는 읽을 가치가 없습니다.

  • 아직 독립 감사를 받지 않았습니다

    Syncra는 독립된 제3자의 검토를 받은 적이 없고, ISO 27001이나 SOC 2 같은 보안 인증도 없습니다. 이 페이지의 모든 내용은 소프트웨어가 어떻게 만들어졌는지에 대한 우리 자신의 설명입니다.

  • 소스 코드는 비공개입니다

    지금은 코드를 직접 읽어 볼 수 없습니다. 그래서 위의 설계 사실을 공개하고, 릴리스에 서명하고 체크섬을 제공합니다.

  • 클라우드 암호화는 구조를 숨기지 않음

    새로 만든 암호화 연결(데스크톱 0.1.3 이후)에서는 파일·폴더 이름도 암호화되지만, 폴더 구조·파일 개수·대략적 크기·수정 시각은 클라우드 업체에 보입니다. 그 이전에 만든 연결은 이름이 그대로 보이며, 암호화는 연결마다 켜야 합니다.

  • 침해된 PC는 지킬 수 없습니다

    로그인한 상태에서 악성코드가 컴퓨터를 장악하면, OS 자격 증명 저장소를 포함해 내 계정이 접근할 수 있는 모든 것에 접근할 수 있습니다. Syncra는 엔드포인트 보안이나 오프라인 백업을 대신하지 않습니다.

  • 키를 잃으면 데이터도 잃습니다

    암호화 키와 복구 키는 나만 갖고 있으므로, 둘 다 잃으면 우리도 암호화된 백업을 복구할 수 없습니다.

로드맵

약속이 아닌 계획입니다. 날짜가 정해진 것은 없습니다.

  • 독립 보안 점검

    범위, 위협 모델, 데이터 흐름 문서, 의존성 목록을 갖추며 독립 검토를 준비하고 있습니다. 점검 기관과 일정은 정해지지 않았습니다.

  • 위협 모델 요약 공개

    우리가 감수하는 위험을 포함한 위협 모델 요약을 공개해, 누구든 비판할 수 있게 하려 합니다.

  • Business용 싱글 사인온

    Business 워크스페이스를 위한 회사 ID 공급자 로그인을 계획하고 있습니다.

보안에 대해 궁금하신가요?

[email protected]으로 문의해 주세요. 답할 수 있는 것은 답하고, 답할 수 없으면 그렇다고 말씀드립니다.