모든 Android APK는 개발자가 개인 키로 서명해야만 설치할 수 있으며, 이 서명은 위조할 수 없는 SHA-256 지문을 남깁니다. 보유하고 있는 Binance APK의 지문이 Binance 공식 웹사이트에 발표된 지문과 완전히 일치한다면, 100% 원본임이 확인되며 조작되었을 가능성이 전혀 없습니다. Binance 공식 웹사이트에서 APK를 다운로드한 후 본문의 방법에 따라 확인하거나, 신뢰할 수 있는 기기에 직접 Binance 공식 앱을 설치하는 것을 권장합니다. iPhone 사용자는 iOS 설치 튜토리얼을 확인하시기 바랍니다.
디지털 서명이란 무엇인가
Android 시스템은 모든 APK가 설치 전에 반드시 디지털 서명을 거치도록 요구합니다. 서명의 작동 원리는 대략 다음과 같습니다:
- 개발자가 한 쌍의 공개 키와 개인 키를 생성합니다.
- APK를 배포하기 전, 개인 키를 사용하여 APK 내용에 대한 서명 블록을 계산합니다.
- 서명 블록을 공개 키 인증서와 함께 APK에 패키징합니다.
- 설치 시 Android 시스템이 공개 키를 사용하여 서명의 유효성을 확인합니다.
- APK 파일에 대한 어떠한 수정도 서명을 무효화시키며, 시스템은 설치를 거부하거나 오류를 보고합니다.
개인 키는 Binance 공식 측에서 엄격하게 보관하며 외부에서 접근할 수 없습니다. 이는 다음을 의미합니다:
- 아무도 Binance의 서명을 위조할 수 없습니다 (이론적으로 해킹에는 수억 년이 걸립니다).
- 코드가 삽입된 모든 APK는 반드시 다시 서명해야 하며, 서명 지문은 완전히 달라집니다.
- 지문이 일치하기만 하면, 해당 APK는 무조건 원본입니다.
이것이 디지털 서명의 위력이며, 앱 위조를 방지하는 최후의 방어선입니다.
서명 확인의 핵심 개념
SHA-256 지문이란
SHA-256은 임의의 크기를 가진 데이터를 고정된 64자리 16진수 문자열로 변환하는 해시 알고리즘입니다. 동일한 인증서에 대해서는 누가 계산하든 완전히 동일한 SHA-256 값을 얻게 됩니다.
Binance의 서명 인증서 지문 형태는 다음과 같습니다:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
(32바이트, 각 바이트를 2자리의 16진수로 표현하여 총 64자리 문자)
이 문자열이 바로 Binance APK의 "DNA"입니다. 진짜 공식 APK라면 모두 이 완전히 동일한 지문을 출력합니다.
세 가지 서명 방식
Android는 여러 세대의 APK 서명 방식을 거쳤습니다:
| 방식 | 도입 버전 | 특징 |
|---|---|---|
| v1 (JAR) | Android 1.0 | JAR 서명 기반, META-INF/만 서명 |
| v2 (APK Sig Scheme v2) | Android 7.0 | APK 전체를 서명, 설치 속도 향상 |
| v3 (APK Sig Scheme v3) | Android 9.0 | 키 교체 지원 |
| v4 (APK Sig Scheme v4) | Android 11 | 증분 업데이트 지원 |
Binance APK는 v1+v2+v3 서명을 동시에 사용하여, 모든 Android 버전에서 서명 확인이 통과되도록 보장합니다.
방법 1: apksigner로 확인하기
apksigner는 Google 공식 제공 도구이며, 가장 권위 있는 확인 방법입니다.
apksigner 설치
Windows:
- Android Command Line Tools (Google 공식) 다운로드
- 압축 해제 후
build-tools/<버전>/디렉토리에서apksigner.bat찾기 - 이 디렉토리를 환경 변수 PATH에 추가
macOS / Linux:
brew install android-commandlinetools
또는 Android Studio를 다운로드하면 apksigner가 ~/Library/Android/sdk/build-tools/xx.x.x/ 디렉토리에 있습니다.
서명 유효성 확인
가장 기본적인 확인:
apksigner verify --verbose Binance.apk
정상 출력:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Number of signers: 1
어느 한 항목이라도 false라면 서명에 문제가 있다는 뜻으로, APK가 손상되었거나 조작된 것입니다.
서명 인증서 세부 정보 출력
apksigner verify --print-certs Binance.apk
출력 예시 (지문은 예시 값임):
Signer #1 certificate DN: CN=Binance Holdings Limited, O=Binance, L=George Town, ST=Cayman, C=KY
Signer #1 certificate SHA-256 digest:
a1:b2:c3:d4:e5:f6:07:18:29:3a:4b:5c:6d:7e:8f:90:
a1:b2:c3:d4:e5:f6:07:18:29:3a:4b:5c:6d:7e:8f:90
Signer #1 certificate SHA-1 digest:
a1:b2:c3:d4:e5:f6:07:18:29:3a:4b:5c:6d:7e:8f:90:11:22:33
Signer #1 certificate MD5 digest:
a1:b2:c3:d4:e5:f6:07:18:29:3a:4b:5c:6d:7e:8f:90
세 가지 필드에 주목하세요:
- certificate DN: "Binance Holdings Limited" 또는 유사한 공식 명칭이 포함되어야 합니다.
- SHA-256 digest: Binance 공식 웹사이트에 발표된 값과 완전히 일치해야 합니다.
- Signer 개수: 반드시 1이어야 합니다 (여러 명의 서명자는 2차 서명되었음을 의미할 수 있습니다).
직접 계산한 SHA-256 값을 공식 웹사이트의 수치와 비교하여 모든 자리가 똑같아야 합니다.
방법 2: keytool로 확인하기
keytool은 JDK 기본 내장 도구이므로 별도로 설치할 필요가 없습니다 (Java가 설치되어 있다면 존재함).
인증서 내보내기
먼저 APK를 ZIP 파일처럼 압축 해제하고, META-INF/ 디렉토리 아래의 인증서 파일(일반적으로 CERT.RSA 또는 BINANCE.RSA)을 찾습니다:
unzip -p Binance.apk META-INF/CERT.RSA > cert.rsa
인증서 지문 확인
keytool -printcert -file cert.rsa
출력 예시:
Owner: CN=Binance Holdings Limited, O=Binance, L=George Town
Issuer: CN=Binance Holdings Limited, O=Binance, L=George Town
Serial number: abc123def456
Valid from: Mon Jan 01 00:00:00 UTC 2020 until: Sat Dec 31 23:59:59 UTC 2049
Certificate fingerprints:
SHA1: A1:B2:C3:D4:E5:F6:07:18:29:3A:4B:5C:6D:7E:8F:90:11:22:33:44
SHA256: A1:B2:C3:D4:E5:F6:07:18:29:3A:4B:5C:6D:7E:8F:90:A1:B2:C3:D4:E5:F6:07:18:29:3A:4B:5C:6D:7E:8F:90
Signature algorithm name: SHA256withRSA
Version: 3
마찬가지로 SHA256 지문을 공식 발표 값과 비교합니다.
방법 3: 온라인 도구로 확인하기
명령어 도구가 설치되어 있지 않다면, 일부 온라인 APK 분석 도구를 사용할 수 있습니다:
- APK Analyzer 류의 웹사이트 (평판이 좋은 곳 선택)
- AppMoD, APKMirror의 서명 유효성 검사 기능
APK를 업로드하면 서명 정보가 표시되며, 여기에는 SHA-256 지문도 포함됩니다.
개인정보 위험 주의: APK를 제3자 웹사이트에 업로드하는 것은 파일을 그들에게 넘기는 것과 같습니다. Binance APK 자체에는 개인 데이터가 포함되어 있지 않지만 여전히 다음 사항을 권장합니다:
- 유명하고 평판이 좋은 온라인 도구만 사용
- 확인이 끝난 후 업로드된 파일이 자동으로 삭제되는 곳 사용
- 전화번호나 계정과 관련된 앱에서는 온라인 확인을 피할 것
방법 4: 스마트폰에서 직접 확인하기
PC를 쓰지 않는 간편한 방법: 신뢰할 수 있는 앱 마켓에서 패키지 정보 확인 앱을 설치하고, 실행 후 Binance를 선택하여 "서명 정보" 또는 "인증서 정보" 필드를 확인하면 SHA-256 지문을 볼 수 있습니다.
이 방법의 전제 조건은 스마트폰에 설치된 이 정보 확인 앱 자체가 신뢰할 수 있어야 한다는 것입니다.
서명 확인 프로세스의 완벽한 마무리
권장하는 전체 확인 절차:
- binance.com에서 APK를 다운로드합니다.
- APK 파일 크기를 기록하고 공식 발표 값과 비교합니다 (80-90MB 사이여야 함).
apksigner verify를 실행하여 서명이 유효한지 확인합니다.apksigner verify --print-certs를 실행하여 SHA-256을 가져옵니다.- 공식 발표된 SHA-256과 비교합니다.
- 완전히 일치할 때만 설치합니다.
- 설치 후 패키지 이름이
com.binance.dev인지 확인합니다.
이 7단계를 거치면 APK가 원본임을 99.99% 확신할 수 있습니다.
자주 묻는 질문 (FAQ)
Q1: Binance 공식 웹사이트에서 발표한 SHA-256 지문을 어디서 찾을 수 있나요?
A: Binance 공식은 고객 지원 센터의 "APK 진위 확인 방법" 페이지에 이를 발표합니다. 키 교체가 이루어졌을 경우 시기에 따라 메인 서명이 다를 수 있으며, 공식 웹사이트에 유효한 모든 과거 서명이 나열되어 있습니다. 찾을 수 없다면 Binance 고객센터에 직접 연락하여 얻으시고, 제3자 웹사이트의 "지문"을 참고하지 마십시오.
Q2: SHA-1과 SHA-256 중 어느 것이 더 신뢰할 수 있나요?
A: SHA-256이 더 신뢰할 수 있습니다. SHA-1은 이론적으로 충돌 취약점이 증명되었으므로, 보안 확인의 유일한 기준으로 삼아서는 안 됩니다. 그러나 APK 서명과 같은 덜 민감한 시나리오에서는 SHA-1 충돌 난이도도 여전히 매우 높습니다. 실제 사용 시 두 가지를 모두 비교하는 것이 훨씬 안전합니다. MD5는 완전히 뚫렸으므로 절대 MD5만 보지 마십시오.
Q3: 두 개의 서로 다른 버전의 Binance APK 서명 지문은 같아야 하나요?
A: 완전히 같아야 합니다. 동일한 서명 인증서를 사용하기 때문입니다. 만약 v2.91.0과 v2.92.0 두 버전의 APK 서명을 비교한다면, SHA-256 지문은 무조건 똑같아야 합니다. 다른 것은 APK 내용 자체의 해시일 뿐, 인증서 지문은 변하지 않습니다. 이것이 바로 "동일한 개발자"인지 판단하는 근거입니다.
Q4: 서명 확인은 통과했는데 앱 실행이 비정상적입니다. 앱에 여전히 문제가 있는 건가요?
A: 서명 확인 통과는 APK가 조작되지 않았음을 증명할 뿐, 앱 실행 시 모든 것이 정상이라는 것을 증명하지는 않습니다. 서명이 맞는데 실행이 이상하다면 다음 원인일 수 있습니다: ① 시스템 버전 비호환; ② 네트워크 문제; ③ 로컬 캐시 손상; ④ 스마트폰의 다른 악성 소프트웨어가 Binance 앱을 간섭함. 먼저 제거 후 재설치 + 캐시 지우기를 시도해 보세요.
Q5: iOS 사용자는 어떻게 앱의 진위성을 확인하나요?
A: iOS는 수동으로 서명을 확인할 필요가 없습니다. Apple의 샌드박스 메커니즘에 의해 App Store에서 다운로드한 앱은 모두 Apple이 서명하며, 시스템이 실행할 때마다 자동으로 서명을 확인합니다. 조작된 어떠한 앱도 일반적인 iPhone에서는 실행될 수 없습니다. iOS 사용자의 핵심은 공식 App Store에서 다운로드했는지, 개발자가 Binance Holdings Limited로 표시되는지 확인하는 것입니다.
서명 확인은 일회성 투자입니다
apksigner 사용법을 처음 배울 때는 10-20분이 걸리지만, 이후 새 버전의 APK를 확인할 때는 매번 30초밖에 안 걸립니다. 다음 두 시나리오를 비교해 보세요:
- 확인하지 않을 때의 비용: 1만 분의 1의 확률로 가짜 앱을 설치해 자산을 도난당하고, 그 손실은 수천 달러에서 수십만 달러에 달할 수 있습니다.
- 확인할 때의 비용: 업데이트할 때마다 30초가 추가로 듭니다.
수학적 기댓값 측면에서, APK 서명을 확인하는 것은 투자 수익률이 극히 높은 습관입니다. 1천 달러 이상의 암호화폐를 보유한 모든 사용자에게 이는 앱을 업데이트할 때마다 거쳐야 하는 기본 절차여야 합니다.
명령줄이 너무 번거롭다고 느껴진다면, 최소한 다음 두 가지 기본 단계는 반드시 거치세요:
- 오직 binance.com에서만 다운로드하기
- 설치 후 패키 이름이
com.binance.dev인지 확인하기
이 두 단계만으로도 대다수의 가짜 버전을 차단하고, 당신의 자산에 한 겹의 보험을 더할 수 있습니다.