APP安全机制(十一)—— 密码工具:提高用户安全性和体验(一)

2018-11-30  本文已影响78人  刀客传奇

版本记录

版本号 时间
V1.0 2018.11.30 星期五

前言

在这个信息爆炸的年代,特别是一些敏感的行业,比如金融业和银行卡相关等等,这都对app的安全机制有更高的需求,很多大公司都有安全 部门,用于检测自己产品的安全性,但是及时是这样,安全问题仍然被不断曝出,接下来几篇我们主要说一下app的安全机制。感兴趣的看我上面几篇。
1. APP安全机制(一)—— 几种和安全性有关的情况
2. APP安全机制(二)—— 使用Reveal查看任意APP的UI
3. APP安全机制(三)—— Base64加密
4. APP安全机制(四)—— MD5加密
5. APP安全机制(五)—— 对称加密
6. APP安全机制(六)—— 非对称加密
7. APP安全机制(七)—— SHA加密
8. APP安全机制(八)—— 偏好设置的加密存储
9. APP安全机制(九)—— 基本iOS安全之钥匙链和哈希(一)
10. APP安全机制(十)—— 基本iOS安全之钥匙链和哈希(二)

开始

首先看下写作环境

Swift 4.2, iOS 12, Xcode 10

本篇主要是了解iOS密码和安全工具如何帮助您生成和安全保存密码,以及在移动应用和网站之间同步密码。

以下任何一种情况听起来都很熟悉吗?

作为用户,这些类型的场景使任何人很不方便和恼火。

作为开发人员,这使得iOS密码处理成为一种需要权衡的行为:一方面,使登录过程尽可能简单至关重要;您添加的每个密码要求都会增加用户卸载应用的动机。 与此同时,开发人员有责任帮助用户保持安全;黑客和滥用者对活动家,名人和John Q.公众进行永无止境的攻击。


iOS Password Tools to the Rescue! - iOS密码工具

不要害怕! iOS密码自动填充,自动强密码和安全代码自动填充功能全部为您服务!

在本教程中,您将使用这些iOS 12安全工具,使您的用户能够:

注意:本教程要求您拥有付费的iOS Developer Program资格。

虽然本教程只需要很少的编码,但它假设您对Xcode和终端有一定的了解。

打开示例程序,在Xcode中打开UltraMotivator-starter / UltraMotivator.xcodeproj。 然后,在您的模拟器上构建并运行入门应用程序。

Starter project login screen, sign-up screen, and sign-up error.

从登录屏幕开始,点击右下角的Sign Up按钮,导航到注册页面。 输入用户名和密码,然后点击Sign Up。 应弹出错误对话框。 在应用程序的当前状态下,您还无法登录,因为应用程序的后端尚不存在。

注意:即使您尚未设置text field内容类型,iOS仍可能将您的字段识别为与登录相关。 它通过分析占位符,UI元素和屏幕文本来实现。 这意味着,虽然iOS可能会自动提供iOS密码自动填充,强密码生成或代码自动填充,但这种行为无法保证,因此最好明确地将这些功能放在适当的位置。

遗憾的是,未经身份验证的用户无法获得按需鼓励,这就是下面我们需要完善的事。


A Peek at the Web App

切换回Finder并导航到UltraMotivator-starter ▸ Motivational-Server。此目录包含您将部署到Web以使iOS应用程序启动并运行的服务器应用程序。

与iOS应用程序一样,服务器应用程序是使用Vapor编写的,VaporSwift的现代Web框架。

花点时间了解Web应用程序的结构,最值得注意的是,这包括:

在本教程中,您将把服务器应用程序部署到Heroku,因为它提供了一个快速,简单且免费的解决方案。如果您还没有Heroku帐户,请注册以在https://signup.heroku.com/上创建一个帐户。记下您的密码,因为您以后需要它。


Creating a Heroku App - 创建一个Heroku App

访问https://dashboard.heroku.com并登陆。

在右上角,单击标记为New的按钮,然后选择Create new app

在下一个屏幕上,输入唯一的应用程序名称或将App name Field留空。 然后,选择部署区域(deployment region)

如果您将App name留空,Heroku将自动生成一个独特的slug来为您识别应用程序。 无论您是创建名称还是Heroku为您指定一个名称,请记下您的应用名称,因为您稍后在配置应用时需要它。 单击Create app

创建应用程序后,Heroku会将您重定向到您应用的页面。

选择页面顶部附近的Resources选项卡。 在名为Add-ons的部分下,输入postgre,你会看到Heroku Postgres的一个选项;选择此选项。

这会将您带到另一个屏幕,询问要配置的数据库类型。

选择Hobby Dev - Free名称。 单击Provision按钮,Heroku将完成剩下的工作。

完成后,数据库将显示在Resources选项卡下,表示您的Web应用程序已成功创建。


Getting Your App’s Identifiers - 获取应用程序的Identifiers

现在您已经设置了Heroku来托管您的Web应用程序,现在是时候在Web和移动设备之间共享Ultra Motivator的证书或者凭据了。 为此,您需要在iOS应用程序和Web服务器之间建立双向关联。

