翻译自一位外国大牛的系列文章,共46篇,整理不易,内容详实,只提供给需要的人看。懂,请下载。

文件:n459.com/file/25127180-479629106 访问密码:551685

以下内容无关:

-------------------------------------------分割线---------------------------------------------

当我们要使用一个网站的功能时,一般都需要注册想用的账号。现在的互联网应用很多,一段时间之后你会发现你注册了一堆账号密码,根本记不住。

你可能会想到所有的网站都用同一套用户名和密码,这样虽然能解决账号管理的问题,但也加大了账号密码泄露的风险。

虽然,现在的网站有提供短信验证码登录技术,但是今天我们要聊的是一个比较“古老”的技术——OpenID,看看之前的技术是怎么解决密码太多不便于管理的问题的。

写这篇文章的目的更多的是兴趣使然,因为实践过程中不太可能会单纯的使用OpenID登录,国内也几乎没见到支持OpenId的网站,至少主流的大厂没支持。但是我个人觉得,用不到并不代表你一定不需要知道,了解技术发展的历史,不仅可以给我们借鉴,而且能提升自己的技术底蕴。(哈哈,有点装X~~)

基础概念#
在正式介绍OpenID之前,我再啰嗦几个基础概念。

Authentication: 身份鉴别,简称认证,简单讲就是怎么鉴定你就是某个人;

Authorization Server/Identity Provider:把负责 认证的服务 称为 AuthorizationServer 或者 IdentityProvider,简称IDP;

Authorisation: 资源访问,简称授权,简单讲就是给某个人赋予某些权限;

Service Provider/Resource Server:把负责提供资源(API调用)的服务称为 ResourceServer 或者 ServiceProvider,简称 SP

OpenID相关的几个概念

User:网站访问者操作的浏览器
RP:Relying Party ;服务提供者,就是用户要访问的网站。
OP:OpenID Provider ;OpenID提供者,就是提供OpenID注册的服务商。
OpenID简介#
OpenID 是由LiveJournal和SixApart开发的一套身份验证系统,是一个以用户为中心的数字身份识别框架,它具有开放、分散、自由等特性。

OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。它不基于某一应用网站的注册程序,而且不限制于单一网站的登录使用。OpenID帐号可以在任何OpenID应用网站使用,从而避免了多次注册、填写身份资料的繁琐过程。简单言之,OpenID就是一套以用户为中心的分散式身份验证系统,用户只需要注册获取OpenID之后,就可以凭借此OpenID帐号在多个网站之间自由登录使用,而不需要每上一个网站都需要注册帐号。

OpenID的工作流程#
假设你已经拥有一个在A网站(A网站就是OP角色)注册获得的OpenID帐号,B网站(B网站就是RP角色)支持OpenID帐号登录使用,而且你从未登录过。此时你在B网站的相应登录界面输入你的OpenID帐号进行登录的时候,浏览器会自动转向A网站的某个页面进行身份验证。这时你只要输入你在A网站注册时候提供的密码登录A网站,对B网站进行验证管理(永久允许、只允许一次或者不允许)后,页面又会自动转到B网站。如果你选择了允许,那就会登录进入B网站。这个时候你就可以以你的OpenID帐户身份实现B网站的所有功能。

上面描述了B网站使用A网站提供的OpenID进行登录,你也可以使用这个OpenId登录其他支持OpenID的网站。

OpenID的获取流程

首先用户选择一个OpenID 服务提供者,来注册 OpenID 帐号(跟传统的网站注册无异),注册后用户得到一个 OpenID网址(OpenID URL),如http:/collinye.openid.com ,可以简单的理解为用户名。
访问支持 OpenID 的网站,在登录时,输入你的 OpenID网址,通常此类登录页面的输入框会有如上图所示 OpenID 标志,然后点登录。
之后,会跳转你的OpenID 服务提供者的网站,并要求你输入注册时填写的密码,验证密码通过后会询问你是否允许该网站使用你的 OpenID 进行登录,经过允许后会跳转回原网站,并显示登录成功,之后你就可以以注册者的身份访问该网站。
认证流程

