모든 글

읽는 데 7분

CardanoWall이 볼 수 있는 것(그리고 볼 수 없는 것)

CardanoWall은 계정, 결제, 공개 증명 데이터를 볼 수 있습니다. 설계상 평문 신원 시드, 개인 키, 봉인된 파일의 평문은 보지 못합니다.

CardanoWall은 일반적인 서비스 데이터와 사용자가 게시하는 공개 증명 레코드를 볼 수 있습니다. 설계상 평문 신원 시드, 개인 키, 사용자가 봉인하는 파일의 평문은 보지 못합니다. 가장 민감한 자료는 당사 서버가 아니라 사용자의 기기에서 보관되고 사용됩니다.

이것이 개인정보 보호 모델을 정직하게 설명한 버전입니다. CardanoWall은 게이트웨이 위에 구축된 호스팅 제품이므로, 동작하려면 실제로 계정, 결제, 게시, 색인 데이터가 필요합니다. 흥미로운 질문은 "CardanoWall이 무언가를 볼 수 있는가?"가 아닙니다. 봅니다. 흥미로운 질문은 그것이 어떤 종류의 데이터를 보는지, 그리고 무엇이 당사에는 암호화된 채로 남는지입니다.

이 글은 그 경계선을 범주별로 짚어 봅니다.

CardanoWall은 어떤 계정 데이터를 저장합니까?

일반적인 호스팅 서비스 데이터입니다. 제품을 어떻게 사용하느냐에 따라 다음이 포함될 수 있습니다.

  • 계정 식별자;
  • 이메일 주소나 연결된 OAuth 계정 참조 같은 로그인 식별자;
  • 결제 기록과 선불 잔액;
  • API 키 메타데이터와 API 키의 해시 형태(평문 키는 절대 저장하지 않습니다);
  • 충전을 위한 결제 처리사 참조;
  • 계정 수준 설정;
  • 계정 작업의 타임스탬프;
  • 지원 및 운영 메타데이터;
  • 속도 제한 및 보안 로그.

이는 계정 기반 서비스라면 어디서나 보유하는 것과 같은 형태의 데이터입니다. 그중 어느 것도 사용자의 신원 시드가 아닙니다.

어떤 신원 데이터를 볼 수 있습니까?

공개 신원 키뿐이며, 비공개 정보는 전혀 볼 수 없습니다.

CardanoWall에서 신원은 단일 32바이트 신원 시드에서 결정론적으로 파생되며, 서비스가 자신의 역할을 수행하는 데 필요한 것은 그 신원의 공개 키입니다. 서비스는 이 공개 키로 사용자의 신원을 나열하고, 서명된 증명의 수를 집계하고, 소유 확인을 거친 뒤 신원을 계정에 연결하고, 사용자가 공개를 선택한 경우 공개 프로필을 보여 줍니다.

따라서 서비스는 다음과 같은 공개 신원 데이터를 볼 수 있습니다.

  • Ed25519 서명 공개 키;
  • X25519 수신 공개 키;
  • 선택적 하이브리드 포스트 양자 수신 공개 키;
  • 서비스 데이터베이스에 기록된 신원의 생성 시각;
  • 계정과 신원 사이의 연결 상태;
  • 사용자가 활성화한 공개 프로필 필드.

이는 공개되었거나 서비스 수준의 사실입니다. 비공개 서명 키나 비공개 수신 키가 아니며, 다시 사용자의 시드로 되돌릴 수도 없습니다.

서버가 절대 볼 필요가 없는 것은 무엇입니까?

서버가 사용자 행세를 할 수 있게 만드는 모든 것입니다. 서버는 다음을 필요로 하지 않으며, 사용 가능한 형태로 보관하지 않도록 설계되었습니다.

  • 평문 신원 시드;
  • Ed25519 비공개 서명 키;
  • X25519 비공개 수신 키;
  • 하이브리드(포스트 양자) 수신 비밀 값;
  • 패스키가 생성하는 잠금 해제 자료;
  • 복호화된 신원 볼트의 내용;
  • 봉인된 파일의 복호화된 평문.

이 모든 것은 잠금을 해제한 뒤 사용자의 기기에서, 또는 사용자가 관리하는 백업 안에서 보관됩니다. 신원을 그대로 옮길 수 있는 정본 사본은 그 시드입니다. 호스팅된 편의 계층이 아니라 바로 그 하나의 산출물이 진짜 백업입니다.

암호화된 볼트는 서버에 무엇을 드러냅니까?

볼트가 존재한다는 사실 정도이며, 그 외에는 거의 없습니다.

