ความปลอดภัยและการเข้ารหัส
Keychain ขั้นสูง, CryptoKit, SSL Pinning, การยืนยันตัวตนด้วยไบโอเมตริก, secure coding, ATS
1ควรใช้กลไกใดของ iOS เพื่อจัดเก็บโทเค็นการยืนยันตัวตนที่ละเอียดอ่อนอย่างปลอดภัย?
ควรใช้กลไกใดของ iOS เพื่อจัดเก็บโทเค็นการยืนยันตัวตนที่ละเอียดอ่อนอย่างปลอดภัย?
คำตอบ
Keychain คือระบบจัดเก็บข้อมูลที่ปลอดภัยในตัวของ iOS ซึ่งออกแบบมาเฉพาะสำหรับข้อมูลที่ละเอียดอ่อน โดยจะเข้ารหัสข้อมูลโดยอัตโนมัติและจัดการการเข้าถึงตามนโยบายการควบคุมที่กำหนดไว้ ไม่ควรใช้ UserDefaults สำหรับข้อมูลลับเด็ดขาดเพราะจัดเก็บข้อมูลเป็นข้อความธรรมดา Keychain ยังมีคุณสมบัติขั้นสูง เช่น การเข้าถึงด้วยไบโอเมตริกและการซิงค์ iCloud ที่ปลอดภัย
2แอตทริบิวต์ Keychain ใดที่ทำให้ข้อมูลไม่สามารถเข้าถึงได้ขณะที่อุปกรณ์ถูกล็อก?
แอตทริบิวต์ Keychain ใดที่ทำให้ข้อมูลไม่สามารถเข้าถึงได้ขณะที่อุปกรณ์ถูกล็อก?
คำตอบ
kSecAttrAccessibleWhenUnlocked ทำให้สามารถเข้าถึงข้อมูลได้เฉพาะเมื่อปลดล็อกอุปกรณ์เท่านั้น ซึ่งให้การป้องกันแม้ว่าจะมีการเข้าถึง Keychain ผ่านกระบวนการเบื้องหลัง Apple แนะนำค่านี้สำหรับโทเค็นที่ละเอียดอ่อน ตัวเลือกอื่น เช่น WhenUnlockedThisDeviceOnly ให้การป้องกันเพิ่มเติมโดยป้องกันการซิงค์ iCloud
3ควรใช้คลาส CryptoKit ใดเพื่อทำการเข้ารหัสแบบสมมาตร AES-256?
ควรใช้คลาส CryptoKit ใดเพื่อทำการเข้ารหัสแบบสมมาตร AES-256?
คำตอบ
SymmetricKey ใน CryptoKit จัดการคีย์แบบสมมาตร ในขณะที่ AES.GCM (Galois/Counter Mode) ทำการเข้ารหัสแบบยืนยันตัวตน GCM เป็นที่นิยมเพราะให้ทั้งความลับและการยืนยันตัวตน ป้องกันการโจมตีแบบดัดแปลงข้อมูล แนวทางนี้ปลอดภัยกว่า ChaCha20Poly1305 ในบริบทที่ไม่ต้องการประสิทธิภาพสูงสุดบนอุปกรณ์รุ่นเก่า
ข้อได้เปรียบหลักของการเข้ารหัสแบบอสมมาตรเหนือการเข้ารหัสแบบสมมาตรคืออะไร?
ความแตกต่างพื้นฐานระหว่างการแฮชและการเข้ารหัสในด้านความปลอดภัยคืออะไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ iOS อื่นๆ
พื้นฐาน Swift
พื้นฐานภาษา Swift
พื้นฐาน UIKit
วงจรชีวิตของ UIViewController
UserDefaults & Keychain
วงจรชีวิตของแอปพลิเคชัน
Auto Layout & Constraints
UITableView & UICollectionView
พื้นฐาน SwiftUI
การจัดการ State ใน SwiftUI
การนำทาง SwiftUI
Networking & URLSession
Codable และการแยกวิเคราะห์ JSON
Core Data
การเขียนโปรแกรมเชิงโปรโตคอล
สถาปัตยกรรม MVVM
การแจ้งเตือนแบบ Push
Unit Testing และ XCTest
การทดสอบ UI
Xcode และระบบ Build
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
การเพิ่มประสิทธิภาพ
SwiftUI Advanced
สถาปัตยกรรมแอปพลิเคชัน iOS
เชี่ยวชาญ iOS สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี