โปรไฟล์จะโผล่ใน Settings พร้อมชื่อ ผู้ลงนาม และปุ่ม Install และบรรทัดผู้ลงนามคือส่วนที่คนส่วนใหญ่อ่าน บรรทัดนั้นตอบคำถามเดียวว่าใครเป็นผู้แพ็กเกจการตั้งค่าเหล่านี้ตามกฎการตรวจสอบลายเซ็น มันไม่ได้บอกว่าเพย์โหลด VPN ชี้ไปที่เกตเวย์ของนายจ้างคุณ หรือว่าใบรับรองรูทที่ฝังมาอยู่ใน TLS trust store ของคุณ คำอธิบายด้านล่างจะเปิดแพ็กเกจตามลำดับที่อุปกรณ์จะนำไปใช้

เริ่มที่ซองข้อมูลก่อน ใครเป็นผู้ลงนามในโปรไฟล์นี้

บน iOS โปรไฟล์จะอยู่ใต้ Settings, General, VPN และ Device Management โดยมีชื่อผู้ลงนามอยู่เหนือปุ่ม Install อ่านชื่อนั้นก่อนแตะอะไรทั้งสิ้น แล้วถามตัวเองว่านี่คือองค์กรที่คุณคาดว่าจะได้รับคำสั่งตั้งค่าจากหรือเปล่า ลายเซ็นที่ถูกต้องจากฝ่ายที่คุณไม่รู้จักก็ยังเป็นลายเซ็นที่ถูกต้อง และมันให้สิทธิ์กับคอนฟิกของเขา ไม่ใช่ของคุณ หน้าจอเดียวกันยังบอกด้วยว่าโปรไฟล์นี้ลงนามไว้หรือไม่

ถ้ามีไฟล์อยู่บน Mac ให้ตรวจสอบก่อนที่มันจะไปถึงมือถือ เครื่องมือด้านความปลอดภัยจะถอดซอง CMS และแสดง plist ที่อุปกรณ์จะอ่าน ซึ่งเป็นเนื้อหาเดียวกันโดยไม่ต้องผ่านปุ่ม Install เอกสารของ Apple เรื่อง การบังคับใช้คอนฟิก อธิบายการลงนามว่าเป็นการยืนยันแหล่งที่มา ซึ่งก็คือขอบเขตที่อธิบายอยู่ในที่นี้

security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist

หยุดตรงนี้ถ้าผู้ลงนามไม่ใช่คนที่คุณคาดไว้ หรือไฟล์ไม่ได้ลงนามและมาทางช่องทางที่รับรองมันไม่ได้ ไม่มีขั้นตอนใดหลังจากนี้ที่จะทำให้ซองข้อมูลที่ไม่น่าไว้ใจกลายเป็นน่าไว้ใจ

เปิดเพย์โหลดแต่ละตัวแล้วระบุว่ามันติดตั้งอะไร

โปรไฟล์คือคอนเทนเนอร์ และส่วนที่น่าสนใจคือ PayloadContent อาร์เรย์ที่อยู่ข้างใน แต่ละรายการมี PayloadType ที่บอกว่าอุปกรณ์จะติดตั้งอะไร เช่น คอนฟิก VPN แบบมีผู้จัดการ identity แบบ PKCS#12 ใบรับรองรูท หรือการลงทะเบียนเพื่อจัดการ พิมพ์รายการชนิดออกมาก่อนอ่านการตั้งค่าใด ๆ

plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
  grep -E 'PayloadType|PayloadDisplayName'

เพย์โหลด VPN ระบุการเชื่อมต่อหนึ่งรายการ ทั้งที่อยู่เซิร์ฟเวอร์ วิธีพิสูจน์ตัวตน และอาจมีกฎรายแอปหรือกฎแบบ on-demand เพย์โหลด identity ให้ข้อมูลรับรองฝั่งไคลเอนต์ที่การเชื่อมต่อนั้นจะใช้ เพย์โหลดใบรับรองรูทเพิ่มจุดยึดความเชื่อถือ และเพย์โหลดการจัดการยกการควบคุมต่อให้เซิร์ฟเวอร์ ทั้งสี่อย่างเป็นการผูกมัดที่ต่างกัน และลายเซ็นครอบคลุมแพ็กเกจทั้งชุด ไม่ได้รับรองทีละอย่าง อ่านตามลำดับนั้น เพราะ VPN ไม่มีประโยชน์ถ้าไม่มี identity และ identity ก็มีความหมายน้อยถ้าไม่รู้ว่าใครออกให้

การป้องกันด้วยรหัสผ่านบนไฟล์เป็นอีกคุณสมบัติหนึ่ง แพ็กเกจที่เข้ารหัสจะซ่อนเนื้อหาจากคนที่ไม่มีรหัสผ่าน แต่ไม่ได้ตัดสินว่าคุณควรอนุมัติสิ่งที่อยู่ข้างในหรือไม่ มองรหัสผ่านเป็นกลไกการส่งมอบ ไม่ใช่การตรวจทาน

ไล่ใบรับรองให้ถึงการเชื่อมต่อที่ใช้มัน

แสดงรายการใบรับรองในแพ็กเกจแล้วจับคู่แต่ละใบกับหน้าที่ของมัน ใบรับรองไคลเอนต์ระบุอุปกรณ์นี้ต่อเกตเวย์ CA ที่ออกใบรับรองนั้นอยู่ในห่วงโซ่ความเชื่อถือของการเชื่อมต่อนั้น และรูทที่ติดตั้งไว้สำหรับพร็อกซีหรือบริการภายในไม่ใช่จุดยึดสำหรับทุกเว็บไซต์ HTTPS โดยอัตโนมัติ บน iOS รูทที่ติดตั้งด้วยมือจะยังไม่ถูกเชื่อถือสำหรับ TLS จนกว่าคุณจะเปิดใช้ใน Settings, About, Certificate Trust Settings ส่วนรูทที่ส่งมาผ่านการจัดการจะถูกเชื่อถือโดยไม่ต้องทำขั้นตอนนั้น ความต่างนี้เองคือเหตุผลที่วัตถุประสงค์ของเพย์โหลดสำคัญ

openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates

ผู้ให้บริการที่พาทราฟฟิกของคุณผ่านไปไม่ใช่จุดปลาย TLS ของทุกเว็บไซต์ที่คุณเข้าชมด้วยเหตุผลนั้น การดักอ่านต้องใช้เส้นทางทราฟฟิกและจุดยึดความเชื่อถือที่แอปยอมรับ และโปรไฟล์ที่มีใบรับรองใบเดียวพิสูจน์ไม่ได้ทั้งสองอย่าง ถามว่าการเชื่อมต่อใดใช้ใบรับรองนั้นและแอปใดจะยอมรับมัน แทนที่จะสรุปว่าการติดตั้งโปรไฟล์จะถอดรหัสทุกอย่าง

หลังติดตั้ง ตรวจสอบและรู้ว่าการถอนทำอะไร

เมื่อติดตั้งโปรไฟล์แล้ว ให้ยืนยันจากอุปกรณ์ ไม่ใช่จากไฟล์ที่ดาวน์โหลดมา หน้าจอการตั้งค่าจะแสดงโปรไฟล์ที่ติดตั้ง ผู้ลงนาม และเพย์โหลดของมัน และหน้าจอ VPN จะแสดงว่าการเชื่อมต่อถูกตั้งค่าตามที่ต้องการหรือไม่ การลบไฟล์ที่ดาวน์โหลดไม่ได้ลบอะไรเลย คอนฟิกที่ติดตั้งแล้วเป็นออบเจกต์แยกต่างหาก

profiles show -type configuration
scutil --nc list

ถ้าโปรไฟล์มีการลงทะเบียนเพื่อจัดการ ให้อ่านผลของการถอนก่อนติดตั้ง ไม่ใช่หลังติดตั้ง การถอนการลงทะเบียนนั้นจะพาคอนฟิกที่เกี่ยวข้องไปด้วยและอาจลบแอปที่ถูกจัดการ ขึ้นอยู่กับว่าอุปกรณ์ถูกลงทะเบียนมาอย่างไร นี่ไม่ใช่ขั้นตอนซ่อมแซมที่ควรลองเมื่อใบรับรองดูผิดปกติ ถามผู้ดูแลระบบว่าเพย์โหลดใดเป็นเจ้าของปัญหาก่อนจะลบอะไร

บทความนี้จบด้วยคำตอบสี่ข้อแยกกัน ใครลงนามในแพ็กเกจ มันติดตั้งเพย์โหลดใด แต่ละการเชื่อมต่อใช้ identity และความเชื่อถือใด และการถอนจะพาอะไรไปด้วย ถ้าแยกคำตอบเหล่านี้ไว้ โปรไฟล์ที่ลงนามแล้วจะกลายเป็นการตัดสินใจที่ผ่านการตรวจทาน ไม่ใช่เครื่องหมายถูกสีเขียว

บทความที่เกี่ยวข้อง