새 기기에서 패스키로 잠금을 해제할 수 있도록, CardanoWall은 계정마다 현재 암호화된 볼트 행 하나를 저장합니다. 서버는 그 행의 메타데이터, 즉 마지막으로 갱신된 시점, 버전 번호, 어떤 등록된 패스키 자격 증명이 연결되어 있는지를 읽을 수 있습니다. 잠금 해제 UX와 수명 주기 관리에 그 정보가 필요하기 때문입니다.

서버가 할 수 없는 일은 볼트를 복호화하는 것입니다. 볼트는 사용자의 WebAuthn 패스키 잠금 해제 요소(PRF 스탠자)에만 전적으로 향하는 단일 age 스타일 암호문입니다. 비밀번호에서 파생되는 잠금 해제 경로도, 공개 키 수신자도 의도적으로 추가하지 않았으므로, 저장된 암호문은 서버가 오프라인으로 무차별 대입할 수 있는 어떤 것도 노출하지 않습니다. 이는 서비스 계층의 편의이지 보관 대행이 아닙니다. 당사는 잠긴 상자를 보관하고, 그 유일한 열쇠는 사용자의 패스키가 보관합니다.

볼트의 평문에는 사용자의 신원 시드와 비공개 표시 레이블이 담깁니다. 바로 서버가 읽어서는 절대 안 되는 자료입니다. 같은 설계가 폐기도 관장합니다. 패스키를 제거하면 볼트가 남은 요소에 다시 암호화되고 이전 암호문은 완전히 삭제되므로, 제거된 인증기는 더 이상 현재 볼트를 열 수 없습니다. 이는 현재 상태에 대한 실질적인 폐기이지만, 소급되지는 않습니다. 공격자가 이미 빼내어 여전히 열 수 있는 사본은 별개의 문제입니다. 패스키가 신원 볼트를 보호하는 방식에서 이 점을 더 깊이 다룹니다.

어떤 증명 데이터가 공개됩니까?

