iOS 摸鱼周报 第四十二期

本期概要

  • 话题:2022年1月31号之后提交的应用需提供账号删除功能。
  • Tips:openssh 8.8 默认禁用 ssh-rsa 加密算法导致 git 验证失效。
  • 面试模块:如何治理 OOM。
  • 优秀博客:一些优秀开发者的年终总结。
  • 学习资料:程序员考公指南;Vim 从入门到精通(中文)。
  • 开发工具:摸鱼单词,专注于利用碎片时间学习记忆英语单词。

本期话题

2022年1月31号之后提交的应用需提供账号删除功能

内容如题,该项要求是 2021 年 10 月 6 号提出的,主要目的是加强苹果生态的隐私保护。在 App Store 审核指南的 5.1.1 条款第 v 条更新了这句话:

If your app supports account creation, you must also offer account deletion within the app.

但对于如何设置该功能,苹果并没有明确的要求。如果删除用户账号,应用端可以根据相关法律继续保留用户信息,但这需要在隐私政策中进行说明所采集用户数据的内容和保留策略。

Account deletion within apps required starting January 31

开发 Tips

整理编辑:Hello World

openssh 8.8 默认禁用 ssh-rsa 加密算法导致 git 验证失效

问题源自于最近无意间在工作机上升级了 openssh 版本(后续才发现是版本问题),导致所有基于 ssh 方式的 git 操作全部失效;

git pull 一直提示请输入密码,在我输入了无数次个人 gitlab 密码仍然失败后,第一直觉是我的 ssh 密钥对出了问题,重新生成并上传了新的公钥,还是同样的提示;

使用 ssh -vT 命令查看了详细的日志信息,最终发现了问题所在。在解析日志之前,这里先了解一下简化的 ssh 密钥登录的原理。

SSH 登录原理

我们都知道 ssh 是基于非对称加密的一种通信加密协议,常用于做登录校验,

一般支持两种方式:口令登录和公钥登录;由于篇幅问题这里只介绍公钥的简化流程,该登录流程分为两部分:

生成会话密钥

  • 客户端和服务端互相发送 ssh 协议版本以及 openssh 版本,并约定协议版本
  • 客户端和服务端互相发送支持的加密算法并约定使用的算法类型
  • 服务端生成非对称密钥,并将公钥以及公钥指纹发送到客户端
  • 客户端和服务端分别使用 DH 算法计算出会话密钥,后续所有流程都会使用会话密钥加密传输

验证阶段

  • 如果是公钥登录,则会将客户端将公钥指纹信息,使用上述的会话密钥加密发送到服务端
  • 服务端拿到后解密,并去 authorized_keys 中匹配对应的公钥,生成一个随机数,使用该客户端公钥加密后发送到客户端
  • 客户端使用自己的私钥解密,获取到随机数,使用会话密钥对随机数加密,并做 MD5 生成摘要发送给服务端
  • 服务端对原始随机数也使用会话密钥加密后计算 MD5,对比两个值是否相等决定是否登录

常说的 ssh 只是一种抽象的协议标准的,实际开发中我们使用的是开源 openssh 库,该库是对 ssh 这一抽象协议标准的实现

以上是 ssh 协议登录校验的流程概要,我们了解到在验证阶段会用到客户端的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值