Viblo CTF
+1

Bảo mật bằng vân tay, TouchID iOS

TouchID

Touch ID is a fingerprint recognition feature, designed and released by Apple Inc., that allows users to unlock Apple devices, make purchases in the various Apple digital media stores (the iTunes Store, the App Store, and the iBooks Store), and authenticate Apple Pay online or in apps.

=> Touch ID là tính năng nhận dạng vân tay, được thiết kế và phát hành bởi Apple, cho phép người dùng mở các thiết bị của Apple, mua hàng tại các cửa hàng, ứng dụng của Apple khác nhau (iTunes Store, App Store và iBooks Store) và xác thực Apple Pay trực tuyến hoặc trong các ứng dụng khác.

Nó đã được tích hợp vào tất cả iPhone kể từ iPhone 5S 2013 đến năm 2017 của iPhone 8 và 8 Plus; nó còn được thêm vào trên tất cả các iPad kể từ iPad Air 2. Vào năm 2015, Apple giới thiệu một công nghệ TouchID thứ 2 nhanh hơn trong iPhone 6S. Sau đó 1 năm, Apple đã đưa ra máy tính xách tay đầu tay của mình trong MacBook Pro có TouchID. Apple cho biết thông tin về dấu vân tay được lưu trữ cục bộ trong một vùng an toàn trên các chip Apple A7 và các chip sau đó, không phải trong đám mây, một sự lựa chọn thiết kế nhằm làm cho người dùng khó tiếp cận thông tin vân tay từ phía bên ngoài.

Đánh giá sơ lược về ưu nhược điểm của bảo mật bằng vân tay

Ưu điểm:

  • Mở khoá thiết bị hoặc ứng dụng chỉ với một cú chạm hoặc vuốt nhẹ.
  • Tính xác thực cao vì vân tay mỗi người là duy nhất.
  • Yên tâm bởi hệ thống sẽ cho nhận dạng nhiều ngón tay khác nhau. Công nghệ cảm biến điện dung sẽ đảm bảo việc ảnh vân tay phải được chụp từ một ngón tay “còn sống” (không bị cắt rời).

Nhược điểm:

  • Kém an toàn hơn mật khẩu thông thường: với mật khẩu thường khi phát hiện tài khoản bị hack, người dùng chỉ việc thay đổi mật khẩu, thêm ít ký tự hoặc xóa bớt chữ là vấn đề được giải quyết. Tuy nhiên, bất kỳ điều gì liên quan đến nhận dạng sinh học sẽ rất khó để thay đổi. Một khi vân tay bị lộ sẽ rất khó để thay đổi (trừ trường hợp bị biến dạng bề mặt ngón tay hoặc can thiệp bằng dao kéo). Mà vân tay rất dễ bị đánh cắp nếu kẻ xấu có âm mưu đánh cắp.

Dù sao cũng không thể phủ nhận rằng lợi ích mang lại từ TouchID vẫn lớn hơn rất nhiều 😄

Use

Hiện tại cũng đã có rất nhiều ứng dụng đã và đang sử dụng TouchID để đăng nhập nhanh vào ứng dụng

Vietcombank:

MoMo:

Appstore:

Bạn muốn thêm touchID để tăng bảo mật và tăng tính tiện dụng cho ứng dụng của bạn không? Hãy thử xem qua cách sử dụng nhé!

Thêm framework

Touch ID cần phải sử dụng LocalAuthentication.

import LocalAuthentication

Tạo Local Authentication Context – LAContext

let myContext = LAContext()

Xác định xem thiết bị có thể sử dụng TouchID không?

TouchID chỉ có trong các thiếu bị từ Iphone5S đến 8Plus + 1 số dòng Mac và với iOS SDK 8.0+ và macOS SDK 10.12.1+

var authError: NSError?
        if #available(iOS 8.0, macOS 10.12.1, *) {
            if myContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
                
            } else {
                print("evaluate policy error \(authError)")
                // Could not evaluate policy; look at authError and present an appropriate message to user
            }
        } else {
            print("OS version not match")
            // Fallback on earlier versions
        }

Yêu cầu xác nhận TouchID

var authError: NSError?
        if #available(iOS 8.0, macOS 10.12.1, *) {
            if myContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
                let myLocalizedReasonString = "Xac nhan dang nhap"
                myContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: myLocalizedReasonString) { success, evaluateError in
                    if success {
                        print("Xac nhan thanh cong")
                        // User authenticated successfully, take appropriate action
                    } else {
                        print("Xac nhan that bai \(evaluateError)")
                        // User did not authenticate successfully, look at error and take appropriate action
                    }
                }
            } else {
                print("evaluate policy error \(authError)")
                // Could not evaluate policy; look at authError and present an appropriate message to user
            }
        } else {
            print("OS version not match")
            // Fallback on earlier versions
        }

Đây là kết quả thu được sau khi chạy đoạn code trên:

Xử lý khi xác nhận thành công hoặc thất bại

Phần này thì tuỳ theo luồng xử lý của app mà bạn phải tự code rồi ahihi

Với những bước thực hiện đơn giản trên bạn đã có thể tích hợp TouchID vào ứng dụng của bạn rồi đó 😃

Tài liệu tham khảo:


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.