首先,您将使您的iOS应用程序可识别并授予其必要的权限。 登录Apple的Developer Portal。 在Member Center中,选择Certificates,Identifiers & Profiles

转到Identifiers ▸ App IDs,然后选择Add按钮。 输入App ID Description,然后向下滚动到App ID Suffix ▸ Explicit App ID部分并创建一个Bundle ID;这将是您的App ID。 向下滚动到App Services部分,然后启用Associated DomainsAutoFill Credential Provider服务。

向下滚动并单击Continue保存。 在摘要页面上,您将看到下一个,确认已启用Associated DomainsAutoFill Credential Provider。 然后,滚动到底部并单击Register。 然后,您应该看到Registration Complete页面,确认您已成功完成此步骤。

记下ID图标右侧应用程序标题信息显示中的Prefix。 这是您的Team ID


Adding App Identifiers to the Web App (Locally) - 将应用程序标识符添加到Web应用程序(本地)

现在,打开终端并cdUltraMotivator-starter / Motivational-Server。 例如,如果您已将UltraMotivator文件解压缩到桌面上,则可以输入:

cd ~/Desktop/UltraMotivator-starter/Motivational-Server

这将Motivational-Server(包含服务器应用程序的目录)设置为工作目录。

Motivational-Server中,通过输入终端命令创建一个Public目录,然后在其中创建一个嵌套的.well-known目录:

mkdir -p Public/.well-known/

然后,在使用您的Team ID和您的App ID替换时,输入以下内容:

echo '{"webcredentials": {"apps": ["<#Team Identifier#>.<#App Bundle ID#>"]}}' \
  > Public/.well-known/apple-app-site-association

注意:apps数组可以包含多个“.”字符串。 这允许您在多个iOS应用程序和单个域之间设置双向关联。

使用确切的文件名apple-app-site-association非常重要,因为iOS将查找具有此精确名称的文件。

切换到Finder并导航到UltraMotivator-starter / Motivational-Server / Public / .well-known / apple-app-site-association。 如果您无法看到.well-known,请使用快捷键Command + Shift +. 切换隐藏文件可见性。 在文本编辑器中打开关联文件以确认它包含指定的JSON。


Setting Up Heroku CLI

现在您的移动应用程序的ID已就位,您可以将这些ID上传到您的网络应用程序。 为此,您需要Heroku的命令行界面工具 - Heroku CLI的帮助。

你需要Homebrew才能安装Heroku CLI。 如果您的计算机上尚未安装Homebrew,请在终端中输入以下内容进行安装:

/usr/bin/ruby -e \
  "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

现在,您可以使用终端命令通过Homebrew安装Heroku CLI

brew install heroku/brew/heroku

安装Heroku CLI后,在终端中输入以下内容登录您的帐户:

heroku login

然后,在出现提示时输入您的Heroku凭据。

登录后,输入以下内容确认登录成功:

heroku auth:whoami

这确认了whoami输出正确的电子邮件地址。


Deploying the Server App

Heroku将通过Git部署您的Vapor应用程序,因此您需要将您的服务器应用程序放入Git存储库。

在终端中,确认Motivational-Server仍然是您的工作目录。 为此,请输入命令pwd作为完整目录地址。 然后,在替换之前在本教程的“Creating a Heroku App”部分中设置的Heroku应用程序名称时输入这些命令:

git init
git add .
git commit -m "Vapor server"
heroku git:remote -a <Heroku app name>

使用这些命令,您已将远程服务器应用程序添加为本地Git存储库。

Heroku使用Buildpack在部署应用程序时提供构建应用程序的方法。 在终端中输入以下内容:

heroku buildpacks:set https://github.com/vapor-community/heroku-buildpack

这会为您的应用设置Buildpack

最后,要将您的应用部署到Heroku,请输入:

git push heroku master

这会将您的主分支远程推送到您的Heroku。 你将不得不等待几分钟一直到一切建立起来。

注意:如果Heroku的当前部署堆栈版本与buildpack不兼容,则推送将失败。 错误消息将告诉您到底发生了什么以及如何解决它。 例如,您可能会看到一条消息,告诉您输入命令:

heroku stack:set heroku-16 -a <your-application-name>

按照错误消息中的说明操作,然后重复push命令。

Heroku通常会在完成构建后自动启动您的应用程序。 但是,为安全起见,要手动开始运行您的应用,请输入:

heroku ps:scale web=1

然后,要打开您的Web应用程序,请输入heroku open。 您还可以在Settings ▸ Domains and certificates下方的Heroku dashboard中找到您的Web应用程序URL。

恭喜! 您现在是一个能够通过apple-app-site-association文件识别您的iOS应用程序的网站的拥有者。 您可以通过https://[your domain]/.well-known/apple-app-site-association查看您的apple-app-site-association文件。 你已经征服了双向绑定的前半部分,先休息下~~

后记

本篇主要讲述了密码工具:提高用户安全性和体验,感兴趣的给个赞或者关注~~~

上一篇下一篇

猜你喜欢

热点阅读