본문으로 건너뛰기
SafhaSafha

Safha는 안전한가요? 보안과 파일 보호

Safha가 파일을 보호하는 방법: 각 파일이 어디서 처리되고, 언제 지워지며, 누가 볼 수 있는지, 따르는 표준과 앞으로 할 일을 설명합니다.

파일에는 계약서, 신분증, 개인 서류가 담길 수 있다는 것을 압니다. 그래서 Safha는 작업이 최대한 기기에 머물도록 만들었고, 파일이 기기를 떠나야 할 때는 언제, 어디로, 왜 가는지 알려 드립니다. 이 페이지의 모든 내용은 서비스의 실제 설정, 코드, 운영 중인 서버의 응답에서 가져왔습니다. 아직 하지 않은 일은 ‘진행 중’으로 분명히 표시했습니다.

마지막 업데이트:

한눈에 보기

  • TLS 1.3으로 연결을 암호화하고, HSTS를 2년간 적용합니다

개인정보 보호 원칙

Safha의 모든 기능 뒤에 있는 세 가지 원칙입니다.

  • 데이터를 팔지 않습니다

    개인정보를 판매하지 않고, 맞춤 광고를 보여 주지 않으며, 광고 쿠키나 제3자 추적 쿠키를 쓰지 않습니다. 사이트의 콘텐츠 보안 정책(CSP)은 페이지가 저희 도메인에만 연결할 수 있게 합니다(connect-src 'self').

  • 필요한 것만 수집합니다

    도구를 쓰는 데 계정이 필요 없습니다. 분석 시스템은 자체 운영하며, IP 주소 원본은 절대 저장하지 않고 매일 바뀌는 비밀 값으로 해시 토큰으로 바꿉니다. 도구 로그에는 파일 이름이나 내용이 절대 담기지 않으며, 도구, 실행 위치, 성공 여부, 걸린 시간, 대략적인 크기 범위만 담깁니다.

  • 결정은 사용자가 합니다

    파일을 고르기 전에 어디서 처리될지 볼 수 있습니다. 서명 요청과 워크플로는 언제든 삭제할 수 있고, ‘내 계정’ 페이지에서 직접 계정을 삭제할 수 있습니다. 자세한 내용은 개인정보처리방침에 있습니다.

파일이 처리되는 곳

모든 도구에는 고르기 전에 파일이 어디서 처리되는지 보여 주는 배지가 붙어 있습니다. 경우는 다음과 같습니다.

  • 기기에서

    파일은 브라우저 안에서 읽히고 처리되며, 결과는 브라우저 자체에서 다운로드합니다. 파일은 어떤 서버로도 전송되지 않습니다. 합치기, 분할, 회전, 본인 파일에 서명하기, 이미지 압축 등 대부분의 PDF·이미지 도구가 여기에 해당합니다.

  • 저희 서버에서

    오피스 변환이나 OCR처럼 브라우저에서 잘 돌아가지 않는 소프트웨어가 필요한 도구가 있습니다. 이때는 파일이 암호화된 연결로 저희 변환 서비스에 전송되고, 서비스가 처리한 뒤 결과를 보내는 즉시 지웁니다.

  • AI 서비스 제공업체를 통해

    PDF 요약, PDF 번역, PDF에 질문하기는 파일에서 텍스트를 추출해, 파일이 아닌 그 텍스트를 암호화된 연결로 Anthropic에 보냅니다. 자세한 내용은 AI 섹션에 있습니다. 매우 민감한 문서에는 이 도구들을 쓰지 않기를 권합니다.

  • 서명 요청

    다른 사람에게 문서 서명을 요청하면, 모두가 서명할 때까지 문서, 서명자의 이름과 이메일, 모든 단계의 감사 기록을 보관합니다. 이 기능은 계정이 있는 사용자만 쓸 수 있습니다. 보관 기간은 보관과 삭제에 있습니다.

  • 워크플로

    여러 도구를 저장된 워크플로로 이으면, 각 단계는 해당 도구의 규칙을 따릅니다. 계정에 저장하는 것은 워크플로 설정이며, 워크플로를 거치는 파일은 저장하지 않습니다.

따르는 표준

