美文网首页iOS Developer程序员
iOS安全概要-3-验证与授权(Authentication a

iOS安全概要-3-验证与授权(Authentication a

作者: Doris_Lee | 来源:发表于2016-06-20 14:40 被阅读292次

    3 验证与授权(Authentication and Authorization)

    代码安全保护正常的、日常操作的应用程序、工具、或守护进程。但当你的代码被围攻时发生了什么?通常必须知道不仅是用户在做什么,还包括用户是谁,是否是用户允许这么做。这是身份验证和授权发挥作用的地方。

    3.1 验证(Authentication)

    “If you know yourself but not your enemy, for every victory gained you will also suffer a defeat.”(知己知彼,百战不殆_
    —Sun Tzu, The Art of War

    保护软件,你必须做的第一件事就是找到一种方法来区分朋友和敌人。这个过程称为身份验证(authentication)。
    在计算机安全学中,身份验证核实用户或服务器的身份。身份验证通常有两个目的:

    • 授权的前兆,识别请求实体来决定是否应该允许执行一个操作
    • 生产一个审计跟踪的日志谁执行一个操作,这样责怪可以当一些优惠

    最常见的三种身份验证方式:

    • 本地用户身份验证。验证用户的身份通常是由操作系统授权的第一步。如果您的代码作为一个普通用户运行,操作系统根据用户的权限限制代码能做什么。代码也可以要求操作系统用户的身份,以便审计。
    • 网络主机身份验证。验证远程服务器的真实性往往是必要的,以确定是否安全的信用卡信息发送到一个特定的网站。(数字证书,在下一章所描述的,是验证的一种常见的方式。)
    • 远程用户身份验证。用户通常由远程服务器身份验证时,执行特定的任务。远程验证一个用户,代码以某种形式发送凭证,如密码、cookie或数字证书。

    3.2 授权(Authorization)

    授权是哪个用户或服务器会得到执行限制操作的权限的过程。这个词也经常用来指权利本身,如“士兵有进入指挥战壕的权利。”
    身份验证和授权的区别有点微妙。通常,用户本身拥有一个账户意味着用户被授权做某事,在这种情况下,身份验证和授权是一样的。然而,在更复杂的系统中,变得更加明显的区别。
    考虑一台电脑的两个用户。系统知道每个用户。因此,用户可以登录到计算机,并进行身份验证。然而,两个用户都没有被授权修改其他用户的文件,因此,没有用户可以这样做。
    授权的细节取决于您使用的是iOS或OS X。
    在iOS中,用户可以设置一个密码(默认情况下是一个四位数的个人识别号码),以防止未经授权的使用设备。进入这个密码后,用户假定是授权使用设备。此外,每个应用程序都是经过数字签名,因此可以由操作系统身份验证。因此,在iOS中没有用户身份验证或授权的API。
    在OS X中,有几层授权:

    • 如果启用了FileVault 2(全盘加密),计算机需要一个密码解密启动卷。
    • 如果禁用自动登录,OS X启动后显示登录屏幕。
    • 当用户注销后OS X也显示登录屏幕。
    • 如果适当的复选框在安全系统首选项面板检查,OS X显示登录屏幕当从睡眠或清醒时留下一个屏幕保护程序。
    • 当一个应用程序或工具请求访问上锁的钥匙串,需要一个密码。
    • 如果一个应用程序或工具需要提升权限,管理员密码是必需的。
    • 一些应用程序可能会通过Authorization Services API限制功能。

    此外,OS X和iOS,一些应用程序可能需要您登录到一个远程服务器,进而执行身份验证和授权。

    相关文章

      网友评论

        本文标题:iOS安全概要-3-验证与授权(Authentication a

        本文链接:https://www.haomeiwen.com/subject/firpdttx.html