Tag: 本地认证

安全地将密码密钥存储在iOS钥匙串中

在我的安全系列#1中,移动安全。 我已经介绍了移动安全性的基本知识。 现在,让我们弄脏双手。 让我简要介绍一下如何在iOS钥匙串系统中创建和存储加密密钥。 开始使用 加密密钥应存放在安全的地方。 密钥存储不当会导致数据泄露。 在iOS中,有两个框架可确保加密密钥的安全性。 本地认证框架 安全框架 在本文中,我将介绍两者并解释它们如何通过结合使用这两个框架来保护加密密钥。 本地认证框架 本地身份验证框架用于管理生物识别,例如TouchID和FaceID。 本地身份验证框架不允许应用访问系统内部的生物特征数据。 它就像在应用程序和硬件支持的安全区域之间进行通信的代理一样。 本地身份验证框架使应用程序需要用户存在才能访问敏感信息,例如加密密钥。 LAContext是本地身份验证框架中的类,用于桥接应用程序和保护安全区域。 LAContext()。evaluatePolicy( LAPolicy.deviceOwnerAuthenticationWithBiometrics, localizedReason:“原因”){(成功,错误)在 //处理返回 } 但是,以上方法不足以保护敏感数据。 它只是提示您评估用户的指纹或面部。 为了保护敏感数据,我们应该通过安全框架将敏感数据存储到钥匙串中。 安全框架 安全框架提供了一些方法来生成加密密钥,将系统密钥链中的密钥存储和检索为Keychain Item 。 要生成密钥对,我们可以调用以下方法: // 1.创建密钥访问控制 守护让accessControl = SecAccessControlCreateWithFlags( kCFAllocatorDefault, kSecAttrAccessibleWhenUnlockedThisDeviceOnly, [.privateKeyUsage,.biometryCurrentSet], 零) 其他{ fatalError(“无法设置访问控制”) } // 2.创建关键属性 let属性:[String:任何] = [ kSecClass作为字符串:kSecClassKey, kSecAttrKeyType作为字符串:kSecAttrKeyTypeRSA kSecAttrKeySizeInBits作为字符串:2048, kSecPrivateKeyAttrs作为字符串:[ kSecAttrIsPermanent as String:true, kSecAttrApplicationTag作为字符串:“ […]

iOS生物识别本地身份验证

+ Shubaham Jain 实施TouchID身份验证 TouchID / FaceID是基于称为本地身份验证的框架的功能,该功能提供了用于从具有指定安全策略的用户请求身份验证的功能。 在应用程序中使用时,本地身份验证可以处理TouchID / FaceID的所有内容。 它将通过自定义消息提示您进行身份验证,该消息将告诉用户我们为什么需要身份验证,因此用户可以将手指放在主页按钮上。 本地认证框架 LocalAuthentication框架用于在iOS移动应用程序中实现TouchID或FaceID身份验证。touchId身份验证的使用基于本地身份验证框架。 为了实现touchId功能,我们首先在项目中添加了LocalAuthentication框架。 在项目导航中 ->选择目标->进入构建阶段->单击链接二进制文件与库->添加框架 在项目目标中添加LocalAuthentication Framework 现在我们可以编写代码了。 在AppDelegate类中,导入LocalAuthentication.framework 使用以下语句 @import LocalAuthentication; 下一步是要求框架通过评估策略功能可以将touchID应用于特定设备,它将接受两个参数,一个是我们要评估的策略名称,第二个是错误代码。 在App中实现TouchID时,请确定以下几种情况: Case 1 : Device is enabled with Biometric Sensor or not. Case 2 : At Least one Fingerprint is enrolled in device or not to check Biometric sensor availability. LAPolicy有两种类型, […]