บทนำ (Overview)
เดี๋ยวนี้โปรแกรมบนมือถือมีความนิยมมากขึ้น โปรแกรมที่เคยอยู่บนเว็บก็ย้ายมาอยู่บนมือถือซะอย่างนั้น มันช่างสะดวกสบายเสียจริง คนทำโปรแกรมบนมือถือก็บอกว่า “บ่ เป็นหยั่งสู โปรแกรมข้อยช่างปลอดภัยยิ่ง” เพราะมันถูกเข้ารหัสระหว่างมือถือจนไปถืงเครื่องให้บริการ (Web server) โดยใช้โปรโตคอล “TLS/SSL” อย่างเช่น “HTTPS” ปลอดภัยหายห่วง ป้องกันดักจับข้อมูลอย่างเด็ดขาด (man-in-the-middle attacks)
แต่แล้วความจริงเริ่มเปิดเผย “Hacker” บอกว่าเราไม่ดักระหว่าง “network” ก็ได้ เราดักโปรโตคอล “https” ตั้งแต่ต้นทางนี้แหละโดยใช้ “certificates” ของโปรแกรมจำพวก “proxy” ก็ได้ติดตั้งบนเครื่องเหยื่อแล้วค่อยดักเอา…
โปรแกรมเมอร์ บอกเอาว่ะถ้างั้นเราต้องตรวจสอบให้อนุญาตเฉพาะ “certificate” ที่ใช้งานเฉพาะเท่านั้น สามารถใช้งานโปรแกรมนี้ได้ละกัน
ปักหมุดสักหน่อย (Certificate Pining)
วิธีการตรวจสอบให้อนุญาต “certificate” ที่เราระบุใช้งานเท่านั้น เค้าเรียกกันว่า “Certificate Pining” ซึ่งมันหน้าที่ของโปรแกรมเมอร์จะต้องเขียนฝั่งลงใน “source-code” บนโปรแกรมบนมือถือนั้นแหละ โดยมีการฝั่งของ certificate 2 แบบ คือ
- ใช้ self-signed certificate (แบบนี้ไม่ต้องเสียตังค์)
- ใช้ CA certificate (โดยมีการจำกัดเฉพาะ certificate ที่ใช้งาน)
ผลจากการใช้งาน “certificate pinning” นั้น ส่งผลให้โปรแกรมจำพวก proxy ไม่สามารถดักเจ้าข้อมูลได้ดังภาพ (วิธีการเขียนโปรแกรมเพื่อทำ Certificate Pining สามารถติดตามได้ที่ http://blog.itselectlab.com/?p=254)

แต่อย่างไรก็ตามเราสามารถยกเลิกการเรียกใช้งาน “certificate” ได้ในช่วงเวลา “Runtime” (ช่วงที่เรากำลังใช้งานโปรแกรมนั้น ๆ อยู่) โดยการปิดการตรวจสอบ “certificate” ของ “application” นั้น
ฆ่ามันเลย (iOS SSL Kill Switch)
เครื่องมือที่เรากำลังกล่าวถึงคือ “iOS SSL Kill Switch” ซึ่งมีขั้นตอนติดตั้งดังนี้
- ดาวน์โหลดโปรแกรมจาก https://github.com/iSECPartners/ios-ssl-kill-switch/releases
- ติดตั้งโปรแกรม .deb โดยใช้คำสั่ง (dpkg -i <ชื่อโปรแกรม> ) วิธีการติดตั้งไฟล์ “.deb” สามารถดูเพิ่มเติมได้จาก http://blog.itselectlab.com/?p=705
- Restart เครื่อง หรือ “respring” โดยใช้คำสั่ง (killall -HUP SpringBoard)
- ไปที่ “Setting” และทำการเปิด “SSL KILL Switch” ดังรูป
- ทดสอบการดักจับข้อมูลโดยใช้ “proxy” อีกครั้ง พบว่าสามารถใช้งานได้