Bảo mật và mã hóa
Keychain nâng cao, CryptoKit, SSL Pinning, xác thực sinh trắc học, secure coding, ATS
1Cơ chế iOS nào nên được sử dụng để lưu trữ an toàn các token xác thực nhạy cảm?
Cơ chế iOS nào nên được sử dụng để lưu trữ an toàn các token xác thực nhạy cảm?
Câu trả lời
Keychain là hệ thống lưu trữ an toàn gốc của iOS, được thiết kế riêng cho dữ liệu nhạy cảm. Nó tự động mã hóa dữ liệu và quản lý quyền truy cập theo các chính sách kiểm soát đã định. Không bao giờ nên dùng UserDefaults cho thông tin bí mật vì nó lưu trữ dữ liệu ở dạng văn bản thuần. Keychain cũng cung cấp các tính năng nâng cao như truy cập sinh trắc học và đồng bộ hóa iCloud an toàn.
2Thuộc tính Keychain nào đảm bảo dữ liệu không thể truy cập khi thiết bị bị khóa?
Thuộc tính Keychain nào đảm bảo dữ liệu không thể truy cập khi thiết bị bị khóa?
Câu trả lời
kSecAttrAccessibleWhenUnlocked đảm bảo dữ liệu chỉ có thể được truy cập khi thiết bị được mở khóa. Điều này cung cấp khả năng bảo vệ ngay cả khi Keychain được truy vấn qua một tiến trình nền. Giá trị này được Apple khuyến nghị cho các token nhạy cảm. Các tùy chọn khác như WhenUnlockedThisDeviceOnly cung cấp khả năng bảo vệ bổ sung bằng cách ngăn đồng bộ hóa iCloud.
3Lớp CryptoKit nào nên được sử dụng để thực hiện mã hóa đối xứng AES-256?
Lớp CryptoKit nào nên được sử dụng để thực hiện mã hóa đối xứng AES-256?
Câu trả lời
SymmetricKey trong CryptoKit quản lý các khóa đối xứng, trong khi AES.GCM (Galois/Counter Mode) thực hiện mã hóa có xác thực. GCM được ưu tiên vì nó cung cấp cả tính bảo mật và xác thực, ngăn chặn các cuộc tấn công thao túng. Cách tiếp cận này an toàn hơn ChaCha20Poly1305 trong các ngữ cảnh không yêu cầu hiệu suất cực cao trên các thiết bị cũ.
Ưu điểm chính của mã hóa bất đối xứng so với mã hóa đối xứng là gì?
Sự khác biệt cơ bản giữa hashing và mã hóa về mặt bảo mật là gì?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn iOS khác
Kiến thức cơ bản về Swift
Kiến thức cơ bản về ngôn ngữ Swift
Kiến thức cơ bản về UIKit
Vòng đời UIViewController
UserDefaults & Keychain
Vòng đời của ứng dụng
Auto Layout & Constraints
UITableView & UICollectionView
Kiến thức cơ bản về SwiftUI
Quản lý trạng thái SwiftUI
Điều hướng SwiftUI
Networking & URLSession
Codable & Phân tích JSON
Core Data
Lập trình hướng giao thức
Kiến trúc MVVM
Thông báo Push
Unit Testing & XCTest
Kiểm thử giao diện người dùng
Xcode & Hệ thống Build
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
Tối ưu hóa hiệu suất
SwiftUI Advanced
Kiến trúc ứng dụng iOS
Nắm vững iOS cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí