보안

CentraFIN이 보는 것과 보지 않는 것, API 키와 지갑을 보호하는 방법, 취약점을 신고하는 방법을 알려 드려요.

CentraFIN은 저희 서버에서 정보가 유출되더라도 누구도 내 돈에 손대거나 개인 지갑을 알아낼 수 없도록 설계했어요.

저희 서버가 보는 것

데이터저희 서버
플랫폼의 잔고, 포지션, 주문, 내역봐요. 수치를 보여 주고 계산하는 데 필요해요
API 키의 시크릿암호화해서 보관해요(AES-256-GCM). 되돌려 보내거나, 화면에 보여 주거나, 로그에 남기지 않아요
Hyperliquid 계정 주소봐요. 계정을 읽는 데 쓰여요
비트코인 지갑의 공개키, 주소, 이름, 잔고절대 보지 않아요. 브라우저가 암호화해요
개인키와 복구 구문절대 받지 않아요. 서비스가 어떤 것도 받지 않아요
비밀번호서비스는 비밀번호를 쓰지 않아요. 패스키와 일회용 코드를 써요

읽기 전용 키

  • CentraFIN은 주문도, 이체도, 출금도 하지 않아요.
  • Coinbase와 OKX: 새 키는 모두 플랫폼에 확인해요. 거래, 이체, 출금이 가능한 키는 거부해요.
  • Kraken: 플랫폼이 이런 확인을 지원하지 않아요. 키 추가 창에서 체크해야 할 권한만 안내해요.
  • Hyperliquid: 키가 필요 없어요. 계정은 공개 주소로 읽고, API 지갑 주소는 거부해요.
  • Interactive Brokers: Flex 보고서 토큰을 써요. 이 토큰으로는 거래 명세서에만 접근할 수 있어요.
  • 시크릿은 서비스 고유의 키로 암호화되고, 키 종류에 묶여 있으며, 저희 서버 밖으로 절대 나가지 않아요.

API 키를 위한 고정 IP 주소

Kraken, Coinbase, OKX, Hyperliquid로 가는 요청은 모두 저희 릴레이의 주소 하나에서 나가요: 130.110.240.91. 플랫폼에서 API 키를 이 주소로 제한해 두면, 키를 도난당해도 다른 곳에서는 쓸 수 없어요.

릴레이는 프랑스에서 호스팅되고, CentraFIN이 서명한 요청만 받으며, 이 플랫폼들만 호출하고, 아무것도 저장하지 않아요. 플랫폼의 응답은 릴레이를 거쳐 가지만, 시크릿은 절대 보지 않아요.

저희가 읽을 수 없는 개인 지갑

  • 지갑은 계정의 공개키(xpub, ypub, zpub)로 추가해요. 개인키로는 절대 추가하지 않아요.
  • 브라우저가 지갑을 암호화하고(AES-256-GCM), 그 키는 패스키가 보호해요(WebAuthn PRF 확장). 저희 서버는 열 수 없는 암호화된 데이터만 저장해요.
  • 잔고는 브라우저가 공개 비트코인 노드(blockstream.info, mempool.emzy.de, mempool.bitaroo.net)에서 직접 읽어요. 블라인드 릴레이를 거치며 종단 간 암호화돼요. 노드는 요청된 주소는 보지만, 내 IP 주소도 계정도 보지 못해요. 각 주소는 항상 같은 노드가 읽기 때문에, 모든 주소를 보는 노드는 없어요.

비밀번호 없는 로그인

  • 계정을 만들 때 확인한 이메일 주소로, 요청할 때마다 로그인 링크가 와요. 링크는 15분 동안 한 번만 쓸 수 있고, 열린 페이지의 버튼을 눌러야 쓰여요. 그래서 이메일을 검사하는 소프트웨어가 대신 써 버리지 않아요.
  • 패스키(WebAuthn, 사용자 인증 필수), 인증 앱(6자리 코드) 또는 둘 다를 추가할 수 있어요. 인증 앱이 있으면 링크 다음에 그 코드를 요청하고, 패스키만 있으면 링크 다음에 패스키를 요청해요. 이렇게 보호된 계정은 메일함만으로는 열리지 않아요.
  • 패스키로는 이메일 없이도 로그인할 수 있어요. 인증 앱도 있다면 그다음에 코드를 요청해요.
  • 이메일 주소 하나는 1분에 링크 1개, 1시간에 5개까지 받을 수 있고, IP 주소 하나는 1시간에 10개까지 요청할 수 있어요.
  • 코드를 연속 5번 틀리면 계정은 15분 동안 기다려야 하고, 이후 다시 연속으로 틀릴 때마다 대기 시간이 두 배로 늘어나요(최대 하루). 같은 IP 주소는 15분 안에 5번 실패하면 차단돼요.
  • 세션은 8시간 동안 유지돼요.
  • 계정은 내 로그인 수단으로만 열려요. CentraFIN을 포함해 누구도 그것 없이는 들어갈 수 없어요. 메일함을 잘 보호하고, 패스키를 쓴다면 두 개를 마련해 두세요.

AI 어시스턴트(MCP)

  • 어시스턴트는 내가 허용한 경우에만(OAuth 2.1, PKCE) 계정에 접근할 수 있어요. 접근은 읽기 전용이고, 개인 지갑에는 절대 접근하지 못해요.
  • 액세스 토큰은 1시간 동안 유효해요. 갱신 토큰은 30일 동안 유효하고, 한 번만 쓸 수 있어요.
  • 어시스턴트 권한은 설정에서 언제든 철회할 수 있어요.

사이트 자체

  • 서드파티 스크립트, 광고, 방문자 분석 도구가 전혀 없어요.
  • 엄격한 콘텐츠 보안 정책을 적용하고, HTTPS 연결만 사용해요.

취약점 신고

제목에 “보안”이라고 적어 contact@centrafin.xyz로 보내 주세요. 발견한 내용, 재현 방법, 확인할 수 있었던 정보를 적어 주세요. 다른 사람의 데이터에 접근하지 말고, 서비스를 방해하지 말고, 공개하기 전에 저희가 고칠 시간을 주세요. 이 규칙은 저희 security.txt 파일에도 있어요.