iOS逆向需要了解的OpenSSH
一、OpenSSH
概述
1.1 SSH
SSH 是一种网络协议,用于计算机之间的加密登录。
1995
年,芬兰学者 Tatu Ylonen
设计了 SSH
协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为 Linux
系统的标准配置。
1.2 OpenSSH
OpenSSH
是 SSH (Secure SHell)
协议的免费开源实现。它是一款软件,应用非常广泛。SSH
协议可以用来进行远程控制, 或在计算机之间传送文件。
1.2.1 OpenSSH
插件安装
通过 OpenSSH
插件可以连接手机,进行远程控制, 或者传送文件。以越狱设备上的 cydia
为例,需要在软件源中添加源:
//蜜蜂源 apt.cydiami.com //雷锋源 apt.abcydia.com复制代码
这两个源比较有名, 推荐添加。软件源可以理解为服务器, 存放了插件安装包。
然后在搜索中搜索OpenSSH,认准来自 apt.bingner.com。当然直接添加这个源也可以。
1.3 SSH 登陆过程
客户端(Mac)越狱设备(iPhone)1. 请求链接到iPhone (22端口) (root@设备IP)2.手机将公钥发送给Mac3. Mac电脑通过收到的公钥加密登陆密码 (默认是: alpine)4.手机用私钥解密登陆密码, 是否允许登录客户端(Mac)越狱设备(iPhone)
具体步骤:
请求链接到iPhone (22端口)
手机将公钥发送给Mac
在首次登录的时候会出现提示
RSA key
的hash
值(hash
值是提示验证公钥的), 也就是在这里接受的RSA
的 key(公钥), 然后保存在~/.ssh
目录下的knuwn_host
文件中.(下图是我测试过程中产生的)
Mac电脑通过收到的公钥加密登陆密码
手机用私钥解密登陆密码, 是否允许登录
1.4 中间人攻击(Man-in-the-middle attack
)
客户端(Mac)中间人越狱设备(iPhone)1. 请求链接到iPhone (22端口) (root@设备IP)2.手机将公钥发送给Mac手机上的公钥(被拦截)3.发送自己的的公钥发送给Mac中间人的公钥4. Mac电脑通过收到的公钥加密登陆密码 (默认是: alpine)5. 中间人通过自己的私钥解密, 然后通过拦截的公钥加密发送给iPhone6.iPhone用私钥解密登陆密码,允许登录客户端(Mac)中间人越狱设备(iPhone)
中间人拦截获取或者模拟电脑给手机发送登录请求获取
手机端公钥(I)
然后自己生成
公私钥(M)
将自己生成的公钥(M)
发送给电脑电脑端密码使用
公钥(M)
加密后发送给中间人,中间人使用私钥(M)
解密拿到密码。中间人将密码通过
公钥(I)
加密从而实现登录。
1.5 了解原理, 但是怎么防止中间人的呢?
其实这个 SSH
早就解决了,
这个时候就用到了登录的时候返回的 hash
值了, 他就是用来检验公钥的.
一般服务器都会在自己的官网上公布自己公钥的 hash
值。这样就有效避免中间人攻击了。
作者:Keya
链接:https://juejin.cn/post/7023660104931082248