iOS

ความปลอดภัยและการเข้ารหัส

Keychain ขั้นสูง, CryptoKit, SSL Pinning, การยืนยันตัวตนด้วยไบโอเมตริก, secure coding, ATS

20 คำถามสัมภาษณ์·
Senior
1

ควรใช้กลไกใดของ iOS เพื่อจัดเก็บโทเค็นการยืนยันตัวตนที่ละเอียดอ่อนอย่างปลอดภัย?

คำตอบ

Keychain คือระบบจัดเก็บข้อมูลที่ปลอดภัยในตัวของ iOS ซึ่งออกแบบมาเฉพาะสำหรับข้อมูลที่ละเอียดอ่อน โดยจะเข้ารหัสข้อมูลโดยอัตโนมัติและจัดการการเข้าถึงตามนโยบายการควบคุมที่กำหนดไว้ ไม่ควรใช้ UserDefaults สำหรับข้อมูลลับเด็ดขาดเพราะจัดเก็บข้อมูลเป็นข้อความธรรมดา Keychain ยังมีคุณสมบัติขั้นสูง เช่น การเข้าถึงด้วยไบโอเมตริกและการซิงค์ iCloud ที่ปลอดภัย

2

แอตทริบิวต์ Keychain ใดที่ทำให้ข้อมูลไม่สามารถเข้าถึงได้ขณะที่อุปกรณ์ถูกล็อก?

คำตอบ

kSecAttrAccessibleWhenUnlocked ทำให้สามารถเข้าถึงข้อมูลได้เฉพาะเมื่อปลดล็อกอุปกรณ์เท่านั้น ซึ่งให้การป้องกันแม้ว่าจะมีการเข้าถึง Keychain ผ่านกระบวนการเบื้องหลัง Apple แนะนำค่านี้สำหรับโทเค็นที่ละเอียดอ่อน ตัวเลือกอื่น เช่น WhenUnlockedThisDeviceOnly ให้การป้องกันเพิ่มเติมโดยป้องกันการซิงค์ iCloud

3

ควรใช้คลาส CryptoKit ใดเพื่อทำการเข้ารหัสแบบสมมาตร AES-256?

คำตอบ

SymmetricKey ใน CryptoKit จัดการคีย์แบบสมมาตร ในขณะที่ AES.GCM (Galois/Counter Mode) ทำการเข้ารหัสแบบยืนยันตัวตน GCM เป็นที่นิยมเพราะให้ทั้งความลับและการยืนยันตัวตน ป้องกันการโจมตีแบบดัดแปลงข้อมูล แนวทางนี้ปลอดภัยกว่า ChaCha20Poly1305 ในบริบทที่ไม่ต้องการประสิทธิภาพสูงสุดบนอุปกรณ์รุ่นเก่า

4

ข้อได้เปรียบหลักของการเข้ารหัสแบบอสมมาตรเหนือการเข้ารหัสแบบสมมาตรคืออะไร?

5

ความแตกต่างพื้นฐานระหว่างการแฮชและการเข้ารหัสในด้านความปลอดภัยคืออะไร?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ iOS อื่นๆ

พื้นฐาน Swift

Junior
25 คำถาม

พื้นฐานภาษา Swift

Junior
15 คำถาม

พื้นฐาน UIKit

Junior
18 คำถาม

วงจรชีวิตของ UIViewController

Junior
20 คำถาม

UserDefaults & Keychain

Junior
20 คำถาม

วงจรชีวิตของแอปพลิเคชัน

Junior
20 คำถาม

Auto Layout & Constraints

Mid-Level
24 คำถาม

UITableView & UICollectionView

Mid-Level
25 คำถาม

พื้นฐาน SwiftUI

Mid-Level
18 คำถาม

การจัดการ State ใน SwiftUI

Mid-Level
22 คำถาม

การนำทาง SwiftUI

Mid-Level
18 คำถาม

Networking & URLSession

Mid-Level
20 คำถาม

Codable และการแยกวิเคราะห์ JSON

Mid-Level
20 คำถาม

Core Data

Mid-Level
22 คำถาม

การเขียนโปรแกรมเชิงโปรโตคอล

Mid-Level
20 คำถาม

สถาปัตยกรรม MVVM

Mid-Level
20 คำถาม

การแจ้งเตือนแบบ Push

Mid-Level
18 คำถาม

Unit Testing และ XCTest

Mid-Level
20 คำถาม

การทดสอบ UI

Mid-Level
18 คำถาม

Xcode และระบบ Build

Mid-Level
16 คำถาม

Swift Package Manager

Mid-Level
16 คำถาม

Memory Management & ARC

Senior
22 คำถาม

Combine Framework

Senior
24 คำถาม

Concurrency & async/await

Senior
26 คำถาม

iOS Design Patterns

Senior
24 คำถาม

การเพิ่มประสิทธิภาพ

Senior
22 คำถาม

SwiftUI Advanced

Senior
22 คำถาม

สถาปัตยกรรมแอปพลิเคชัน iOS

Senior
22 คำถาม

เชี่ยวชาญ iOS สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี