iOS Security Internals: Entitlements, Code Signing, Keychain και Data Protection — DedSec Project
iOS Security Internals: Entitlements, Code Signing, Keychain και Data Protection Ελληνική έκδοση — Μάθημα 121. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands παραμένουν…
Ελληνική έκδοση — Μάθημα 121. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands παραμένουν στα Αγγλικά όπου αυτό αυξάνει την ακρίβεια.
Κατανόησε iOS code signing, entitlements, app sandbox, Keychain access groups, Data Protection classes και Secure Enclave ως ξεχωριστά επίπεδα trust.
Μαθησιακοί στόχοι
Στο τέλος πρέπει να μπορείς να:
- εξηγήσεις το secure boot chain and code signing και να εντοπίσεις trust boundary, state transition και evidence που σχετίζονται με αυτό,
- εξηγήσεις το application sandbox containers και να εντοπίσεις trust boundary, state transition και evidence που σχετίζονται με αυτό,
- εξηγήσεις το entitlements and capabilities και να εντοπίσεις trust boundary, state transition και evidence που σχετίζονται με αυτό,
- εξηγήσεις το Keychain access groups και να εντοπίσεις trust boundary, state transition και evidence που σχετίζονται με αυτό,
- εξηγήσεις το Data Protection classes και να εντοπίσεις trust boundary, state transition και evidence που σχετίζονται με αυτό,
- εξηγήσεις το Secure Enclave and key handling και να εντοπίσεις trust boundary, state transition και evidence που σχετίζονται με αυτό,
Βαθιές τεχνικές έννοιες
1. secure boot και code signing
Το iOS χρησιμοποιεί hardware-rooted boot chain και mandatory code signing. Ξεχώρισε platform integrity, app signing, provisioning και runtime authorization γιατί είναι διαφορετικά controls.
2. sandbox containers
Apps έχουν isolated containers αλλά υπάρχουν σκόπιμα shared surfaces όπως extensions, app groups, pasteboard, URL handling, cloud sync και exported documents. Αυτά χρειάζονται ξεχωριστό threat model.
3. entitlements και capabilities
Entitlements δηλώνουν privileged capabilities. Σύγκρινε το signed entitlement set με τις πραγματικές ανάγκες της εφαρμογής και αφαίρεσε παλιές ή broad δυνατότητες.
4. Keychain access groups
Keychain access groups επιτρέπουν sharing credentials μεταξύ συγκεκριμένων signed apps/extensions. Έλεγξε membership, accessibility, sync και recovery ώστε helper να μην αποκτά περισσότερα secrets από όσα χρειάζεται.
5. Data Protection classes
Data Protection συνδέει file encryption με device lock state και key availability. Διάλεξε class σύμφωνα με το πότε χρειάζεται πραγματικά το data και έλεγξε backup/export copies ξεχωριστά.
6. Secure Enclave και key handling
Secure Enclave-backed keys μπορούν να κρατούν private material εκτός normal app processor. Όρισε user verification, fallback, migration και recovery χωρίς να εξάγεται το private key.
7. privacy permissions
Camera, microphone, photos, location, contacts και Bluetooth χρειάζονται ελάχιστη απαιτούμενη άδεια. Ζήτα permission τη στιγμή που χρειάζεται, χειρίσου denial σωστά και εφάρμοσε data minimization.
8. managed-device και enterprise trust
MDM μπορεί να εγκαθιστά profiles, certificates, networks, managed apps και restrictions. Ξεχώρισε device-management authority από application identity και κάνε audit high-impact profile/certificate changes.
Καθοδηγούμενο εργαστήριο
Εργαστήριο 1 — Σχεδίασε μοντέλο απειλών για υποθετική εφαρμογή iOS με δημόσια τεκμηρίωση αρχιτεκτονικής.
Εργαστήριο 2 — Σύγκρινε απλό αρχείο, προστατευμένο αρχείο και Keychain για αποθήκευση δοκιμαστικού token, καταγράφοντας ιδιότητες ασφάλειας χωρίς εξαγωγή μυστικών.
Εργαστήριο 3 — Αντιστοίχισε τα entitlements μιας υποθετικής εφαρμογής στις ελάχιστες αναγκαίες άδειες και επισήμανε περιττές δυνατότητες.
Πλήρες αγγλικό μάθημα
Επόμενα μαθήματα
Σχετικά modules: 017, 039, 054, 056, 082, 103. Από το κύριο menu επίλεξε Αναζήτηση μαθημάτων για να βρεις σχετικά θέματα σε όλο το project.