$$E=mc^2$$ Cipher & Encrypt 在密码学(cryptographic)里面,encrypt & decrpty 就是加密和解密,但也经常见到 cipher,而且“密码”的中文表述就更加混乱了,cipher、password、passphrase 都可以被翻译成”密码”,分析其英文单词来源: * cipher:=cypher(名词,暗号),后来被衍生为动词:把(消息)写成密码,也就是加密。 decipher:由 cipher 衍生的反义词,即:动词,解密。 进一步,明文被称为 plaintext,对应的密文则是 ciphertext * passwor
阅读全文 »

在密码学中,流密码(Stream cipher,也称为流加密)是一种对称加密算法,加密和解密双方使用相同的伪随机加密数据流(pseudo-random stream)作为密钥流(Keystream),明文数据(Plaintext)按 bit 位与密钥流顺次对应执行异或(XOR)操作,得到密文数据流(Cipertext)。 伪随机密钥流(keystream)由一个随机的种子(seed)通过算法(称为:PRG,pseudo-random generator)得到,k 作为种子,则 G(k) 作为实际使用的密钥进行加密解密工作。为了保证流加密的安全性,PRG必须是不可预测的。该算法解决了对称加密完
阅读全文 »

问题分析 一、如何解决明文攻击问题? ECB 模式最大的缺点是,相同的明文块会被加密成相同的密文块! 下图演示了一个图像文件通过 ECB 模式的加密结果,因此 ECB 模式被认为存在严重的安全隐患。 造成选择明文攻击的根本原因是,用单一密钥对多个明文分组进行加密,解决方案就是增加随机数作为密钥的加密因子。 * CBC 模式引入了初始向量 IV(initialization vector)。 IV 与 Plaintext 执行异或,并作为分组加密函数的第一次输入,可以实现”相同明文不同密文“ * CFB & OFB 模式同样引入了 IV,但用途有所差异。 IV 用于流密码构
阅读全文 »

从本质上说,FileVault 属于 FDE(Full Disk Encryption,全盘加密)技术,早期的 Android 设备也是采用此方案,但随着技术发展,Andriod 和 iOS 逐渐都演进为 FBE(File Based Encryption,文件加密),仅在 MacOS 中保留了 FileVault2,但同时也支持 DataProtection 数据保护技术。 一、Legacy FileVault 2003年,Mac OS X Panther (黑豹,10.3) 首次发布了 FileVault,当时的版本只加密了用户目录(而非启动宗卷),方法是采用一个巨大的稀疏磁盘镜像文件(
阅读全文 »

附录一:一次性迪菲-赫尔曼密钥交换协议 一次性迪菲-赫尔曼密钥交换协议(One-Pass Diffie-Hellman Key Agreement),定义在 NISP SP 800-56A 的 6.2.2.2 章节,名称为One-Pass Diffie-Hellman, C(1e,1s,ECC CDH) Scheme,含义是: * 密钥交换通过一次性的DH(Diffie-Hellman)协议,C 是指协因子(Cofactor) * 使用了1个临时密钥,1个静态密钥 * 加密算法是椭圆曲线加密算法 ECC(Elliptic Curve Cryptography) DH 协议最初采用 F
阅读全文 »

Apple 起家的产品是个人电脑,操作系统是基于 BSD 的定制化Linux,使用的是 MFS 文件系统。 1985年,Apple 发布了 HFS(Hierarchical File System)作为专用的文件系统,后续改进推出了 HFS+(扩展日志式)。HFS 的设计理念源自软盘和磁盘设备时代,为此饱受开发者吐槽,甚至被 Linus 痛斥为有史以来最烂的文件系统,突出的问题有以下几个方面: * 大小写不敏感(最新版本已支持大小写敏感,但默认配置仍未不敏感) * 不支持对数据内容进行 checksum 校验 * timestamp 只支持到秒级 * 不支持并发访问,不支持快照,不
阅读全文 »

EMF Key = file-system master encryption key 四、Dkey 密钥的演进分析 根据 iOS 的初期设计,Class D是所有用户数据文件的默认类型,其类密钥就是 DKey,即大多数文件的per-file key都通过 Dkey 进行封装。 此时 DKey 的存储路径就是systembag.kb文件的 Class 4 字段,当然受到了基于 UID 的 Key 0x835 的保护。 由于 DKey 直接保存在一个普通的数据文件中,任何具有 root 级别访问权限的用户都可以轻松地获得并展开暴力破解,这显然是非常危险的。 从 iOS 5 开始,苹果公司将
阅读全文 »

长期以来 Apple 公司有两条数据安全的技术演进路线,iPhone 和 iPad 等智能终端设备使用称为数据保护(Data Protection)的文件加密方法,基于Intel的Mac设备通过文件保险箱(FileVault)的宗卷加密技术。 MacOS 和 iOS 都是基于 FreeBSD 发展而来,基础架构是一个多用户的操作系统,但 iPhone 等作为个人化(无需支持多用户)的终端设备,存储了通信录、照片等非常敏感的隐私数据,对数据保护的要求更高;其次,App Store 和 iCloud等云服务大量出现,在网络开放环境下既要支持便利的后台服务管理,又要解决数据迁移过程中的数据保护,对
阅读全文 »

一、什么是 KDF KDF(Key Derivation Function)的最初用途是密钥派生,即从秘密密码或密码短语生成密钥。 1、密钥拉伸(Key Stretching) 在系统要求用户设置密码时,我们习惯用4-6位的数字组合,或者字母、数字和特殊符号的某种组合,这种密码强度肯定无法抵御暴力破解、字典攻击、彩虹表攻击等技术手段,密钥派生函数由此应运而生。 KDF 最基础的用途是将密码和其他弱密钥材料来源转换为强密钥,文绉绉地说,就是采用具有低熵(安全性或随机性)的密钥,并将其扩展为更安全的更长密钥。 1 derivedKey = keyDerivationFunction(or
阅读全文 »

花了好长时间,才明白Apple公司数据保护(Data Protection)的核心。 根据Apple安全白皮书的官方文档,数据保护实际上有两条路径,一是面向智能终端的 iOS 发展来的 Data Protection,二是面向个人电脑的 MacOS 发展来的数据保险箱,由于依赖Intel CPU,数据安全就是各种打补丁。M1 发布后两条路径开始融合,Secure Encalve 和 AFPS 成为融合的基石。 任何技术都有路径依赖,虽然 HFS+ 被认为是业界最烂的文件系统,但其许多重要的核心功能仍然需要 AFPS 继承下来,当然也为后续发展打下基础。 * 每个文件创建时会生成一个P
阅读全文 »
0%