현재 ISO/IEC 27001이나 SOC 2 같은 제3자 보안 인증은 없으며, 그 로고도 표시하지 않습니다. 실제로 적용하는 표준과 작업 중인 내용은 다음과 같습니다.

  • GDPR 원칙

    공식 ‘GDPR 인증서’는 없으며, 그런 인증을 주장하지 않습니다. 다만 그 원칙을 적용합니다. 데이터는 최소한으로 수집하고, 보관하는 모든 것에 기한을 두며, 모든 파일이 어디서 처리되는지 설명합니다. 사용자의 권리는 다음과 같습니다.

    • 삭제: ‘내 계정’ 페이지에서 직접 계정을 삭제하세요.
    • 정정: ‘내 계정’ 페이지에서 이름과 언어를 바꾸고, 그 밖의 사항은 이메일로 요청하세요.
    • 열람과 이동: [email protected]으로 계정 데이터 사본을 요청하세요.
  • OWASP 실무 지침

    OWASP의 웹 애플리케이션 보안 지침에 따른 실무를 적용합니다. 예를 들면 다음과 같습니다.

    • 콘텐츠 보안 정책(CSP): 스크립트와 연결은 저희 도메인으로 제한되며, 사이트는 다른 사이트에 삽입될 수 없습니다.
    • SSRF 방어: HTML PDF 변환과 HTML 이미지 변환은 공개 http·https 링크만 받으며, 모든 연결과 모든 리디렉션에서 IP 주소를 확인하므로 어떤 요청도 내부 네트워크에 닿을 수 없습니다.
    • 격리된 렌더링: 웹페이지를 렌더링하는 브라우저는 인터넷에 직접 접근할 수 없으며, 모든 요청이 같은 확인을 거치고, 업로드된 HTML 파일에서는 스크립트가 기본적으로 꺼져 있습니다. 오피스 파일의 매크로는 절대 실행되지 않으며, 각 변환은 시간 제한과 쓰기 용량 상한이 있는 별도 프로세스에서 실행됩니다.
  • 이라크 전자서명법

    이라크에는 2012년 제78호 전자서명 및 전자거래법이 있습니다. Safha의 서명은 단순 전자서명으로, 모든 단계의 시각을 담은 감사 기록과 원본 및 최종 문서의 SHA-256 지문을 보관합니다. 인증기관이 인증한 서명이 아니며, 그 효력에 대한 법률 자문은 제공하지 않습니다. 특정한 법적 효력이 있는 서명이 필요한 문서라면 법률 전문가와 상담하세요.

  • 작업 중인 내용

    진행 중
    • ISO/IEC 27001: 독립 평가를 앞두고 이 표준에 맞춘 정보보안 관리 체계를 구축하고 있습니다.
    • 외부 업체의 독립적인 모의 해킹 테스트.
    • 관리자 계정의 2단계 인증.
    • 서명 요청 파일의 저장 시 암호화.

제품 보안

  • 호스팅

    Safha는 Contabo GmbH에서 임대한 서버에서 운영되며, RIPE NCC 등록 정보에 따르면 이 서버의 주소 대역은 독일에 등록되어 있습니다. 각 서비스는 Coolify로 관리되는 별도의 Docker 컨테이너에서 실행됩니다. 웹사이트 앱, 변환 서비스, PostgreSQL 데이터베이스입니다.

  • 네트워크와 DDoS 방어

    사이트 트래픽은 Cloudflare 네트워크를 거치며, 이 서비스에는 분산 서비스 거부(DDoS) 공격에 대한 자동 방어가 포함되어 있습니다. 서버 내부에서 데이터베이스는 인터넷과 차단된 내부 네트워크에 있고, 변환 서비스는 외부 연결을 받지 않습니다. 공유 비밀 토큰을 가진 웹사이트 앱만 접근할 수 있습니다.

  • 전송 중 암호화

    • 사이트 전체가 HTTPS로 작동하며, HTTP 요청은 HTTPS로 리디렉션됩니다.
    • 연결은 TLS 1.3을 지원합니다.
    • 2년간의 HSTS 헤더(max-age=63072000; includeSubDomains)를 보내므로, 브라우저는 암호화된 연결로만 사이트를 엽니다.
    • Cloudflare와 저희 서버 사이의 연결도 유효한 TLS 인증서로 암호화됩니다.
  • 저장

    서버에 보관하는 것은 많지 않습니다. 데이터베이스의 계정, 워크플로, 저장된 CV, 분석 데이터, 그리고 서버 디스크의 서명 요청 파일입니다. 비밀번호와 서명 링크 토큰은 해시(bcrypt와 SHA-256)로만 저장합니다. 분명히 말씀드리면, 현재 데이터베이스와 서명 요청 파일을 자체 키로 저장 시 암호화하지는 않으며, 네트워크 격리와 서버 권한으로 보호합니다.

