Skip to content

암호화

Capgo provides robust end-to-end encryption for your app bundles, ensuring that your JavaScript code and assets are protected during transmission and storage. This encryption system is designed to give you complete control over your app’s security while maintaining the convenience of live updates.

__CAPGO_KEEP_0__

Overview

Capgo의 암호화 시스템은 업로드된 패키지를 비인가 접근으로부터 보호하기 위해 업계 표준 암호화 방법을 사용합니다. 암호화가 활성화되면 개발 환경을 떠나는 패키지는 암호화되어 저장되고 전송되며, 사용자의 장치에서 앱이 패키지를 해독할 때까지 암호화된 상태로 유지됩니다.

실제로 암호화가 보호하는 것: 업로드된 패키지를 저장 및 전송하기 전에 Capgo가 암호화합니다. 이로써 저장소 또는 전송 중에 패키지 내용을 비인가 접근으로부터 보호하고, 유효한 암호화된 업데이트를 발행할 수 있는のは 당신의 개인 키를 보유한 사람들만이 됩니다. 업로드된 웹 자산을 역공학할 수 없게 만드는 것은 아닙니다. 클라이언트가 업데이트를 해독하기 위해 사용하는 공개 키는 앱에 분포되어 있으므로, 충분한 노력만 하면 패키지 내용을 검사할 수 있습니다. 암호화가 필요한 경우

Capgo Encryption Flow

Capgo

  • 개인 키: 개발 환경에서 안전하게 생성 및 저장되며 암호화에 사용됩니다.
  • 공개 키: 개인 키에서 파생되며 앱의 Capacitor 설정에서 암호화에 사용됩니다.
  • 세션 키: 각 업로드 배ंडल에 대한 임의 AES 키

2. 암호화 프로세스

2. 암호화 프로세스 섹션
  1. 각 업로드 배ंडल에 대한 임의 AES 세션 키가 생성됩니다.
  2. 배ंडल은 AES 세션 키를 사용하여 암호화됩니다.
  3. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
  4. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
  5. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__

3. Decryption Process

3. Decryption Process
  1. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
  2. Capgo SDK
  3. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
  4. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
  5. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__

Capgo vs Other Platforms

Capgo vs Other 플랫폼
FeatureCapgo다른 OTA 플랫폼
배포 콘텐츠저장/전송 중 암호화; 여전히 앱 바이너리와 함께 결정된 역공학자에 의해 검사할 수 있습니다.공개적으로 읽을 수 있습니다.
보안 방법__CAPGO_KEEP_0__ 암호화Code에 한정된 서명
개인 정보 수준__CAPGO_KEEP_0__ 보호; 역공학 방지 기능 없음플랫폼이 code에 접근할 수 있습니다.
보호내용 + 무결성 + 진위성무결성 + 진위성만

이것이 중요합니다:

  • Code 서명 __CAPGO_KEEP_0__ 서명은 업데이트가 변조되지 않았는지와 올바른 출처에서 왔는지 확인합니다.
  • Capgo 암호화 __CAPGO_KEEP_0__는 Encryption V2를 표준 암호화 방법으로 사용합니다:
  • 암호화 방법 __CAPGO_KEEP_0__는 현재 표준으로 Encryption V2를 사용합니다.

Capgo는 AES-256-GCM를 인증된 암호화를 위해 사용합니다.

__CAPGO_KEEP_0__는 데이터의 무결성을 검증합니다.

__CAPGO_KEEP_0__는 성능과 보안을 향상합니다.
  • 앱이 배포된 후에도 역공학이 가능합니다.
  • 업데이트를 암호화하고 전송하는 동안 업데이트를 위조한 암호화된 업데이트를 훨씬 더 어렵게 만듭니다. 공격자는 업데이트를 암호화하고 로드하기 위해 사용하는 개인 키가 필요합니다.
  • __CAPGO_KEEP_0__는 업데이트를 암호화하고 전송하는 동안 업데이트를 위조한 암호화된 업데이트를 훨씬 더 어렵게 만듭니다. 공격자는 업데이트를 암호화하고 로드하기 위해 사용하는 개인 키가 필요합니다.
  • __CAPGO_KEEP_0__는 업데이트를 암호화하고 전송하는 동안 업데이트를 위조한 암호화된 업데이트를 훨씬 더 어렵게 만듭니다. 공격자는 업데이트를 암호화하고 로드하기 위해 사용하는 개인 키가 필요합니다.

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__
  • RSA-2048을 사용하여 키 암호화
  • AES-256-CBC를 사용하여 패키지 암호화
  • CLI에서 더 이상 사용할 수 없습니다.
  • __CAPGO_KEEP_0__에서 V1을 사용하는 앱은 V2로 마이그레이션해야 합니다.

