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消息转发机制以及常用场景
88 0
|
1月前
|
存储 安全 Android开发
探索Android与iOS的隐私保护机制
在数字化时代,移动设备已成为我们生活的一部分,而隐私安全是用户最为关注的问题之一。本文将深入探讨Android和iOS两大主流操作系统在隐私保护方面的策略和实现方式,分析它们各自的优势和不足,以及如何更好地保护用户的隐私。
|
23天前
|
Linux Android开发 iOS开发
深入探索Android与iOS的多任务处理机制
在移动操作系统领域,Android和iOS各有千秋,尤其在多任务处理上展现出不同的设计理念和技术实现。本文将深入剖析两大平台在后台管理、资源分配及用户体验方面的策略差异,揭示它们如何平衡性能与电池寿命,为用户带来流畅而高效的操作体验。通过对比分析,我们不仅能够更好地理解各自系统的工作机制,还能为开发者优化应用提供参考。
|
28天前
|
存储 安全 算法
深入探索iOS系统安全机制:保护用户隐私的前沿技术
本文旨在探讨苹果公司在其广受欢迎的iOS操作系统中实施的先进安全措施,这些措施如何共同作用以保护用户的隐私和数据安全。我们将深入了解iOS的安全架构,包括其硬件和软件层面的创新,以及苹果如何通过持续的软件更新来应对新兴的安全威胁。此外,我们还将讨论iOS系统中的一些关键安全功能,如Face ID、加密技术和沙箱环境,以及它们如何帮助防止未经授权的访问和数据泄露。
|
1月前
|
安全 数据安全/隐私保护 Android开发
深入探索iOS系统安全机制:从基础到高级
本文旨在全面解析iOS操作系统的安全特性,从基础的权限管理到高级的加密技术,揭示苹果如何构建一个既开放又安全的移动平台。我们将通过实例和分析,探讨iOS系统如何保护用户数据免受恶意软件、网络攻击的威胁,并对比Android系统在安全性方面的差异。
|
2月前
|
存储 安全 数据安全/隐私保护
探索安卓与iOS的隐私保护机制####
【10月更文挑战第15天】 本文深入剖析了安卓和iOS两大操作系统在隐私保护方面的策略与技术实现,旨在揭示两者如何通过不同的技术手段来保障用户数据的安全与隐私。文章将逐一探讨各自的隐私控制功能、加密措施以及用户权限管理,为读者提供一个全面而深入的理解。 ####
71 1
|
5月前
|
调度 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中。
105 2
|
6月前
|
安全 算法 数据安全/隐私保护
探索iOS与Android的隐私保护机制
【6月更文挑战第5天】在数字时代,隐私保护已成为用户最关心的问题之一。iOS和Android作为两大主流操作系统,各自发展出了独特的隐私保护技术。本文将深入探讨这两个平台在隐私保护方面的策略、技术和挑战。
162 3
|
6月前
|
Linux 数据库 iOS开发
超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳。请需要系统的放大你们的眼睛。
47 0
|
API iOS开发
iOS 沙盒机制
iOS 沙盒机制
153 0