终端用户请求登录RP网站,用户选择了以OpenID方式来登录;
RP将OpenID的登录界面返回给终端用户;
用户输入OpenID,RP网站对用户的OpenID进行标准化,此过程比较复杂,因为OpenID可能是URI,也可能是XRI,所以标准化方式各不相同;
RP和OP进行连接;
RP请求OP对用户身份进行登录检查,OP对用户登录检查,如果用户还没有登录,请求用户进行登录认证;
用户登录OP、登录完检测RP请求哪些信息,如果没有需有用补填(OpenID主要负责认真,用户首次登陆注册可能还需要其他必要信息,可以在这个步骤补全);

OP将登录结果返回给RP,RP对OP的结果进行分析,RP分析后,如用户合法,则返回用户登录成功,可以使用RP服务。
OPENID优缺点#
优点#
对用户

简化注册登录流程:一定程度上避免了重复注册、填写身份资料的繁琐过程,不需要注册邮件确认,登录更快捷。

一处注册,处处通行:免去记忆大量账号的麻烦,一个OpenID就在任何支持OpenID的网站自由登录。

减少密码泄露风险:频繁登录各种网站,容易被垃圾网站暗地里收集密码和资料,或者冒充用户身份发送垃圾信息。

用户拥有账号信息控制权:根据对网站的信任程度,用户可以清楚的控制哪些profile信息可以被共享,例如姓名、地址、电话号码等。

对网站

共享用户资源:给所有支持 OpenID 的网站带来了价值。

已经有相当数量的高端注册用户可以直接使用,不必从零开始;

可以不负担自己建立会员系统或登录功能所需要的开发成本、机器、带宽、安全费用;

用户数据是安全的,用户数据不统一存储,用户可以任意选择、更换存储的server。没有组织,没有任何一个地方可以做root,没有任何一个机构或者个人能够从这里面获利。

缺点#
任何人都可以建立一个网站提供OpenID验证服务,而网站性能参差不齐,导致OpenID的验证过程不是很稳定。

如果提供OpenID验证服务的网站突然关闭的话,可能会导致大量用户无法使用多个网站的服务。

目前几乎所有支持OpenID的网站都很谨慎地将其做为一种可供选择的辅助登录方法,这会在很大程度上阻碍OpenID的发展。

目前支持OpenID的网站还不多,其独特的使用方法并不被多数用户所熟悉。

密码安全度降低,只要OpenID的密码被泄露,基本上所有的网站都被泄露。这与"一处注册,到处使用"形成对应,即"一处泄露,到处泄露"。

OpenID并非真正的Open,很多网站表面上支持OpenID,实际上,还是不断的骚扰OpenID用户,在他们网站上注册帐号,在背后偷偷的沉淀OpenID用户。所以,就目前来说,OpenID对于集团内各子公司用户体系的打通还是可行的,对于与外部公司是否使用OpenID还得谨慎点。

OpenID发展历程–OIDC#
原始的OpenID,也就是OpenID 1.0,它并不是真正的商业应用,但这个协议让行业领导者思考什么是可能的。

OpenID 2.0设计更为完善,提供良好的安全性保证。然而,其自身存在一些设计上的局限性,最致命的是其中依赖方必须是网页,但不能是本机应用程序;此外它还要依赖XML,这些都会导致一些应用问题。

OIDC,OpenID Connect是OpenID的第三代技术。OpenID Connect从SAML和OpenID 1.0/2.0中做了大量借鉴。OIDC不仅支持用户认证,还支持用户授权。

后面的文章中会介绍OIDC的相关内容。

