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)