1차: 암호화 키 생성

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__

First, generate your encryption keys using the Capgo CLI:

터미널 창
# Generate new encryption keys (creates files in current directory)
npx @capgo/cli@latest key create

이것이 생성됩니다.

  • .capgo_key_v2: 개인 키(이것은 안전하게 보관하세요!)
  • .capgo_key_v2.pub: 공개 키(앱에서 사용합니다.)

이 파일들은 명령어를 실행한 현재 디렉토리에서 생성됩니다.

Step 2: Capacitor을 Capacitor 설정에 저장하세요 (필수)

Capacitor Step 2: Capacitor을 Capacitor 설정에 저장하세요 (필수)

당신 은/는 Capacitor 설정에 Capacitor을 저장하여 모바일 앱이 패키지를 해독할 수 있도록 해야 합니다.

터미널 창
# Save public key from file to Capacitor config (required)
npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
# Or save public key data directly
npx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"

Step 3: Capacitor 플랫폼을 동기화하세요 (필수)

Capacitor Step 3: Capacitor 플랫폼을 동기화하세요 (필수)

__CAPGO_KEEP_0__을 저장한 후 은/는 Capacitor 플랫폼을 동기화하여 네이티브层에 업데이트된 설정을 복사해야 합니다.

터미널 창
# Sync the platform to copy config to native
npx cap sync

파일 암호화

파일 암호화

1. 업로드 중 암호화

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__
# Upload with automatic encryption
npx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)

__CAPGO_KEEP_4__

__CAPGO_KEEP_5__

__CAPGO_KEEP_6__

  1. __CAPGO_KEEP_7__

    __CAPGO_KEEP_8__
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. __CAPGO_KEEP_10__

    __CAPGO_KEEP_11__
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1
  3. Capgo에 등록하기 위해 저장소(예: S3)에 업로드하세요.

    터미널 창
    # First upload the encrypted bundle to your storage (e.g., AWS S3)
    aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip
    # Then register with Capgo using the external URL
    npx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2

키 관리

키 관리

보안 키 저장

보안 키 저장

개인 키 옵션:

  1. 파일 기반(개발용):

    터미널 창
    # Key stored as .capgo_key_v2 file in project root
    npx @capgo/cli@latest bundle upload --key-v2
  2. CI/CD 환경 변수 (CI/CD):

    터미널 창
    # Store in environment variable for CI
    export CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"
    npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"

공개 키 설정 (필수):

터미널 창
# Must save public key to Capacitor config for mobile app
npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub

프로덕션 환경:

  • 보안 키 관리 서비스 (AWS KMS, Azure Key Vault 등)에서 개인 키를 저장하십시오.
  • CI/CD 비밀 관리를 사용하여 개인 키를 관리하십시오.
  • 개인 키를 버전 관리에 포함하지 마십시오.

키 사용:

  • 개인 키: CLI을 사용하여 배ंडल 업로드 중 암호화 (보안 유지)
  • 공개 키: __CAPGO_KEEP_0__ 구성에서 암호화에 사용하는 데 저장 (안전한 커밋)

보안을 강화하기 위해 정기적으로 암호화 키를 회전하세요:

  1. 새 키 생성:

    터미널 창
    # Navigate to desired directory first, then create keys
    mkdir ./new-keys && cd ./new-keys
    npx @capgo/cli@latest key create
  2. Capacitor 구성에 새 공개 키를 저장하세요:

    터미널 창
    npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub
  3. 애플리케이션 구성 업데이트 새로운 공개 키와 함께

  4. 업데이트된 애플리케이션 배포 새 키로 암호화된 패키지를 업로드하기 전에

보안 최적화

