การตรวจสอบลายเซ็น APK: วิธีตรวจสอบให้แน่ใจว่าแอปของคุณปลอดภัย
แอปไซด์โหลดบน Android ให้อิสระและความยืดหยุ่น แต่มาพร้อมกับความเสี่ยงที่สำคัญ: แอปพลิเคชันที่ถูกดัดแปลง ผู้ที่เป็นอันตรายมักจะแก้ไขแอปยอดนิยมให้มีสปายแวร์หรือแอดแวร์ก่อนที่จะเผยแพร่อีกครั้งบนไซต์ที่ไม่เป็นทางการ คุณจะแน่ใจได้อย่างไรว่า APK ที่คุณเพิ่งดาวน์โหลดเป็น APK เดียวกันกับที่นักพัฒนาซอฟต์แวร์อัปโหลดไปยัง Google Play
คำตอบอยู่ที่ APK ลายเซ็นดิจิทัล ด้านล่างนี้ เราจะกล่าวถึงวิธีการทำงานของ App Signing และคำแนะนำในการใช้ เครื่องมือตรวจสอบ APK ออนไลน์ ของเราเพื่อตรวจสอบแฮชและใบรับรองของ APK ก่อนที่คุณจะตัดสินใจเชื่อถือ
เวอร์ชัน 60 วินาที:
Android ลงนาม APK ทุกรายการด้วยรหัสผู้เผยแพร่ โทรศัพท์ปฏิเสธ "การอัปเดต" ซึ่งมีลายเซ็นไม่ตรงกับการติดตั้งที่มีอยู่ นั่นคือการป้องกันการแอบอ้างบุคคลอื่นหลักของระบบปฏิบัติการ หากต้องการตรวจสอบ APK ที่ไซด์โหลด ให้คำนวณแฮช SHA-256 และลายนิ้วมือใบรับรองการลงนาม จากนั้นเปรียบเทียบทั้งสองค่ากับค่าที่คุณเชื่อถือ (การติดตั้ง Play Store ที่มีอยู่ ลายนิ้วมือที่เผยแพร่ของนักพัฒนาซอฟต์แวร์ หรือสำเนาก่อนหน้านี้ที่ทราบว่าใช้งานได้ดี) การจับคู่หมายความว่าไฟล์มีลักษณะไบต์เหมือนกันและลงนามโดยผู้จัดพิมพ์รายเดียวกัน ไม่ตรงกันหมายถึง อย่าติดตั้ง
ลายเซ็น APK คืออะไร
ลายเซ็นดิจิทัลเป็นหลักฐานยืนยันตัวตนแบบเข้ารหัส เมื่อนักพัฒนาแอปเสร็จสิ้น พวกเขาจะ "ลงนาม" แอปโดยใช้คีย์ส่วนตัว (ที่เก็บคีย์) จากนั้น Android จะใช้คีย์สาธารณะที่เกี่ยวข้องซึ่งฝังอยู่ใน APK เพื่อให้แน่ใจว่า:
- ความซื่อสัตย์: ไฟล์ไม่มีการเปลี่ยนแปลงนับตั้งแต่ลงนาม
- ความถูกต้อง: นักพัฒนาคือคนที่พวกเขาบอกว่าเป็น
- อัปเดต: เฉพาะ APK ที่ลงนามด้วยคีย์เดียวกันเท่านั้นที่สามารถอัปเดตแอปที่มีอยู่ในโทรศัพท์ของคุณได้
วิวัฒนาการของการลงนาม: V1, V2, V3 และ V4
Google ได้ปรับปรุงความปลอดภัยของ APK อย่างต่อเนื่องตลอดหลายปีที่ผ่านมา:
- V1 (การลงนามขวด): ลงนามแต่ละรายการใน ZIP ช้าและเสี่ยงต่อการโจมตีบางอย่าง
- V2 (โครงการลายเซ็น APK): เซ็นชื่อบล็อกไฟล์ทั้งหมด รวดเร็วในการตรวจสอบและปลอดภัยยิ่งขึ้น (Android 7.0 ขึ้นไป)
- V3 (การหมุนปุ่ม): อนุญาตให้นักพัฒนาเปลี่ยนคีย์การเซ็นชื่อของตนในขณะที่ยังคงอัปเดตแอปอยู่ (Android 9.0 ขึ้นไป)
- V4 (สตรีมมิ่ง): ได้รับการปรับให้เหมาะสมสำหรับการติดตั้งเพิ่มเติมผ่าน ADB (Android 11+)
วิธีตรวจสอบลายเซ็น APK ออนไลน์
เครื่องมือตรวจสอบ APK ของเราไม่เพียงแค่คำนวณแฮชเท่านั้น จะทำการตรวจสอบการเข้ารหัสเต็มรูปแบบของห่วงโซ่ใบรับรอง นี่คือวิธีการใช้งาน:
ขั้นตอนในการตรวจสอบ:
- ไปที่หน้า เครื่องมือตรวจสอบ APK
- เลือกไฟล์ APK หรือ XAPK ของคุณ
- เครื่องมือของเราแยกวิเคราะห์ไดเรกทอรี META-INF/ และแยกข้อมูลใบรับรอง (.RSA, .DSA หรือ .EC)
- รอให้การวิเคราะห์เสร็จสิ้น (ใช้เวลาเพียงไม่กี่วินาที)
- ตรวจสอบ ข้อมูลใบรับรอง: ชื่อนักพัฒนา องค์กร และประเทศต้นทาง
- ตรวจสอบ แฮช: เปรียบเทียบ SHA-256 ที่แสดงบนเว็บไซต์ของเรากับมูลค่าที่ผู้จัดพิมพ์เผยแพร่บนเว็บไซต์อย่างเป็นทางการ หน้าเผยแพร่โครงการ หรือรายการลงนาม
คำเตือนด้านความปลอดภัย
หากเครื่องมือยืนยันแสดง "ใบรับรองการแก้ไขข้อบกพร่อง" หรือเอนทิตี "ลงนามด้วยตนเอง" ที่ไม่รู้จักสำหรับแอปหลักเช่น Facebook หรือ WhatsApp แสดง อย่าติดตั้งมัน มันเกือบจะถูกทำลายอย่างแน่นอน
การทำความเข้าใจเช็คซัม (MD5, SHA-1, SHA-256)
เช็คซัมเป็นสตริงที่มีความยาวคงที่ซึ่งแสดงถึงไฟล์ทั้งหมด หากคุณเปลี่ยนพิกเซลเดียวในไอคอนของแอป แฮช SHA-256 จะเปลี่ยนไปโดยสิ้นเชิง
| ประเภทแฮช | ระดับความปลอดภัย | หมายเหตุ |
|---|---|---|
| MD5 | มรดก | เสี่ยงต่อการชนกัน ไม่ใช่เพื่อความปลอดภัย |
| SHA-1 | ปานกลาง | ยังคงใช้กันอย่างแพร่หลายสำหรับการค้นหาอย่างรวดเร็ว |
| SHA-256 | ยอดเยี่ยม | มาตรฐานที่ทันสมัยสำหรับการตรวจสอบแอป |
ใบรับรองการลงนามบอกคุณได้จริงอย่างไร
เมื่อผู้ตรวจสอบส่งคืนใบรับรอง ส่วนที่มีความสำคัญต่อความปลอดภัยจากไซด์โหลดจะไม่ใช่บิตที่มีสีสันของข้อมูลเมตา X.509 แต่เป็นฟิลด์เพียงไม่กี่ช่อง ในทางปฏิบัติ:
- ลายนิ้วมือ SHA-256 ของใบรับรอง นี่เป็นค่าเดียวที่สำคัญที่สุด: แฮชอักขระ 64 เลขฐานสิบหกที่ระบุคีย์การเซ็นชื่อโดยไม่ซ้ำกัน APK สองรายการที่มีลายนิ้วมือ SHA-256 เหมือนกันได้รับการลงนามด้วยคีย์ส่วนตัวเดียวกัน นั่นคือความหมายของ "ความต่อเนื่องของลายเซ็น" ในตรรกะการอัปเดตของระบบปฏิบัติการ
- ชื่อเฉพาะเรื่อง. มักจะคล้ายกับ CN=Some App, O=Example Inc., C=US มีประโยชน์ในฐานะ คำใบ้ ไม่ใช่เป็นหลักฐานพิสูจน์ตัวตน เนื่องจากผู้โจมตีสามารถใส่สตริงใดก็ได้ที่ต้องการใน DN ของใบรับรองที่ลงนามด้วยตนเอง ตรวจสอบลายนิ้วมือทุกครั้ง ไม่ใช่ชื่อ
- ระยะเวลามีผล คีย์การเผยแพร่ที่ถูกต้องตามกฎหมายส่วนใหญ่สร้างขึ้นโดยมีความถูกต้องประมาณ 25 ปี (คำแนะนำในอดีตคือ 10,000 วัน) ใบรับรองที่จะหมดอายุในเดือนหน้า หรือใบรับรองที่มีความถูกต้องทับซ้อนกับอดีตไปแล้ว ถือเป็นธงสีแดง
- อัลกอริธึมลายเซ็น แอพสมัยใหม่ใช้ SHA256withRSA หรือ SHA256withECDSA MD5 เสีย; SHA1withRSA เลิกใช้แล้ว APK ที่ลงนามด้วย v1 / SHA-1 เท่านั้นที่น่าสงสัยในปี 2026
Hash vs Signature: ความแตกต่างที่บทช่วยสอนส่วนใหญ่ข้ามไป
ผู้คนมักจะผสมคำว่า "แฮช" และ "ลายเซ็น" เข้าด้วยกัน พวกเขาตอบสนองวัตถุประสงค์ที่แตกต่างกันมากและจำเป็นต้องมีการยืนยันที่ปลอดภัยทั้ง:
- กัญชา (SHA-256 ของ APK ทั้งหมด) จะบอกคุณว่าไบต์ของไฟล์เหมือนกับสำเนาอ้างอิงหรือไม่ หากแฮชของคุณตรงกับแฮชที่เผยแพร่ของผู้จัดพิมพ์ ไฟล์จะไม่มีการเปลี่ยนแปลงตั้งแต่พวกเขาคำนวณแฮชนั้น การตรวจสอบแฮชเพียงอย่างเดียวไม่ได้บ่งบอกว่าใครเป็นผู้สร้างไบต์
- ลายเซ็น จะพิสูจน์ว่าใครเป็นผู้สร้างไบต์ โดยเฉพาะที่ผู้ถือคีย์ส่วนตัวจับคู่กับใบรับรองการลงนามที่สร้างไฟล์นี้ การตรวจสอบลายเซ็นเพียงอย่างเดียวไม่ได้บอกว่าไฟล์นั้นถูกดัดแปลงหลังจากการลงนามหรือไม่ (ระบบปฏิบัติการจะตรวจจับสิ่งนั้นและปฏิเสธมัน แต่ใบรับรองเองก็ไม่ได้ "รู้" เกี่ยวกับเนื้อหาไฟล์)
สำหรับ APK ที่ไซด์โหลด การรับประกันที่แข็งแกร่งที่สุดจะรวมสองสิ่งเข้าด้วยกัน: ลายนิ้วมือของใบรับรองตรงกับลายนิ้วมือที่ผู้เผยแพร่ และ รู้จัก ส่วน SHA-256 ของไฟล์จะตรงกับค่าที่ผู้เผยแพร่เผยแพร่สำหรับรุ่นที่แน่นอนนั้น
สถานที่รับลายนิ้วมืออ้างอิงที่เชื่อถือได้
ส่วนที่ยากที่สุดของการตรวจสอบคือการรู้ค่าที่ถูกต้องเพื่อเปรียบเทียบ แนวทางที่เชื่อถือได้บางประการ ตามลำดับความมั่นใจคร่าวๆ:
- เว็บไซต์หรือหน้าเผยแพร่ของผู้จัดพิมพ์เอง โครงการโอเพ่นซอร์สและผู้ขายที่คำนึงถึงความปลอดภัยจำนวนมากเผยแพร่ลายนิ้วมือ SHA-256 ของใบรับรองการลงนามควบคู่ไปกับการดาวน์โหลด นี่คือมาตรฐานทองคำ
- การติดตั้ง Play Store ที่มีอยู่ หากแอปได้รับการติดตั้งบนอุปกรณ์ที่จัดการโดย Play แล้ว ลายนิ้วมือใบรับรองจะเป็นลายนิ้วมือของผู้เผยแพร่ตามคำจำกัดความ เปรียบเทียบลายนิ้วมือของ APK ที่ไซด์โหลดของคุณกับสิ่งนั้น เครื่องมือเช่น Apk Analyzer (ใน Android Studio) หรือ apksigner verify --print-certs อ่านจาก APK ที่ติดตั้งโดยตรง
- APK แรกที่คุณเคยติดตั้งแอปนี้ หากคุณใช้แอปมาระยะหนึ่งแล้วและไม่เคยได้รับข้อความแจ้ง "ลายเซ็นไม่ตรงกัน" คุณสามารถใช้สำเนาเก่าๆ ของคุณเป็นข้อมูลอ้างอิงได้ การอัปเดตครั้งต่อๆ ไปจากผู้เผยแพร่รายเดียวกันต้องใช้คีย์เดียวกัน (หรือหมุนเวียนผ่าน v3 ซึ่งในกรณีนี้ห่วงโซ่ยังคงยืนยัน)
- สแน็ปช็อตสาธารณะที่เก็บถาวร Internet Archive และบริการที่คล้ายกันจะเก็บรักษาหน้า APK เก่าที่เผยแพร่ไว้พร้อมกับแฮชที่ประกาศไว้เป็นครั้งคราว มีประโยชน์สำหรับบิลด์เก่ามากที่หน้าผู้เผยแพร่ต้นฉบับหายไป
ข้อผิดพลาดในการตรวจสอบทั่วไป
- เปรียบเทียบสนามผิด "MD5 ของไฟล์ APK" ไม่เหมือนกับ "MD5 ของใบรับรอง" ใช้ฟิลด์เดียวกันสำหรับไฟล์ผู้สมัครและการอ้างอิง
- การเชื่อถือข้อมูลเมตาของไฟล์เอง APK สามารถรวมสตริงเวอร์ชัน ป้ายกำกับแพ็กเกจ แท็กผู้เขียนใดๆ ไว้ในไฟล์ Manifest ไม่มีสิ่งใดที่เป็นการเข้ารหัส บล็อกลายเซ็นเป็นสิ่งเดียวที่ระบบปฏิบัติการตรวจสอบได้จริง
- ข้ามการยืนยันเนื่องจากไฟล์ถูกส่งโดยเพื่อน เพื่อนที่บอกว่า "นี่คือ APK อย่างเป็นทางการ" ยังไม่ได้ตรวจสอบมากกว่าที่คุณมี ยืนยันแหล่งที่มาที่เผยแพร่ลายนิ้วมือที่คุณสามารถตรวจสอบได้
- ถือว่าฟิลด์ที่ตรงกันหนึ่งฟิลด์เพียงพอ จับคู่ทั้ง SHA-256 ของไฟล์และลายนิ้วมือ SHA-256 ของใบรับรอง การจับคู่รายการใดรายการหนึ่งแต่ไม่ตรงกันเป็นสัญญาณว่าไบต์มีการเปลี่ยนแปลงหรือแหล่งที่มาแอบอ้างเป็นผู้จัดพิมพ์
- ปิดการใช้งาน Play Protect เพื่อ "ความสะดวกสบาย" Play Protect เป็นเครื่องสแกนความเห็นที่สอง ไม่ใช่สิ่งทดแทนการตรวจสอบลายเซ็น แต่ตรวจจับมัลแวร์จริงที่การตรวจสอบลายเซ็นไม่สามารถทำได้ เนื่องจาก Protect รู้เกี่ยวกับแพ็คเกจที่รู้จักที่ไม่ดีตามเนื้อหา ไม่ใช่โดยการเซ็นชื่อคีย์ ทิ้งมันไว้
แอพของคุณปลอดภัยหรือไม่?
อย่าเดาเลย ตรวจสอบ APK ที่ไซด์โหลดของคุณกับใบรับรองนักพัฒนาอย่างเป็นทางการในไม่กี่วินาที
เริ่มการยืนยัน APKคำถามที่พบบ่อย (FAQ)
เหตุใด Android จึงบล็อกไม่ให้ฉันติดตั้ง APK ที่ดัดแปลง
เนื่องจากลายเซ็นของ APK ใหม่ไม่ตรงกับลายเซ็นที่ติดตั้งไว้แล้ว วิธีนี้จะป้องกันไม่ให้แฮกเกอร์ "เขียนทับ" แอปธนาคารจริงของคุณด้วยแอปปลอม
ฉันสามารถลงนาม APK อีกครั้งหลังจากแก้ไขได้หรือไม่
ใช่ แต่คุณจะใช้ คีย์ที่แตกต่างกัน แอปจะยังคงติดตั้งบนโทรศัพท์ที่ "สะอาด" แต่จะไม่ได้รับการอัปเดตจากนักพัฒนาเดิมอีกต่อไป
การปักหมุดใบรับรองคืออะไร?
เป็นคุณสมบัติความปลอดภัยขั้นสูงที่แอปจะตรวจสอบใบรับรองเฉพาะอย่างชัดเจนก่อนที่จะสื่อสารกับเซิร์ฟเวอร์ ทำให้แอปที่ถูกดัดแปลงไม่มีประโยชน์แม้ว่าจะติดตั้งอย่างถูกต้องก็ตาม
ทำให้การยืนยันลายเซ็นเป็นส่วนหนึ่งของทุกๆ Sideload
ลายเซ็นกำลังช่วยยกระดับความปลอดภัยของ Android ยุคใหม่อย่างมาก การใช้เวลาไม่กี่วินาทีพิเศษในการเรียกใช้ไฟล์ผ่าน เครื่องมือตรวจสอบ APK เป็นวิธีที่ประหยัดในการป้องกันแอปที่ถูกดัดแปลงออกจากอุปกรณ์ของคุณก่อนที่จะถูกติดตั้ง