ios APP 安全渗透测试(共46篇)相关推荐

  1. APP应用渗透测试思路

    今天继续给大家介绍渗透测试相关知识,本文主要内容是APP应用渗透测试思路. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授 ...

  2. 渗透测试-地基钓鱼篇-Cobalt Strike钓鱼(二十五)

    ** 渗透测试-地基钓鱼篇-Cobalt Strike钓鱼(二十五) ** 作者:大余 时间:2020-12-17 简介: 渗透测试-地基篇: 该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录 ...

  3. 【每天学习一点新知识】渗透测试信息收集篇

    目录 1.网页直接获取信息 2.端口扫描 3.子域名查询 4. C段旁注 5.网络空间搜索引擎.谷歌语法 6.whois查询 渗透测试流程: 信息收集是渗透测试的前期工作,对于渗透测试来说十分重要.只 ...

  4. iOS APP真机测试及上架App Store流程记录

    上架基本需求资料 1.苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2.开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa测试上架的完整流程,中途可能会遇到一些报错,一般 ...

  5. APP安卓渗透测试四大步骤

    在开始APP安卓端渗透测试时,根据需要制定步骤,并向委托方详细说明需要使用的工具.方法等.具体操作时,会把渗透测试分成三个部分和阶段,不同的角度使区别的方法有所不同,例如在理论上把渗透测试分为准备阶段 ...

  6. php中getdistance函数_php代码渗透测试 后门分析篇

    很多想做渗透测试的朋友都想了解关于PHP后门漏洞的安全测试重点方法,以及该如何预防被中php后门,本节由我们的安全高级渗透工程师进行全面的讲解,来让大家更好的理解和了解php代码的安全检测,让网站得到 ...

  7. 利用Windows11安卓子系统对APP进行渗透测试

    参考:orange cyber defense https://docs.microsoft.com/en-us/windows/android/wsa/ 前言: 随着 Windows 11 的发布, ...

  8. IOS APP 测试方法和测试工具大揭秘

    随着移动互联网的发展,以及智能手机的普及,各种各样的 APP 层出不穷,大家可以数一数自己手机上安装的 APP,随随便便几十个,上百个,所以现在 APP 测试的需求也越来越大.那么,现在最主流的移动端 ...

  9. 渗透测试思路 - 工具篇

    渗透测试思路 ​ Another:影子 (主要记录一下平时渗透的一些小流程和一些小经验) 工具篇 前言 ​ 工欲善其事,必先利其器 ​ 一个好的工具能够省下很多时间,所以一个工具集合,可以快速的完成渗 ...

最新文章

  1. display函数怎么使用_Chapter19:拷贝构造函数
  2. python写http文件下载器_http分片请求-python分片下载文件
  3. matlab mesh与surf比较
  4. 开发者必备的15 个Web开发工具
  5. Java并行有优势吗_Java中不同的并发实现的性能比较
  6. 期末考试前的预习,科目:化工设备与反应器(5)
  7. CentOS 6 nginx(Tengine2.1.2)源码编译一键部署脚本
  8. Linkedln技术高管Jay Kreps:Lambda架构剖析
  9. zygoteinit.java_源码跟踪之启动流程:从ZygoteInit到onCreate
  10. 一张图读懂什么是专属分布式存储
  11. Oracle基础(六) 数据类型
  12. 如何利用SQL Server的事务日志?
  13. forward计算机语言,const_forward在C中的可选实现中做了什么?
  14. 【77.39%】【codeforces 734A】Anton and Danik
  15. 【技术分享】H5小游戏开发入门指南
  16. Hyperion神器之SmartView产品(上篇)
  17. Solid angle to Arnold for Cinema4D破解教程
  18. 后台开发笔记-在服务器上运行java后台项目
  19. h3c交换机重启_终于解决H3C交换机reset saved-configuration后不能启动的问题
  20. Unity3D发布错误:could not allocate memery:system out of memery!

热门文章

  1. 罗森塔尔效应(皮格马利翁效应)
  2. 【Linux】多用户共享软件和硬盘方法
  3. javaScript移动端相册
  4. 这是一个很神奇的网站!
  5. 如何制作U盘启动盘?
  6. 为什么 Paint 3D 无法支持大尺寸图像(例如 9825 x 9908 像素)并且在背景去除过程中会出现 downsiding 问题
  7. 模电学习笔记_双极型晶体管及其放大电路(4)
  8. 良心安利动物植物3d打印模型素材网站
  9. vivo手机使用应用沙盒一键修改机器码信息
  10. VB.net (窗体应用)的速成式学习