Section 10/141 menit
10. Privacy Architecture: Data Flow dan Audit
10. Privacy Architecture: Data Flow dan Audit
Memastikan Data Tidak Keluar dari Perangkat
Meski Apple mengklaim on-device, praktik privacy-first yang baik tetap penting:
swift
// Sanitasi PII sebelum dikirim ke model (meski on-device)
// Berguna untuk compliance audit dan defense-in-depth
struct PIISanitizer {
// Pattern sederhana — produksi butuh library yang lebih robust
static func sanitize(_ text: String) -> String {
var result = text
// Masker email
let emailPattern = #/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/#
result = result.replacing(emailPattern) { _ in "[EMAIL]" }
// Masker nomor telepon Indonesia sederhana
let phonePattern = #/(\+62|0)[0-9]{8,12}/#
result = result.replacing(phonePattern) { _ in "[PHONE]" }
return result
}
}
// Gunakan sebelum mengirim ke model
func analyzeCustomerFeedback(_ feedback: String) async throws -> String {
let sanitized = PIISanitizer.sanitize(feedback)
let session = LanguageModelSession()
return try await session.respond(to: "Analisis feedback ini: \(sanitized)").content
}
Audit Log untuk Compliance
swift
// Untuk aplikasi enterprise yang butuh audit trail
actor AIAuditLogger {
private var log: [(timestamp: Date, promptHash: String, responseLength: Int)] = []
func record(prompt: String, responseLength: Int) {
// Hash prompt — tidak simpan plaintext, hanya untuk tracking
let hash = prompt.data(using: .utf8).map { SHA256.hash(data: $0).description } ?? "unknown"
log.append((Date(), hash, responseLength))
}
func exportLog() -> [(timestamp: Date, promptHash: String, responseLength: Int)] {
log
}
}
Apa yang Boleh dan Tidak Boleh Dikirim ke Model
swift
✓ AMAN dikirim ke Foundation Models (on-device):
- Teks yang pengguna ketik sendiri di app Anda
- Dokumen yang pengguna upload secara eksplisit
- Data agregat yang tidak mengidentifikasi individu
- Konten yang pengguna ingin diproses AI
⚠ HATI-HATI:
- PII (nama, email, nomor telepon) — sanitasi dulu
- Data kesehatan — gunakan HealthKit access controls
- Data keuangan — pertimbangkan regulasi yang berlaku
❌ JANGAN kirim:
- Credentials, token, atau password
- Private key atau sertifikat
- Data pengguna LAIN yang tidak relevan dengan request ini
- System metadata yang bisa dieksploitasi (UUID device, dll)