암호화
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Capgo은 앱 번들을 위한 강력한 종단-to-종단 암호화를 제공하여 JavaScript code 및 자산이 전송 및 저장 중에 보호되도록 합니다. 이 암호화 시스템은 앱의 보안에 대한 완전한 제어를 제공하면서 실시간 업데이트 편의성을 유지하기 위해 설계되었습니다.
개요
개요 제목Capgo의 암호화 시스템은 산업 표준 암호화 방법을 사용하여 앱 번들을 불법 접근으로부터 보호합니다. 암호화가 활성화되면 개발 환경에서 앱 번들이 암호화되어 사용자의 장치에서 앱이 암호를 해독할 때까지 암호화 상태로 유지됩니다.
실제로 보호하는 암호화: 업데이트를만들 때 업로드 한 번들을 저장 및 전송하기 전에 Capgo로 암호화합니다. 저장소 또는 전송 중에 방해받지 않고 번들을 내용을 보호하고, 업데이트를 만드는 데 사용하는 개인 키를 가진 사람만 유효한 암호화된 업데이트를 만들 수 있도록합니다. shipped 웹 자산을 역할할 수 없게 만드는 것은 아닙니다: 클라이언트가 업데이트를 암호화하기 위해 사용하는 공개 키는 앱에 분포되어 있기 때문에 충분한 노력으로 번들의 내용을 검사할 수 있습니다. 암호화가 필요한 경우 암호화가 필요한 경우
How Encryption Works
How Encryption WorksCapgo은 RSA 및 AES 암호화를 최적의 보안성과 성능을 위해 혼합 암호화 접근 방식을 사용합니다:

