iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系

简介: iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系

一、简介

  • 如果你仔细注意,在使用 Cydia 安装 OpenSSH 的时候,你会发现它是先安装了 OpenSSL 在安装 OpenSSH,他们直接是有什么关联跟区别呢?

  • SSLSecure Sockets Layer 的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密,可以说它是一个协议或者说一个标准。
  • OpenSSL:既然说 SSL 是协议或者标准,那么就有对应的实现,OpenSSL 就是 SSL 的开源实现,绝大部分 HTTPS 请求等价于: HTTP + OpenSSL
  • SSHSecure Shell 的缩写,意为 安全外壳协议 , 是一种可以为远程登录提供安全保障的协议,使用 SSH ,可以把所有传输的数据进行加密,中间人 攻击方式就不可能实现,能防止 DNS 欺骗和 IP 欺骗,中途拦截篡改数据,它也是一个协议或者说一个标准。
  • OpenSSH:同上,既然协议或标准,那么就有实现,OpenSSH 就是 SSH 协议的免费开源实现。
  • OpenSSHOpenSSL 有什么关系呢?:简单来说 OpenSSH 的加密就是通过 OpenSSL 完成的,相当于 OpenSSH 是依赖 OpenSSL 的。

二、SSH 版本问题

  • SSH 目前有两个版本 SSH-1SSH-2,目前比较用的多的是 SSH-2,在我们开发中,客户端和服务端版本要保持一致才能通信。
  • 如何查看 SSH 客户端和服务端版本呢?打开命令行:
// 通过命令进入 ssh 文件
dengzemiaodeMacBook-Pro:~ dengzemiao$ cd /etc/ssh
// 查看文件列表
dengzemiaodeMacBook-Pro:ssh dengzemiao$ ls
moduli    ssh_config  sshd_config
// ssh_config 是客户端文件,如果你的电脑作为客户端就查看这个文件
// sshd_config 是服务端文件,如果你的电脑作为服务端就查看这个文件
  • 我这里呢 MAC 电脑是客户端,所以我查看一下 ssh_config 文件即可,打开文件之后里面的 Protocol 字段就是版本号
// 查看 ssh_config 文件
dengzemiaodeMacBook-Pro:ssh dengzemiao$ cat ssh_config 
....... 上下的内容我就删掉省略了
#   Protocol 2 // 这个字段就是版本号,2 就是 SSH-2
....... 上下的内容我就删掉省略了
  • 那怎么查看服务端的,以 iPhone 手机举例,现在我们越狱之后的 iPhone 手机就是服务端,我们可以连接 iPhone 手机并查看一下 sshd_config 文件里面的版本号,命令行连接手机之后,查询命令跟上面的一致。
// 连接手机
dengzemiaodeMacBook-Pro:~ dengzemiao$ ssh root@10.0.89.184
// 输入密码
root@10.0.89.184's password: 
// 进入 ssh 文件
iPhone:~ root# cd /etc/ssh
// 查看文件列表
iPhone:/etc/ssh root# ls
moduli  ssh_config  sshd_config
// 查看服务端文件
iPhone:/etc/ssh root# cat sshd_config
....... 上下的内容我就删掉省略了
# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2 // 这个字段就是版本号,2 就是 SSH-2
....... 上下的内容我就删掉省略了
相关文章
|
开发框架 数据可视化 Java
iOS开发-SwiftUI简介
iOS开发-SwiftUI简介
677 157
|
API Android开发 iOS开发
深入探索Android与iOS的多线程编程差异
在移动应用开发领域,多线程编程是提高应用性能和响应性的关键。本文将对比分析Android和iOS两大平台在多线程处理上的不同实现机制,探讨它们各自的优势与局限性,并通过实例展示如何在这两个平台上进行有效的多线程编程。通过深入了解这些差异,开发者可以更好地选择适合自己项目需求的技术和策略,从而优化应用的性能和用户体验。
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
5012 1
|
Swift iOS开发 UED
揭秘一款iOS应用中令人惊叹的自定义动画效果,带你领略编程艺术的魅力所在!
【9月更文挑战第5天】本文通过具体案例介绍如何在iOS应用中使用Swift与UIKit实现自定义按钮动画,当用户点击按钮时,按钮将从圆形变为椭圆形并从蓝色渐变到绿色,释放后恢复原状。文中详细展示了代码实现过程及动画平滑过渡的技巧,帮助读者提升应用的视觉体验与特色。
376 11
|
Swift iOS开发 UED
【绝妙创意】颠覆你的视觉体验!揭秘一款iOS应用中令人惊叹的自定义动画效果,带你领略编程艺术的魅力所在!
【8月更文挑战第13天】本文通过一个具体案例,介绍如何使用Swift与UIKit在iOS应用中创建独特的按钮动画效果。当按钮被按下时,其形状从圆形变化为椭圆形,颜色则从蓝色渐变为绿色;释放后,动画反向恢复原状。利用UIView动画方法及弹簧动画效果,实现了平滑自然的过渡。通过调整参数,开发者可以进一步优化动画体验,增强应用的互动性和视觉吸引力。
283 7
|
安全 测试技术 调度
iOS开发-多线程编程
【8月更文挑战第12天】在iOS开发中,属性的内存管理至关重要,直接影响应用性能与稳定性。主要策略包括:`strong`(强引用),保持对象不被释放;`weak`(弱引用),不保持对象,有助于避免循环引用;`assign`(赋值),适用于基本数据类型及非指针对象类型;`copy`(复制),复制对象而非引用,确保不变性。内存管理基于引用计数,利用自动引用计数(ARC)自动管理对象生命周期。此外,需注意避免循环引用,特别是在block中。最佳实践包括理解各策略、避免不必要的强引用、及时释放不再使用的对象、注意block中的内存管理,并使用工具进行内存分析。正确管理内存能显著提升应用质量。
212 2
|
移动开发 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性与编程实践
【7月更文挑战第8天】在移动开发的广阔天地中,安卓和iOS这两大操作系统各自占据着半壁江山。它们在用户界面设计、系统架构及开发工具上展现出截然不同的特色。本文将深入探讨这两个平台在技术实现和开发生态上的关键差异,并分享一些实用的开发技巧,旨在为跨平台开发者提供有价值的见解和建议。
306 2
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析:选择适合自己的编程平台
移动应用开发的两大阵营——安卓和iOS,各自拥有不同的开发环境和工具集。本文通过深入比较这两个平台的编程语言、集成开发环境(IDE)、用户界面设计、测试框架以及部署流程,旨在为开发者提供一个全面的视角来选择最符合个人或项目需求的开发环境。
|
12月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。