iOS逆向-day9:签名机制(中)

简介: iOS逆向-day9:签名机制(中)

二、单向散列函数(One-way hash function)



  • 2.1、单向散列函数的简单介绍
    单向散列函数,可以根据根据消息内容计算出散列值。散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值。


image.png


2.2、单向散列函数的特点

  • 根据任意长度的消息,计算出固定长度的散列值
  • 计算速度快,能快速计算出散列值
  • 消息不同,散列值也不同


image.png


具备单向性


image.png


  • 2.3、单向散列函数的分类单向散列函数,又被称为消息摘要函数(message digest function),哈希函数输出的散列值,也被称为消息摘要(message digest)、指纹(fingerprint)
  • 常见的几种单向散列函数
  • MD4、MD5
    产生128bit的散列值,MD就是Message Digest的缩写,目前已经不安全
    Mac终端上默认可以使用md5命令
  • SHA-1
    产生160bit的散列值,目前已经不安全
  • SHA-2
    SHA-256、SHA-384、SHA-512,散列值长度分别是256bit、384bit、512bit
  • SHA-3 全新标准


  • 2.4、如何防止数据被篡改
    对文件进行 单向散列值获取,然后进行对比单向散列值是否一样


image.png


2.5、单向散列函数的应用 – 防止数据被篡改


  • 防止文件被修改


image.png

image.png

查看下载的文件是否是正版,如 https://www.realvnc.com/en/connect/download/vnc/


image.png


image.png


口令加密:服务器只存储用户密码的 单向散列函数的值,保证安全

image.png

2.6、想象以下场景,我们如何验证信息来源的正确性


image.png

  • Alice发的内容有可能是被篡改的,或者有人伪装成Alice发消息,或者就是Alice发的,但她可以否认
    问题来了:Bob如何确定这段消息的真实性?如何识别篡改、伪装、否认?
    解决方案:数字签名


三、数字签名



  • 3.1、数字签名
  • 在数字签名技术中,有以下2种行为
  • 生成签名:由消息的发送者完成,通过签名密钥生成
  • 验证签名:由消息的接收者完成,通过验证密钥验证


image.png


  • 如何能保证这个签名是消息发送者自己签的?
    答案:用消息发送者的私钥进行签名,接收者用工要进行验证签名
  • 3.2、数字签名和公钥密码
    数字签名,其实就是将 公钥密码 反过来使用


image.png

3.3、数字签名的过程

这样会有一个问题:对内容签名会增加其传输内容的大小,后面会做出改进的方案


image.png

3.4、数字签名的过程 – 改进

对发送的内容的单向散列函数值进行一个 数字签名,接收者只需要对内容做一个散列值的对比即可


image.png



  • 3.4、数字签名 – 疑惑
  • 如果有人篡改了文件内容或者签名内容,会是什么结果?
    答:签名验证失败,证明内容会篡改
  • 数字签名不能保证机密性?
    答:数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改
  • 数字签名的作用
    答:确认消息的完整性、识别消息是否被篡改、防止消息发送人否认


  • 3.5、数字签名无法解决的问题
  • 要正确使用签名,前提是
    用于验证签名的公钥必须属于真正的发送者
  • 如果遭遇了中间人攻击,那么
    公钥将是伪造的、数字签名将失效
  • 所以在验证签名之前,首先得先验证公钥的合法性
  • 如何验证公钥的合法性?
    答:证书


image.png


  • 3.6、证书(Certificate)
  • 证书,联想的是驾驶证、毕业证、英语四六级证等等,都是由权威机构认证的
  • 密码学中的证书,全称叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似
  • 里面有姓名、邮箱等个人信息,以及此人的公钥
  • 并由认证机构(Certificate Authority,CA)施加数字签名
  • CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织
  • 有国际性组织、政府设立的组织
  • 有通过提供认证服务来盈利的企业
  • 个人也可以成立认证机构
  • 3.7、证书的利用:保证了公钥的正确性,防止中间人攻击,这样数字签名才有意义


image.png

3.8、证书的注册和下载

image.png




目录
相关文章
|
存储
13-iOS消息转发机制以及常用场景
13-iOS消息转发机制以及常用场景
73 0
|
10天前
|
存储 安全 数据安全/隐私保护
探索安卓与iOS的隐私保护机制####
【10月更文挑战第15天】 本文深入剖析了安卓和iOS两大操作系统在隐私保护方面的策略与技术实现,旨在揭示两者如何通过不同的技术手段来保障用户数据的安全与隐私。文章将逐一探讨各自的隐私控制功能、加密措施以及用户权限管理,为读者提供一个全面而深入的理解。 ####
25 1
|
4月前
|
调度 Swift Android开发
苹果iOS新手开发之Swift中的并发任务和消息机制
Swift的消息机制类似Android的Handler,实现任务调度有三种方式: 1. **Grand Central Dispatch (GCD)**:使用`DispatchQueue`在主线程或后台线程执行任务。 2. **OperationQueue**:提供高级接口管理`Operation`对象。 3. **RunLoop**:处理事件如输入源、计时器,类似Android的`Looper`和`Handler`。 **示例**: - GCD:在不同线程执行代码块。 - OperationQueue:创建操作并执行。 - RunLoop:用Timer添加到RunLoop中。
89 2
|
5月前
|
安全 算法 数据安全/隐私保护
探索iOS与Android的隐私保护机制
【6月更文挑战第5天】在数字时代,隐私保护已成为用户最关心的问题之一。iOS和Android作为两大主流操作系统,各自发展出了独特的隐私保护技术。本文将深入探讨这两个平台在隐私保护方面的策略、技术和挑战。
126 3
|
5月前
|
Linux 数据库 iOS开发
超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳。请需要系统的放大你们的眼睛。
40 0
|
API iOS开发
iOS 沙盒机制
iOS 沙盒机制
148 0
|
安全 iOS开发 开发者
ios签名工具永久有效吗?
苹果APP上架难,不用越狱,下载未上架APP!
|
安全 Linux 网络安全
【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总(iOS上架)
【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总(iOS上架)
2482 0
【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总(iOS上架)
|
iOS开发 Python
iOS小技能:lldb打印block参数签名
iOS逆向时经常会遇到参数为block类型,本文介绍一个lldb script,可快速打印出Objective-C方法中block参数的类型。
198 0
iOS小技能:lldb打印block参数签名
|
数据安全/隐私保护 iOS开发
iOS逆向小技能:解锁无密码的设备、判断设备是否锁定、锁定设备、打开某个程序
介绍lua 函数: runApp、closeApp、getScreenSize、getDeviceID、lua_exit、isFrontApp。
246 0