1. 키 생성
제목: 1. 키 생성- 개인 키: 개발 환경에서 안전하게 생성 및 저장되며 암호화에 사용됩니다.
- 공개 키: 개인 키에서 파생되며 앱의 Capacitor 설정에서 암호화에 사용됩니다.
- 세션 키: 각 업로드 배ंडल에 대한 임의 AES 키
2. 암호화 프로세스
제목: 2. 암호화 프로세스- 임의 AES 세션 키가 각 배틀 업로드에 대해 생성됩니다.
- 배틀은 AES 세션 키를 사용하여 암호화됩니다.
- 압축 파일의 체크섬은 계산됩니다.
- AES 세션 키와 체크섬은 모두 RSA 개인 키를 사용하여 암호화됩니다 (‘서명’을 만듭니다).
- 암호화된 압축 파일과 암호화된 서명은 저장됩니다.
체크섬은 AES 키를 방해하기 위해 암호화됩니다. 체크섬이 수정되지 않았는지 확인하기 위해, 체크섬을 생성할 수 있는만 RSA 개인 키와 체크섬을 확인할 수 있는만 공개 키가 필요합니다.
3. 복호화 과정
제목 ‘3. 복호화 과정’- 앱은 암호화된 압축 파일과 암호화된 서명을 다운로드합니다.
- Capgo SDK은 앱에 저장된 RSA 공개 키를 사용하여 서명을 복호화합니다.
- 이것은 AES 세션 키와 원래 체크섬을 드러냅니다.
- AES 세션 키는 압축 파일을 복호화합니다.
- 압축 파일의 체크섬이 계산되고 원래 체크섬과 일치 여부가 확인됩니다.
이 과정은 공격자가 암호화된 압축 파일을截获해도, AES 세션 키나 가짜 체크섬을 변경할 수 없습니다. 왜냐하면 공격자가 유효한 서명을 생성할 수 없기 때문입니다. 서명은 공격자가 개인 키를 사용하여만 생성할 수 있기 때문입니다.
Capgo vs Other Platforms
제목: Capgo vs Other Platforms| Feature | Capgo | Other OTA Platforms |
|---|---|---|
| 배포 콘텐츠 | 저장/전송 중 암호화되지만 앱 바이너리와 함께 결정된 역공학자에 의해 검사할 수 있습니다. | 공개 가능한 |
| 보안 방법 | __CAPGO_KEEP_0__ 암호화 | Code 서명만 |
| 개인 정보 수준 | __CAPGO_KEEP_0__에 대한 강력한 전달/저장 보호; 역 엔지니어링 방지가 아님 | 플랫폼이 code에 접근할 수 있습니다 |
| 보호 | __CAPGO_KEEP_0__ + 무결성 + 진위 | 무결성 + 진위만 |
이것이 중요합니다:
- Code 서명 __CAPGO_KEEP_0__ 서명은 업데이트가 변조되지 않았는지와 올바른 출처에서 왔는지 확인하는 것만을 확인합니다
- Capgo 암호화 __CAPGO_KEEP_0__는 Encryption V2를 표준 암호화 방법으로 사용합니다:
- 암호화 방법 __CAPGO_KEEP_0__는 현재 표준으로 Encryption V2를 사용합니다.
Encryption V2 (현재 표준)
__CAPGO_KEEP_0__는 RSA-4096를 향상된 보안을 위해 사용합니다.Capgo는 AES-256-GCM를 인증된 암호화를 위해 사용합니다.
__CAPGO_KEEP_0__는 데이터의 무결성을 검증합니다.
__CAPGO_KEEP_0__는 성능과 보안을 향상합니다.- __CAPGO_KEEP_0__는 업데이트를 암호화하여 보호합니다. 업데이트가 저장되고 전송되는 동안 bundle을 보호하고 위조된 암호화된 업데이트를 훨씬 더 어렵게 만듭니다. 공격자는 업데이트를 암호화하기 위해 사용자 개인 키가 필요하기 때문입니다.
- 업데이트가 배포된 후에도 역공학이 가능합니다.
- __CAPGO_KEEP_0__는 업데이트를 암호화하여 보호합니다. 업데이트가 저장되고 전송되는 동안 bundle을 보호하고 위조된 암호화된 업데이트를 훨씬 더 어렵게 만듭니다. 공격자는 업데이트를 암호화하기 위해 사용자 개인 키가 필요하기 때문입니다.
- __CAPGO_KEEP_0__는 업데이트가 배포된 후에도 역공학이 가능합니다.
V1 암호화 (deprecated)
V1 암호화 (deprecated) 섹션- RSA-2048를 사용하여 키 암호화
- AES-256-CBC를 사용하여 패키지 암호화
- 현재 CLI에서 더 이상 사용할 수 없습니다.
- V1을 사용하는 레거시 앱은 V2로 마이그레이션해야 합니다.
migration guide
암호화 설정1단계: 암호화 키 생성
1단계: 암호화 키 생성먼저 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 설정에 저장하세요 (필수)__CAPGO_KEEP_0__ __CAPGO_KEEP_0__의 __CAPGO_KEEP_0__을 __CAPGO_KEEP_0__ 설정에 저장해야 __CAPGO_KEEP_0__ 모바일 앱이 __CAPGO_KEEP_0__ 배포본을 __CAPGO_KEEP_0__할 수 있습니다: 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 directlynpx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"Capacitor Step 3: Capacitor을 Capacitor 플랫폼과同步하세요 (필수)
Capacitor이 Capacitor을 Capacitor 설정에 저장한 후__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ 플랫폼을 __CAPGO_KEEP_0__하여 __CAPGO_KEEP_0__ 설정을 __CAPGO_KEEP_0__ 레이어로 __CAPGO_KEEP_0__하세요: __CAPGO_KEEP_0__ Capacitor
# Sync the platform to copy config to nativenpx cap sync암호화된 패키지
암호화된 패키지1. 업로드 중 암호화
__CAPGO_KEEP_0____CAPGO_KEEP_1__
# Upload with automatic encryptionnpx @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__
-
__CAPGO_KEEP_7__
__CAPGO_KEEP_8__ npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
__CAPGO_KEEP_10__
__CAPGO_KEEP_11__ npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
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 URLnpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
키 관리
키 관리 섹션키를 안전하게 저장하는 방법
키를 안전하게 저장하는 방법 섹션개인 키 옵션:
-
파일 기반(개발용):
터미널 창 # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
CI/CD 환경 변수 (CI/CD):
터미널 창 # Store in environment variable for CIexport 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 appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pub제품 환경:
- 보안 키 관리 서비스 (AWS KMS, Azure Key Vault 등)에 개인 키를 저장하십시오.
- CI/CD 비밀 관리를 사용하여 개인 키를 관리하십시오.
- 버전 관리에 개인 키를 절대 커밋하지 마십시오.
키 사용:
- 개인 키: CLI을 사용하여 번들 업로드 중 암호화 (보안 유지)
- 공개 키: 장치에서 해독을 위해 앱 구성에 저장 (공개할 필요 없음)
개인 키 compromis 이후 회전
개인 키 compromis 이후 회전 제목개인 키가 의심되거나 확인된 경우 키 pair를 회전하세요. 정기적인 캘린더 회전은 필요하지 않습니다. 이건 원본 키 마이그레이션이며 OTA-Only 변경이 아닙니다.
-
대체 키 pair를 생성하세요:
터미널 창 npx @capgo/cli@latest key create -
대체 공개 키를 Capacitor config에 저장하세요:
터미널 창 npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub -
Sync and ship a native release: Run
npx cap sync, 그리고 새로운 네이티브 앱 버전이 포함된 대체 공개 키를 가진 새로운 네이티브 버전을 배포하세요. -
Target the new native version: 오래된 네이티브 바이너리를 실행 중인 기기는 대체 키로 암호화된 업데이트를 받을 수 없습니다. 대체 키 버전을 제한하고 나머지 플릿이 스토어 또는 MDM를 통해 업데이트하는 동안 "Version Targeting"을 사용하세요. Switch your upload secret: 네이티브 릴리스가 라이브가 되자마자 CI에서 개인 키를 대체하고 대체 공개 키를 포함하는 네이티브 버전만 업로드하는 업로드 비밀을 교체하세요.
-
주의 주의
보안 최적화 방법
보안 최적화 방법 섹션주요 보안
주요 보안 섹션- 개인 키를 절대 공유하지 마세요 환경 또는 팀 구성원 사이에
- 다른 키를 사용하세요 다른 환경 (개발, 스테이징, 운영)
- 침해가 의심되거나 확인된 경우 키 Pair를 교체하세요; 정기적인 캘린더 회전은 필요하지 않습니다키를 안전하게 저장하세요
- 적절한 키 관리 시스템을 사용하여 __CAPGO_KEEP_0__
보안 패키지
보안 패키지 섹션- 항상 암호 해독 후 다운로드 패턴이나 실패를 감시하는
- 다운로드 패턴이나 실패를 감시하는 HTTPS를
- 모바일 앱을 위한 모든 패키지 URL에 HTTPS를 사용하세요 (필수) 암호 해독 실패를 위한
- 적절한 오류 처리를 구현하세요 접근 제어
접근 제어 섹션
__CAPGO_KEEP_0__- 접근 제한 인가된 사람만이 암호화 키에 접근할 수 있도록 하세요
- 역할 기반 접근 제한 키 관리 작업에 사용하세요
- 키 사용 및 접근을 정기적으로 감사하세요 적절한 백업 및 복구 절차를 구현하세요
- 암호화 문제 해결 “암호화 문제 해결”이라는 제목의 섹션
일반적인 문제
“일반적인 문제”라는 제목의 섹션“Troubleshooting Encryption”
“Common Issues”복호화 실패:
- 개인 키가 암호화에 사용된 공개 키와 일치하는지 확인하세요
- 확인하세요
ivSessionKey이것이 정확한지 확인하세요 - 암호화 V2를 사용하도록 확인하세요 (V1은 더 이상 지원되지 않습니다)
키 관련 오류:
- 개인 키 형식이 올바른지 확인하세요 (PEM 형식)
- 키가 저장/전송 중에 손상되지 않았는지 확인하세요
- 앱 구성에서 키가 올바른 권한을 가지고 있는지 확인하세요
성능 문제:
- 대형 번들을 암호화/복호화하는데 더 오랜 시간이 걸릴 수 있습니다
- 번들의 크기를 줄이기 위해 Delta(매니페스트) 업데이트를 고려하세요
- __CAPGO_KEEP_0__의 장치 성능 모니터링 중 암호 해독 중입니다.
Debug Commands
Debug Commands 섹션__CAPGO_KEEP_0__의 암호화 상태를 확인하십시오.
npx @capgo/cli@latest app debug__CAPGO_KEEP_0__의 암호화/해독 워크플로우를 테스트하십시오.
# Test the complete workflow: zip → encrypt → decrypt → unzipnpx @capgo/cli@latest bundle zip com.example.app --key-v2npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --jsonnpx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEY규정 준수 및 표준
규정 준수 및 표준 섹션Capgo의 암호화 구현은 업계 표준을 따릅니다.
- __CAPGO_KEEP_0__: FIPS 140-2 인증 암호화 알고리즘
- __CAPGO_KEEP_0__: 키 보호를 위한 강력한 비대칭 암호화
- __CAPGO_KEEP_0__: 신뢰성과 진위성을 제공하는 암호화
- __CAPGO_KEEP_0__: 암호학적으로 안전한 난수 생성
이것은 Capgo를 다음 규정에 준수하는 애플리케이션에 적합하게 만듭니다:
- GDPR (일반 데이터 보호 규정)
- HIPAA (건강 보험 포트 ability 및 책임성 법)
- SOC 2 (서비스 조직 제어 2)
- ISO 27001 (정보 보안 관리)
성능 고려 사항
성능 고려 사항암호화 오버헤드
암호화 오버헤드- 배포 크기: 암호화된 배포는 약 1-2%의 오버헤드만큼 더 큽니다.
- 처리 시간: 암호화/해독이 최소한의 지연을 추가합니다.
- 메모리 사용: 암호화/해독 연산 중 임시로 증가합니다.
최적화 팁
Optimization Tips- Delta 업데이트를 사용하여 암호화된 데이터 전송량을 최소화하세요.
- 이미지 형식을 WebP로 변환하여 번들 크기를 최적화하세요.
- JavaScript 및 CSS 파일을 미리 압축하여 번들 크기를 최소화하세요.
- 사용하지 않는 의존성을 제거하고 code
- 기존/느린 장치의 성능을 모니터링하세요.
다음 단계
다음 단계- Learn about Custom Storage __CAPGO_KEEP_0__를 사용하여 자체 인프라에서 암호화를 사용하세요.
- Explore 채널 환경 간 암호화된 패키지를 관리하는 방법
- 설정 CI/CD 통합 암호화된 배포를 자동화하는 방법
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__에서 계속하기__CAPGO_KEEP_1__이 __CAPGO_KEEP_2__을 사용하고 있다면 __CAPGO_KEEP_1__ __CAPGO_KEEP_1__을 사용하여 보안 및 규정 준수 계획을 세우고, __CAPGO_KEEP_2__과 연결하세요 __CAPGO_KEEP_2__ __CAPGO_KEEP_2__의 구현 세부 사항 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로우에 대해 Capgo 보안 Capgo 보안의 제품 워크플로우에 대해 Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로우에 대해, 및 조직 보안 조직 보안의 구현 세부 사항에 대해.