보관과 삭제

아래 수치는 서비스의 실제 설정에서 가져왔습니다.

데이터 기간
기기에서 작동하는 도구의 파일 저희에게 오지 않습니다
서버 도구의 파일과 결과 결과를 보내는 즉시, 또는 처리가 실패하는 즉시 지워집니다
멈춘 작업 파일(예: 연결이 끊긴 경우) 자동 정리 기능이 5분마다 실행되어 42분이 지난 작업 파일을 지웁니다
임시 파일의 위치 영구 디스크가 아닌 임시 메모리 파일 시스템(tmpfs)이며, 서비스가 재시작되면 전부 지워집니다
저희 쪽의 AI 도구 텍스트 처리 후 보관하지 않습니다
PDF에 질문하기의 텍스트 서버 메모리에 최대 30분 보관하며, 디스크에는 절대 쓰지 않습니다
Anthropic 쪽의 텍스트 공개된 정책에 따라 30일 이내 삭제되며, 정책에 열거된 예외가 있습니다
서명자에게 보낸 서명 링크 발송일로부터 30일간 유효합니다
서명자 링크로 서명본 다운로드 요청 완료 후 30일
서명 요청 문서와 감사 기록 요청을 직접 삭제할 때까지
로그인 세션 30일
상세 분석 기록 400일, 이후에는 일별 합계만 남습니다
사용자의 계정 ‘내 계정’ 페이지에서 삭제할 때까지

계정을 삭제하면 계정, 워크플로, 저장된 CV, 서명 요청과 그 감사 기록을 데이터베이스에서 지우며, 도구 사용 횟수는 사용자와 연결되지 않은 채 남습니다. 서명 요청 파일도 서버 디스크에서 지워집니다.

계정과 비밀번호

  • 비밀번호는 cost 12의 bcrypt 해시로 저장되며, 원래 비밀번호로 되돌릴 수 없습니다. 8자보다 짧은 비밀번호는 받지 않습니다.
  • 세션은 HttpOnly, Secure, SameSite=Lax 속성이 있는 서명된 쿠키에 담기며 30일 뒤 만료됩니다. 민감한 요청마다 데이터베이스에서 계정 상태를 다시 확인합니다.
  • 비밀번호를 바꾸면 다른 모든 세션이 즉시 종료됩니다.
  • 로그인 시도는 제한됩니다. 15분 안에 계정당 5회, IP 주소당 20회까지 틀릴 수 있습니다.
  • 저희는 이메일이든 다른 어떤 방법이든 절대 비밀번호를 묻지 않습니다.

AI

PDF 요약, PDF 번역, PDF에 질문하기는 Anthropic의 API를 사용하며, 저희가 서버에서 켰을 때만 작동합니다.

  • 보내는 것: 파일 자체가 아니라 파일에서 추출한 텍스트이며, 요청마다 크기 상한이 있습니다.
  • 보관하는 것: 처리 후에는 아무것도 보관하지 않습니다. PDF에 질문하기만 이어지는 질문에 답하기 위해 텍스트를 서버 메모리에 최대 30분 보관합니다.
  • Anthropic의 설명: 공개된 개인정보 정책(최종 업데이트 2026년 7월 1일)에 따르면, 이용 정책 시행과 법령 준수를 포함해 정책에 열거된 경우를 제외하고 API 입력과 출력을 30일 이내에 시스템에서 삭제합니다. 상업 약관에는 서비스의 고객 콘텐츠로 모델을 학습시킬 수 없다고 명시되어 있습니다.
  • 저희의 권고: 매우 민감한 문서에는 이 도구들을 쓰지 마세요.

결제

현재 버전에서는 Safha의 모든 도구와 기능이 무료입니다. 결제 카드를 요구하지 않으며, 사이트에 결제 시스템이 없습니다. 따라서 어떤 결제 정보도 수집하거나 저장하지 않습니다.

‘내 서류’ 보관함

앱에서 곧 제공

