Capacitor-updater 이제 end-to-end code 암호화를 지원합니다. Code signing은 최종 사용자의 기기에서 실행되는 업데이트가 변조되지 않았음을 보장하고, Capacitor-updater의 표준 웹 수준 보안보다 한 단계 높은 보호를 제공합니다.
Capacitor-updater의 기본 보안
기본적으로 Capgo의 보안 모델은 웹 호스팅 제공업체와 비슷합니다. Capgo은 업데이트를 저장 시 암호화하여 보관하고, 최신 암호화 방식을 사용해 HTTPS로 제공합니다. 마찬가지로 개발자의 컴퓨터에서 업데이트를 게시할 때도 항상 HTTPS를 사용합니다.

Capgo의 기본 보안은 SSL Labs의 HTTPS 테스트에서 A+ 등급을 받았습니다 (https://www.ssllabs.com, 2022년 11월)
업계 최고 수준의 웹 호스트처럼, Capgo는 서버와 최종 사용자 기기 간 네트워크 연결의 프라이버시와 무결성을 보호하기 위해 HTTPS를 사용합니다. 이는 웹과 Capgo을 사용하는 Ionic 앱 모두에서 잘 작동하는 뛰어난 수준의 보안입니다.
클라우드 인프라 공급망
Capgo와 대부분의 웹 호스트가 공유하는 또 다른 점은 AWS, GCP 또는 기타 인기 있는 클라우드 제공사의 저수준 클라우드 인프라에서 실행된다는 것입니다. 이러한 클라우드 제공사와 Capgo 또는 다른 웹 호스트가 운영하는 하드웨어와 소프트웨어는 클라우드 공급망의 일부입니다.
클라우드 공급망과 그 보안 모델은 수많은 웹사이트와 앱에 적합합니다. 클라우드 제공사를 사용하는 모든 웹 개발자는 해당 제공사를 신뢰하며, 업로드한 파일이 변조되지 않고 그대로 실행되거나 서빙되기를 기대합니다. 그리고 클라우드 제공사들은 인프라 보안을 유지하기 위해 노력하고 있습니다.
하지만 당연히 하드웨어와 소프트웨어 취약점이 발견됩니다. 클라우드 제공사는 적시에 취약점을 패치하고, 악성 소프트웨어(예: Google의 SLSA)를 능동적으로 방지하며, 다층적 방어 체계를 구축합니다. 실제로 클라우드 인프라는 대부분의 웹사이트와 앱의 보안 요구 사항을 충족해 왔습니다. 그러나 일부 Ionic 앱은 위협 모델에 손상된 클라우드 인프라를 포함합니다. 웹보다 가장 높은 보안 요구 사항을 가진 이러한 Capacitor JS 앱을 위해, 우리는 Capgo와에 종단 간 code 서명을 구축했습니다. Capgo Updates 표준 프로토콜.
Capgo를 통한 code 엔드 투 엔드 서명
Capgo의 종단 간 code 서명은 공개 키 암호화를 사용하여 최종 사용자의 기기가 Capacitor 앱 개발자로부터 온 변조되지 않은 원래 업데이트만 실행되도록 보장합니다.
“End-to-end”는 이 보안이 개발자가 업데이트를 게시하는 시점부터 최종 사용자 기기가 업데이트를 받아 실행하는 시점까지의 흐름을 포괄한다는 뜻입니다. “Code signing”은 암호 기술과 비밀 개인 키로 code에 “서명”하고, 나중에 신뢰하는 공개 키로 서명을 검증하는 것입니다.
동작 방식을 설명하기 위한 간단한* 스키마입니다:

- 실제로는 복잡하고, 암호학은 어렵습니다
정의:
- AES: Advanced Encryption Standard, 대칭 암호화 알고리즘으로, 암호화와 복호화에 동일한 키를 사용합니다.
- RSA: Rivest–Shamir–Adleman, 비대칭 암호화 알고리즘으로, 공개 키와 개인 키 두 가지 키를 사용합니다.
- Cypher: 암호화된 데이터.
- 세션 키: 데이터를 암호화하고 복호화하는 데 사용되는 AES 키입니다.
- 체크섬: 파일에 대해 계산된 해시값입니다.
- 서명: RSA 개인 키로 암호화된 체크섬입니다. RSA 공개 키로 검증할 수 있습니다.
업데이트 암호화에는 AES 알고리즘을 사용합니다. 업로드할 때마다 무작위 AES 키가 생성되고, 이 AES 키와 체크섬(이하 “서명”)은 개발자의 RSA 개인 키로 암호화됩니다. 앱에서는 개발자의 RSA 공개 키로 AES 키와 서명을 복호화하여 서명을 다시 체크섬으로 변환합니다. 그다음 복호화된 AES 키로 업데이트를 복호화하고, 복호화된 업데이트의 체크섬을 계산해 복호화된 서명과 비교합니다.
RSA는 대용량 데이터를 암호화할 수 없으므로 두 가지 암호화 알고리즘을 사용합니다. 업데이트는 AES로 암호화하고, AES 키와 체크섬은 RSA로 암호화합니다.
이를 통해 Capgo조차 번들 내용을 읽을 수 없습니다. 이는 많은 엔터프라이즈 고객이 사용하는 강력한 보안 모델입니다.
업데이트 암호화 V2 2024-08-27:
- 앱에 저장되는 키 종류를 변경했습니다. 이는 (기존에 암호화에 사용하던) 공개 키를 (기존에 복호화에 사용하던) 개인 키로부터 유추하지 못하게 하기 위함입니다. 이제 앱은 공개 키(현재 복호화용)를 저장합니다.
- 체크섬을 CRC32 알고리즘에서 SHA256 알고리즘으로 변경했습니다. 또한 번들 서명을 시작했습니다.. 암호화 V2가 설정된 경우, 업데이트에는 유효한 서명이 필요합니다. 이 규칙은 플러그인이 엄격하게 강제합니다.
- 이제 암호화 V2가 설정된 경우 유효한 서명을 강제 적용합니다. 이 3가지 변경 사항은 커뮤니티 멤버의 보안 분석 이후에 이루어졌으며, 업데이트过程中的 암호학적 공격을 방지하기 위한 것입니다.
암호화 V1을 사용했다면, 새로운 보안 기능을 활용하기 위해 V2로 마이그레이션하세요. 다음을 따르세요 마이그레이션 지침.
엔드투엔드 code 서명을 통해, Capgo은 '신뢰 불필요(trustless)'한 클라우드 인프라가 됩니다. Capgo의 클라우드 제공업체 중 하나, 또는 Capgo 자체에서 code 서명이 된 업데이트를 수정하더라도, 최종 사용자의 기기는 해당 업데이트를 거부하고 이미 기기에 설치된 이전의 신뢰할 수 있는 업데이트를 실행합니다.
웹 레벨 HTTPS가 많은 앱에 충분하지만, 일부 대기업은 엔드투엔드 code 서명의 추가 보안 수준에 매력을 느낍니다. 이 중 일부는 고액의 영구적 거래를 처리하는 금융 앱을 개발합니다. 다른 기업들은 클라우드 인프라 침해도 위협 모델에 포함하는 CISO를 두고 있습니다. 이러한 사용 사례를 위해 Capgo에 엔드투엔드 code 서명을 구축했으며, 더 높은 수준의 보안이 필요한 기업들의 의견을 듣고 싶습니다.
엔터프라이즈 고객을 위한 시작 가이드
보안을 중시하는 대기업이나 프로젝트를 위해, code 서명을 설정하고 유지하기 쉽게 만들고자 합니다. 이를 위해 다음 기능을 제공합니다:
- 빠른 인증서 설정 및 구성
- Capgo 및 개발 빌드 모두에서 code 서명 개발 서버 지원
- 모든 업데이트에 대한 프로덕션 code 서명
Capgo code 서명은 모든 고객에게 제공됩니다. 시작하려면 설정 가이드.
크레딧
감사의 말씀을 전합니다: Ionic, 이 글은 다음을 바탕으로 작성되었습니다: 이 글은 ChatGPT-3로 다시 작성하고 다듬었습니다.
Code 서명을 통한 Capacitor Updater E2E 암호화에서 이어서 보기
사용 중이라면 Code signing을 통한 Capacitor Updater E2E 암호화 보안 및 컴플라이언스 계획을 세우려면, 다음 항목과 연결하세요: 암호화 암호화 구현 상세 정보: 컴플라이언스 컴플라이언스 구현 상세 정보: Capgo 보안 스캐너 Capgo Security Scanner 제품 워크플로우: Capgo 보안 Capgo Security 제품 워크플로우 및 Capgo 신뢰 센터 Capgo Trust Center 제품 워크플로우: