1.OP-TEE Document 笔记
2.蓝牙马蹄锁分析过程文章小结
3.医学生西医内科学思维导图学习笔记-循环系统疾病2.3
4.[ASPLOS2020] Hailstorm: Disaggregated Compute and Storage for Distributed LSM-based Databases 笔记
OP-TEE Document 笔记
文档速递
一、笔记笔记关于OP-TEE
OP-TEE,源码源码即开源可信执行环境(TEE),开源是笔记笔记基于硬件设计的独立运行环境,与运行非安全操作系统的源码源码Rich Execution Environment (REE)相对应。在TEE中运行的开源宝塔线两平底指标源码是安全操作系统,需借助Arm TrustZone技术,笔记笔记这使得REE中的源码源码系统和应用无法直接访问TEE资源。安全性的开源保证在于,应用只能从TEE获取结果,笔记笔记而无法直接触及存储或计算过程。源码源码例如,开源手机录入的笔记笔记指纹信息存储于TEE中,应用仅能得知验证结果,源码源码而无法获取具体数据。开源
TrustZone技术实现的进程隔离,允许在同一个CPU上运行两个操作系统,一个负责安全存储或计算,如存储指纹数据,另一个为用户日常使用的操作系统,如安卓系统。诱惑充值+源码安全OS不可见于常规OS,避免了隐私泄露。两个OS间的交互则通过调用机制实现。
二、OP-TEE组件
三、OP-TEE的执行流程
执行流程分为七个步骤,具体请参照帅峰云的博客。
2. TEE_client(libteec)负责调用TEE服务。
3. tee-supplicant提供与TEE交互的机制。
4. OP-TEE在Linux端的驱动实现。
5. Monitor模式下如何接收中断请求。
6. OPTEE OS处理请求的方式。
7. TA部分实现功能并返回结果的过程。
四、创建自己的OPTEE调用demo
optee_examples目录下包含官方示例,如用于测试的optee_examples_hello_worlds。可仿照官方示例创建自定义示例。
示例中尝试实现数据加密存储和读取恢复功能,通过安全存储模块代码进行修改。示例目录结构如下:
ta子目录负责实现TA功能,雷电备份源码包含外部调用接口的h文件、实现功能的c文件和h文件,其余为编译文件。
host子目录为CA部分,调用TA提供的功能,包含c文件和makefile。
根据需求修改模块,使其正常工作,注意跳过Android相关的文件,以免不必要的麻烦。调整Makefile、Cmakelist、CA部分的makefile、C文件和TA子目录的Android.mk、Makefile、h文件和c文件,确保UUID值唯一。
完成修改后,编译生成的文件用于树莓派SD卡,启动树莓派进行测试,iapp爬虫源码验证功能。
为了简化开发,将optee-client.h封装为python文件teec.py,便于使用Python进行CA部分的开发,实现更多灵活性。
创建调用TA服务的CA示例,如mytest_ca.py,通过封装的teec.py文件实现与TA的交互。
通过此方法,可实现更多功能的自定义开发。
蓝牙马蹄锁分析过程文章小结
观文章有感,做个知识点小结整理
工具
Sniffle是英国网络安全公司NCC Group在年底开源的一个基于使用TI CC/CCx2硬件的蓝牙5和4.x LE嗅探器(抓包工具),最新的release版本是年8月发布的1.7。使用Sniffle需要购买指定的蓝牙开发板,并刷入固件才能使用,电脑通过串口与蓝牙开发板通信。
GitHub: github.com/nccgroup/Sni...
TI CC/CCx2硬件的蓝牙5和4.x LE嗅探器(抓包工具): CCR 数据表、产品信息和支持 | 德州仪器 TI.com.cn
逆向
jadx一款java编写的开源图形化反编译工具
⭐GDA不依赖java且支持apk, dex, odex, oat, jar, class, aar文件的反编译, 支持python及java脚本自动化分析
GDA主页-亚洲首款交互式Android反编译器
刷固件
Sniffle项目中fw文件夹是固件源码,如果只是etc网站源码抓包的话,在Sniffle项目release1.7中有上传的编译好的固件,根据型号下载。
搜索相关资料得知,可以在TI网站上安装UNIFLASH软件来进行刷固件: ti.com/tool/UNIFLASH?...
抓包测试
Sniffle抓包方式是开发板抓到数据之后,通过串口发送给PC,PC收到数据包之后再根据设定条件来过滤数据,最后根据参数决定是否保存成pcap文件。因此需要用参数-s 指定某个串口,串口可以通过设备管理器查看,共有两个,选择UART的串口:
从README中可以知道python_cli中的sniff_receiver.py为抓包脚本,支持多个参数,这里简单介绍下常用的设置:-a 只抓广播包,不知道设备mac地址的情况下,可以用此参数 -m 只抓特定mac地址的数据包,可以从广播包中分析出目标设备mac地址 -o 抓包结果保存到pcap文件
下图是命令sniff_receiver.py -s COM7 -m xx:xx:xx:xx:xx:xx -o data.pcap的显示:
下图是保存的pcap文件中的BLE开始连接过程截图:
低功耗蓝牙(BLE)协议
BLE (低功耗蓝牙)协议入门--整体介绍-腾讯云开发者社区-腾讯云 (tencent.com)
蓝牙低功耗概览 | Android 开发者 | Android Developers (google.cn)
手机端HCI
如何抓取Android手机蓝牙HCI - 知乎 (zhihu.com)
⭐ Android Bluetooth HCI log 详解 - 简书 (jianshu.com)
pcap文件
pcap文件详解 - CharyGao - 博客园 (cnblogs.com)
Wireshark文件pcap的格式详细解析有实例(Global Header、Packet Header)_wireshark格式-CSDN博客
使用 Wireshark 导入/导出pcap文件——Wireshark 新手教程(3) - 哔哩哔哩 (bilibili.com)
AES加密
什么是AES加密?详解AES加密算法原理流程 - 知乎 (zhihu.com)
⭐ 密码学基础:AES加密算法 - 知乎 (zhihu.com)
蓝牙属性通知(Handle Value Notification)
⭐ 低功耗蓝牙学习笔记-属性协议-CSDN博客
蓝牙BLE从机Peripheral讲解二(句柄指示\确认(Handle Value Indication\Confirmation)) - SweetTea_lllpc - 博客园 (cnblogs.com)
ECB加密模式
ASE加密模式介绍(ECB、CBC、PCBC、CFB、OFB、CTR)-CSDN博客
AES五种加密模式_aes模式-CSDN博客
ECB模式解读-CSDN博客
密码算法 之三分组密码工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)浅析_xts模式-CSDN博客
Android logcat
Android logcat命令详解 - 许忠慧 - 博客园 (cnblogs.com)
bleak低功率蓝牙库
其实各语言都有该类型库哦 个人比较热衷于rust,个人觉得其在内存耗损上比python好点(当然,编码也会复杂一点)
bleak · PyPI
hbldh/bleak: A cross platform Bluetooth Low Energy Client for Python using asyncio (github.com)
GATT
蓝牙BLE: GATT Profile 简介(GATT 与 GAP) - 夜行过客 - 博客园 (cnblogs.com)
蓝牙:GATT,属性,特性,服务_ble服务和属性特征-CSDN博客
⭐ 六 蓝牙低功耗(BLE)协议栈 之 GATT层_characteristic declaration-CSDN博客
Characteristics在代码中是UUID形式,在数据包中是以Handle形式,Handle与Characteristics是一一对应的,对应关系是在GATT中定义。
医学生西医内科学思维导图学习笔记-循环系统疾病2.3
探索医学智慧宝库:西医内科学思维导图学习笔记—循环系统疾病 在医学学习的征途中,循环系统疾病是不容忽视的重要章节。让我们一起深入理解冠状动脉粥样硬化性心脏病(冠心病)的复杂机制: 冠状动脉粥样硬化性心脏病,简称冠心病,是冠状动脉因粥样硬化导致管腔狭窄或阻塞,引起心肌缺血缺氧的疾病。其中,心绞痛(angina pectoris)是由于供血不足引发的临床症状,虽无心肌坏死,却能体现心肌功能的微妙变化。急性心肌梗死(AMI)则更为严重,冠状动脉供血骤然减少或中断,导致心肌急性坏死,威胁生命。 心脏瓣膜病则是另一种心脏疾病,由炎症、退行性病变等引起。以二尖瓣为例,二尖瓣狭窄多由风湿性心脏病引起,常见于-岁的女性,而二尖瓣关闭不全则常伴有狭窄,男性患者比例较高。主动脉瓣病变如主动脉瓣狭窄,同样常见于风心病患者,常常伴有其他瓣膜问题,形成复杂的联合瓣膜病变。 在思维导图中,这些疾病被清晰地分类和连接,帮助医学生系统地掌握每个知识点。原始的思维导图文件不仅包含详细的描述,还有拆分的序号,便于您在不同设备上进行个性化学习和笔记整理。点击这里获取您的学习资源:/mobile-share/index.html?uuid=bad-src&share_type=2 别忘了,这些知识的背后,是我—@九里香—持续分享的心得与经验。在知乎专栏MindMaster+亿图图示应用锦囊中,我将与您分享更多高效学习和思维导图的技巧,一起提升医学知识的理解和应用能力。 让我们一起深入探索,以科学的思维导图为桥梁,架设通往健康知识的康庄大道。[ASPLOS] Hailstorm: Disaggregated Compute and Storage for Distributed LSM-based Databases 笔记
工业界很多分布式数据库采用基于LSM的KV存储,这在MPP架构中带来了性能波动和资源利用率浪费的问题,主要表现在flushing/compaction导致的IO和CPU抖动,以及shared-nothing架构下各节点间资源分配不均衡。为了解决这些问题,论文提出了一种名为Hailstorm的轻量级分布式文件系统。
Hailstorm的核心思想是通过存储资源的池化,将各分片下的数据统一组织在HailStorm中,实现消除数据倾斜和单机磁盘瓶颈的目的。其设计包括以下几个关键点:资源解耦合,存储池化,合适粒度的数据分布,以及compaction/flush任务的均衡调度。
HailStorm的文件系统架构基于POSIX接口,采用经典的CS架构,允许单个shard的数据分布在所有storage device上,通过全局唯一的uuid识别每个文件。读优化方面,通过调整block大小以减少传输延迟和读放大。容错机制包括跨机器/机架/数据中心的备份,LSM中的WAL用于崩溃恢复,以及rack内部的RAID冗余磁盘。计算层通过将compaction任务卸载到HailStorm上,减轻单机存储压力。
Hailstorm使用FUSE实现文件系统接口,通过动态调度compaction任务来平衡系统负载。在性能测试中,论文展示了Hailstorm能够显著改善LSM-based数据库在数据倾斜和资源不均衡情况下的性能表现。尽管Hailstorm实现了存储计算分离,但在多rack间池化和计算资源弹性伸缩方面仍有提升空间。论文中提到的FUSE性能影响和块大小选择是设计时需注意的细节。
总结,Hailstorm通过存储层的优化和任务调度机制,有效解决了基于LSM的分布式数据库在性能和资源分配上的挑战。虽然存在一些局限性,如多rack间池化和计算资源伸缩能力,但其设计理念和实现为提高分布式数据库性能提供了新的视角。对于需要在大规模数据处理场景中优化性能和资源利用的系统设计人员,Hailstorm提供了有价值的参考和实践指导。