증명 자체입니다. Label 309 레코드는 트랜잭션 참조를 가진 사람이라면 누구나 검증할 수 있도록 바로 그 목적으로 Cardano에 게시됩니다. 레코드에 따라 공개 데이터에는 다음이 포함될 수 있습니다.

  • 콘텐츠 해시;
  • 트랜잭션 참조;
  • 체인이 부여하는 블록 타임;
  • 레코드의 구조;
  • 작성자가 서명을 선택한 경우의 서명과 서명자 공개 키;
  • 배치 레코드의 경우 Merkle 루트;
  • 암호화된 봉투 메타데이터;
  • 콘텐츠 주소 지정 스토리지 URI(ar://, ipfs://);
  • 암호화된 수신자 슬롯의 개수;
  • 봉인된 레코드에 사용된 키 교환 계열.

이 데이터는 일부러 공개됩니다. 이것이 CardanoWall을 신뢰하지 않고도 증명을 검증 가능하게 만드는 요소입니다. 봉인된 레코드의 경우, 거기에 없는 것에 주목하십시오. 파일의 평문은 체인에 절대 올라가지 않습니다. 관찰자는 레코드가 봉인되었다는 사실, 수신자 슬롯이 몇 개인지, 어떤 키 교환 계열을 사용하는지는 볼 수 있지만, 수신자가 누구인지와 내용이 무엇인지는 볼 수 없습니다.

스토리지 게이트웨이는 무엇을 볼 수 있습니까?

저장된 바이트와 요청 메타데이터입니다.

레코드가 Arweave나 IPFS의 콘텐츠를 가리키는 경우, 그 바이트를 제공하는 공개 게이트웨이는 해당 바이트에 대한 요청을 볼 수 있습니다. 공개 파일이라면 그 바이트는 평문입니다. 봉인된 파일이라면 그 바이트는 암호문이며, 수신자의 개인 키 없이는 읽을 수 없는 상태로 남아야 합니다.

게이트웨이는 타이밍, 객체 크기, 요청 패턴도 관찰할 수 있습니다. 게이트웨이는 기밀성을 맡기고 신뢰할 곳이 아닙니다. 스토리지 계층이 비밀을 지켜 주리라 믿는 대신 민감한 파일을 스토리지로 보내기 전에 봉인해야 하는 이유가 바로 여기에 있습니다.

잠금이 해제된 동안 브라우저는 무엇을 볼 수 있습니까?

사용자의 신원으로 행동하는 데 필요한 모든 것이며, 세션이 잠금 해제된 동안만 그렇습니다.

잠금을 해제하면 사용자의 신원 시드와 거기에서 파생된 개인 키가 브라우저의 세션 메모리에 보관되어, 앱이 서명하고 복호화할 수 있게 됩니다. 봉인된 파일을 복호화하면 그 평문도 브라우저 안에 있습니다. 잠금이나 로그아웃 시 이 메모리상 자료는 최선의 노력으로 0으로 덮어써집니다.

이것이 클라이언트 측 개인정보 보호이며, 그 한계에 대해 정직합니다. 비밀을 사용자의 기기에 두면 서버 보관 대행으로부터는 보호되지만, 그만큼 사용자의 기기와 브라우저 환경이 중요해집니다. 악성 브라우저 확장, 적대적인 로컬 소프트웨어, 또는 잠금 해제된 세션 중에 활성화된 교차 사이트 스크립팅 결함은 메모리에 있는 내용을 읽을 수 있습니다. 엄격한 콘텐츠 보안 헤더, 스크립트를 최소화한 잠금 해제 흐름, 명시적 동작에만 잠금을 해제하는 방식은 모두 그 노출을 줄이지만, 완전히 없애지는 못합니다. 민감한 신원에는 신뢰하는 기기를 사용하십시오. 브라우저 저장소와 세션 키에서 무엇이 캐시되고 무엇이 캐시되지 않는지 정확히 설명합니다.

주소록은 무엇을 드러낼 수 있습니까?

사용자의 연락처 목록은 서비스 데이터이며, 나름의 방식으로 민감할 수 있습니다.

신뢰하는 연락처는 누군가에게 파일을 봉인할 때마다 긴 공개 키를 붙여 넣지 않아도 되게 해 주는 계정 로컬 항목입니다. 한 항목에는 표시 이름, 서명 공개 키, 선택적 수신 주소(클래식 및 포스트 양자), 연락처를 언제 어떻게 확인했는지, 그리고 자유 형식 메모가 담길 수 있습니다.

이는 신원 시드가 아니지만, 누구와 연락하는지에 대한 목록은 관계와 업무 흐름을 드러낼 수 있습니다. CardanoWall의 로깅은 그 부분을 조용히 유지하도록 작성되었습니다. 연락처를 생성하고 편집하는 서버 측 작업은 요청 식별자와 사용자의 계정 식별자만 기록하며, 연락처의 이름, 키, 메모, 확인 방법은 절대 기록하지 않습니다.

CardanoWall이 약속하지 않는 것은 무엇입니까?

사용자를 보이지 않게 해 준다고 약속하지는 않습니다.

CardanoWall은 익명화 네트워크가 아닙니다. 블록체인, 스토리지 게이트웨이, 결제 시스템, 사용자의 계정 로그인, 브라우저, 네트워크 경로는 모두 메타데이터를 노출할 수 있습니다. 서명되지 않은 봉인 레코드를 게시하면 발신자, 수신자, 평문은 Label 309 레코드 자체에서 빠지지만, 이는 레코드 수준의 개인정보 보호이지 완전한 익명성은 아닙니다. 수수료를 내는 Cardano 주소, 게이트웨이가 보는 사용자의 IP, 그리고 유사한 신호는 레코드 바깥에, 그리고 이 보장 바깥에 존재합니다.

또한 손상된 기기를 안전하게 만들어 주지도 않습니다. 잠금 해제된 세션에서 악성 코드가 실행되고 있다면, 그 코드는 사용자가 볼 수 있는 것을 볼 수 있습니다.

그리고 게시된 증명은 설계상 공개됩니다. 이는 특정 바이트가 특정 공개 시점에 존재했음을 보여 줍니다. 그러나 그 자체로 누가 그것을 작성했는지, 누가 소유하는지, 또는 그 내용이 참인지를 증명하지는 않습니다. 그 경계에 대해서는 증명이 증명하지 않는 것을 참고하십시오.

짧게 정리하면

CardanoWall은 서비스 데이터와 공개 증명 데이터를 볼 수 있습니다. 설계상 평문 신원 시드, 개인 키, 볼트 평문, 봉인된 파일의 평문은 보지 못합니다.

따라서 실무에서는 이렇게 하십시오. 민감한 파일은 기기를 떠나기 전에 봉인하고, 시드의 안전한 사본을 보관하고, 신뢰하는 기기에서 잠금을 해제하고, 체인에 게시하는 모든 것은 영구적으로 공개된다고 여기십시오.

좋은 개인정보 보호는 각 종류의 데이터가 정확히 어디에 있는지 아는 데서 시작합니다. 그리고 CardanoWall은 가장 중요한 데이터가 사용자와 함께 있도록 설계되었습니다.

더 읽을거리

CardanoWall은 개방적이고 벤더 중립적인 존재 증명 표준 Label 309의 참조 구현입니다. 이 표준은 Cardano CIP 절차에 제출되어 메타데이터 범주 제안으로 CIP 편집자의 검토를 받고 있습니다(공개 PR). 암호 핵심부, SDK, 명령줄 도구는 github.com/cardanowall에서 오픈 소스로 공개되어 있으므로, 당사의 말을 믿는 대신 사용자의 기기에서 무엇이 계산되는지 정확히 감사할 수 있습니다.

securityprivacyidentity