제목: 보안 최적화
  • 개인 키를 절대 공유하지 마세요 환경 또는 팀 구성원 사이에
  • 다른 환경 (개발, 스테이징, 운영) 에서 다르게 키를 사용하세요. for different environments (dev, staging, production)
  • __CAPGO_KEEP_0__ (권장: 6-12 개월)
  • __CAPGO_KEEP_1__ 적절한 키 관리 시스템을 사용하여

__CAPGO_KEEP_2__

__CAPGO_KEEP_3__
  • 다운로드 패턴이나 실패를 위한 모니터링 __CAPGO_KEEP_4__ (모바일 앱의 경우 필수)
  • __CAPGO_KEEP_5__ __CAPGO_KEEP_6__
  • __CAPGO_KEEP_7__ __CAPGO_KEEP_8__
  • Implement __CAPGO_KEEP_0__
  • Limit access to encryption keys to authorized personnel only
  • __CAPGO_KEEP_3__ access for key management operations
  • __CAPGO_KEEP_4__ key usage and access regularly
  • Implement __CAPGO_KEEP_5__ and recovery procedures

문제 해결 암호화

제목 '문제 해결 암호화'

일반적인 문제

제목 '일반적인 문제'

해독 실패:

  • 암호화에 사용한 공개 키와 일치하는 개인 키를 확인하십시오.
  • 암호화에 사용한 공개 키와 일치하는 개인 키를 확인하십시오. ivSessionKey 암호화에 사용한 공개 키와 일치하는 개인 키를 확인하십시오.
  • 암호화에 사용한 공개 키와 일치하는 개인 키를 확인하십시오.

암호화 V2 (V1은 더 이상 지원되지 않습니다)를 사용하십시오.

  • 키 관련 오류:
  • 개인 키 형식이 올바른지 확인하십시오 (PEM 형식).
  • __CAPGO_KEEP_0__

성능 문제:

  • 대형 번들 암호화/복호화 시간이 더 걸릴 수 있습니다.
  • Delta (매니페스트) 업데이트 사용을 고려하여 번들 크기를 줄이십시오.
  • 복호화 중 장치 성능을 모니터링하십시오.

Debug 명령어

Debug 명령어

암호화 상태 확인:

터미널 창
npx @capgo/cli@latest app debug

암호화/복호화 워크플로우 테스트:

터미널 창
# Test the complete workflow: zip → encrypt → decrypt → unzip
npx @capgo/cli@latest bundle zip com.example.app --key-v2
npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --json
npx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEY

복호화 구현은 다음 표준을 따릅니다:

AES-256

Capgo’s encryption implementation follows industry standards:

  • RSA-4096: 키 보호를 위한 강력한 비대칭 암호화
  • GCM Mode: 신뢰성과 진위성을 제공하는 암호화
  • Secure Random: 암호학적으로 안전한 난수 생성
  • 복사하기규정 준수 및 표준

이것은 Capgo를 다음 규정에 따라야 하는 애플리케이션에 적합하게 만듭니다.:

  • GDPR (일반 데이터 보호 규정)
  • HIPAA (건강 보험 포트 ability 및 책임성 법)
  • SOC 2 (서비스 조직 제어 2)
  • ISO 27001 (정보 보안 관리)

성능 고려 사항

제목 "성능 고려 사항"

암호화 오버헤드

제목 "암호화 오버헤드"
  • 배포 크기: 암호화 된 배포는 약 1-2%의 오버헤드가 발생합니다.
  • 처리 시간__CAPGO_KEEP_0__
  • 메모리 사용량: 임시적으로 암호화/복호화 작업 중에 메모리 사용량이 증가합니다.

최적화 팁

최적화 팁
  • Delta (매니페스트) 업데이트를 사용하여 암호화된 데이터 전송을 최소화하세요.
  • 이미지를 WebP 형식으로 변환하여 번들 크기를 최적화하세요.
  • JavaScript 및 CSS 파일을 번들링하기 전에 크기를 최소화하세요.
  • 사용하지 않는 의존성을 제거하고 code
  • 오래된/느린 장치에서 장치 성능을 모니터링하세요.

다음 단계

다음 단계

If you are using 암호화 __CAPGO_KEEP_0__과 연결하여 보안 및 규정 준수 계획을 수립하세요. 규정 준수 규정 준수 구현 세부 사항에 대해. Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에 대해. Capgo 보안 Capgo 보안의 제품 워크플로에 대해. Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로에 대해. 조직 보안 조직 보안 구현 세부 사항에 대해.