Safha 핸드폰 앱에서 신분증, 여권 같은 공식 서류를 보관하는 공간입니다.

  • 핸드폰에만 보관: 보관함의 어떤 내용도 인터넷으로 전송되지 않습니다.
  • AES-256-GCM으로 암호화: 모든 서류, 미리보기, 보관함 색인이 암호화됩니다.
  • 키는 핸드폰 시스템이 보호: Android Keystore나 iOS Keychain에 보관되며, 생체 인증이나 기기 암호, 또는 보관함 전용 6자리 PIN으로 잠금을 풉니다.
  • 백업과 다른 기기로의 이전에서 제외됩니다.

내부 보안

  • 접근 관리

    Safha의 역할은 회원과 관리자 두 가지뿐입니다. 관리자 대시보드는 관리자 역할의 계정에만 열리며, 서버에서 역할을 두 번 확인합니다. 대시보드에 접근할 때 한 번, 그리고 그 안의 모든 페이지와 작업에서 다시 한 번입니다. 계정의 역할을 바꾸거나 정지하면 그 계정의 세션이 즉시 종료됩니다.

  • 최소 권한

    • 변환 서비스는 읽기 전용 파일 시스템에서 root가 아닌 사용자로 실행되며, 임시 메모리 폴더에만 씁니다.
    • 시작할 때 비밀 정보를 한 번 읽은 뒤 root 권한을 버리며, 그 비밀 정보는 변환 프로세스에 절대 전달되지 않습니다.
    • Anthropic 키는 변환 서비스에만 있으며, 웹사이트 앱이나 브라우저에는 절대 전달되지 않습니다.
    • 데이터베이스 비밀번호와 세션 서명 키는 배포 플랫폼이 생성하며, 누구도 손으로 입력하지 않습니다.
  • 관리자 2단계 인증

    진행 중

    현재 관리자 계정에 2단계 인증을 제공하지 않으며, 제공한다고 주장하지도 않습니다. 추가할 때까지 첫 관리자 비밀번호는 배포 플랫폼이 무작위로 생성하며, 로그인 시도는 모든 계정과 마찬가지로 제한됩니다.

  • 관리자 작업 기록

    알림 발송이나 앱 릴리스 게시처럼 사용자 기기에 닿는 작업은 관리자의 신원과 시각과 함께 기록됩니다.

파일이 업로드되지 않았는지 직접 확인하기

저희 말을 그대로 믿지 않으셔도 됩니다. 기기에서 작동하는 도구라면 컴퓨터에서 확인할 수 있습니다.

  1. Chrome, Edge, Firefox에서 도구 페이지를 여세요.
  2. F12를 누르거나(또는 마우스 오른쪽 버튼을 눌러 ‘검사’를 고르고) 네트워크 탭을 여세요.
  3. 파일을 고르고 도구를 실행하세요.
  4. 목록을 지켜보세요. 파일을 담았거나 파일 크기와 맞는 요청은 보이지 않습니다.

더 간단한 방법도 있습니다. 도구 페이지를 열고 인터넷 연결을 끊어도 도구는 계속 작동합니다.

보안 취약점 신고

Safha에서 보안 취약점을 발견하셨다면 [email protected]으로 이메일을 보내 주세요. 이 주소는 RFC 9116에 따른 security.txt 파일에 공개되어 있습니다. 다음을 부탁드립니다.

  • 문제를 설명하고, 재현 단계와 영향을 받는 페이지나 도구를 알려 주세요.
  • 다른 사람의 데이터에 접근하거나, 바꾸거나, 지우지 말고, 테스트 중에 서비스를 방해하지 마세요.
  • 세부 내용을 공개하기 전에 고칠 수 있는 합리적인 시간을 주세요.

모든 신고를 읽고 답장합니다. 현재 유료 버그 바운티는 운영하지 않지만, 사용자 보호를 도와주시는 모든 분께 감사드립니다. 개인정보나 계정에 관한 다른 질문은 [email protected]으로 보내 주세요.

저희의 약속

인터넷에서 완벽한 보호는 없습니다. 저희가 약속하는 것은 여기 적힌 그대로입니다. 작업이 최대한 기기에 머물게 하고, 파일이 기기를 떠날 때는 언제, 어디로, 왜 가는지 분명히 알려 드리겠습니다. 여기 적힌 내용이 바뀌면 이 페이지와 날짜를 업데이트하겠습니다.