- 博客(124)
- 资源 (8)
- 收藏
- 关注
原创 【Widevine L1】MTK平台基于Trustonic TEE方案widevine keybox异常log
E TLCWidevineMdw: TLCMdw_InitKeybox: no valid keybox to init...Bad Level 1 Root of Trust. Falling back to L3
2022-06-17 09:56:46 2370 1
原创 基于trustonic tee使能MTK Widevine L1(SVP)
本文记录MTK芯片在Android S(Android 12)大版本上基于trustonic tee方案来开启Widevine L1方案整个移植过程。MTK平台支持Widevine L1情况G系列中高端平台,G70/G80/G85/G88对应mt6769平台,G90/G95对应mt6785平台,G96对应mt6781平台软件宏设置情况"preloader":[ ["MTK_TEE_SUPPORT", "yes"], ["MICROTRUST_TEE_SUPPORT", "no"].
2021-10-27 12:26:41 5976 3
原创 Security | TEE为什么更加安全?
TEE(Trusted Execution Environment,可信执行环境)是通过软硬件隔离出来的安全世界,只有授信的软件才访问。
2021-10-14 10:55:40 1579 2
原创 Security | RSA2048私钥存在小于256byte(比如255byte)
最近搞TEE里面Crypto模块,遇到RSA2048 Private key(d因子)只有255byt而在解密的时候我直接使用长度为256bit而出现解密失败(原因是末尾补零导致公私钥不匹配)解决方法要么使用255bit,要么高位补零(比256小都需要高位补零)TEE_GetObjectBufferAttribute(key, attributeID, d, &dL);uint32_t cnt = 256 - dL;if (cnt > 0) { char tmp[5
2021-08-23 20:14:54 1724
原创 openssl ecdsa操作命令
生成一个prime256v1的私钥文件prime256v1-key.pem:openssl ecparam -name prime256v1 -genkey -noout -out prime256v1-key.pem将私钥转换成 DER 格式:openssl ec -in prime256v1-key.pem -out prime256v1-key.der -outform der将私钥转换成data格式(包含因子和pem内容):openssl ec -in prime256v
2021-07-15 15:30:37 1822
原创 RSA2048 public key der格式结构
RSA因子->der格式(按照一定格式组合)->ASN.1格式(base64)->pem或crt格式(添加头尾信息)
2021-06-23 11:38:05 1487
原创 RSA2048 private key der格式结构
RSA因子->der格式(组合)->ASN.1格式(base64)->pem格式(添加头尾信息)
2021-06-16 20:35:33 1378
翻译 【ARM】Linaro Security module
Linaro Security官网:https://www.linaro.org/security/安全不再是一种选择,它是保护知识产权、通信、银行账户、个人数字财产等一个重要因素。OP-TEE(Open Portable Trusted Execution Environment)OP-TEE是一个开源的可信执行环境(TEE),实施了Arm TrustZone technology。OP-TEE已经被移植到许多 Arm 设备和平台 上。最初,它是由圣爱立信公司开发的一种专利TEE解决方案,后来被转移
2021-03-31 15:33:29 1623
原创 微内核与宏内核
内核是操作系统的核心部分,管理着系统的各种资源(中断管理/内存管理/进程调度/文件管理等)。内核也是应用程序和硬件的一座桥梁,直接运行在硬件上最基础的软件实体。微内核用户服务和内核服务分别运行在不同地址空间宏内核用户服务和内核服务都由内核统一管理,运行在同一个地址空间微内核与宏内核对比...
2021-03-31 09:52:12 839
转载 optee的error codes
1、TEE internal(lib/libutee/include/tee_api_defines.h)* API Error Codes */#define TEE_SUCCESS 0x00000000#define TEE_ERROR_CORRUPT_OBJECT 0xF0100001#define TEE_ERROR_CORRUPT_OBJECT_2 0xF0100002#define TEE_ERROR_...
2021-03-09 17:51:12 1801
原创 【OP-TEE】安全存储
背景OP-TEE中的安全存储是根据 GlobalPlatform 的 TEE 内部核心 API(这里称为可信存储)中定义的内容来实现的。本规范规定,应该可以存储通用数据和关键材料,以保证所存储数据的机密性和完整性以及修改存储的操作的原子性(这里的原子性意味着整个操作要么成功完成,要么不写)。目前,OP-TEE中有两种安全存储实现:第一个依赖于普通世界(REE)文件系统,默认实现。它在编译时通过 CFG_REE_FS=y 启用。 第二种方法利用eMMC设备的重放保护内存块(RPMB)分区,通过设
2020-12-23 11:30:52 5530 1
原创 HMAC(Hash-based Message Authentication Code,散列消息认证码)
HMAC(Hash-based Message Authentication Code,散列消息认证码)是一种使用单向散列函数同时结合一个加密密钥,通过特别计算方式来构造消息认证码(MAC)的方法。HMAC中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出新的单向散列函数,同样也可以使用。使用SHA-256、MD5、RIPEMD-160所构造的HMAC,分别称为HMAC-SHA-256、HMAC-MD5和HMAC-RIPEMD-160。HMAC可以用来
2020-12-17 19:09:43 2134
原创 eMMC安全方案—RPMB(Replay Protected Memory Block)
信息安全的三个基本目标是机密性、完整性和可用性:机密性意味着应该保密的信息只能被授权的实体阅读和理解。其他未经访问授权不能阅读或理解机密信息。完整性是指能够确保信息不受未经授权的更改、修改或删除的能力。信息的完整性包括信息的来源、完整性和正确性(使用标识和身份验证等方法)。可用性意味着信息始终可供授权用户使用eMMC安全方案eMMC设备包含多种数据保护和安全功能,包括:写保护、密码锁定/解锁和RPMB。这些特性经过多年的发展,并随着eMMC规范的每个版本而不断改进。eMMC分区划
2020-12-17 16:43:32 9225 2
原创 介绍TEE和ARM TrustZone
TEE可信执行环境(TEE)是一种环境,其中执行的代码和访问的数据在机密性(没有人可以访问数据)和完整性(没有人可以更改代码及其行为)方面被隔离和保护。TEE的必要性软件越来越复杂,像Linux内核和Android开源项目(AOSP)这样的大型项目有数百万行代码,这意味着会有很多bugs。在修复某个漏洞时,有时还会造成新的bug,虽然我们可以防止某些类型的错误,但软件中总是会有错误。其中一些漏洞可能会暴露安全漏洞,更糟糕的是,如果bug在内核中,整个系统就会受到损害。那么如何解决这个问题呢?
2020-12-16 15:05:57 6469 4
原创 终端安全缩略语
TEETrusted Execution Environment,可信执行环境(ARM架构)SGXSoftware Guard Extension,软件保护扩展(Intel架构)SESecure Element,安全元件eSEEmbedded Secure Element,嵌入式安全单元inSEIntegrated Secure Element,集成安全单元eSIMEmbedded-SIM,嵌入式SIM卡TSMTrusted Service Manager
2020-12-15 19:25:01 429
原创 RSA非对称加密算法
RSA算法公式RSA密钥对生成原理RSA加解密原理密钥格式ASN.1 - 抽象语法标记ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。DER编码格式ASN.1有一套关联的编码规则,这些编码规则用来规定如何用二进制来表示
2020-12-14 17:29:38 565
原创 【OP-TEE 3.8.0学习】003_Trusted Applications(TAs)
Trusted Applications实现Trusted Applications(可信任应用程序,简称TA)有两种方法:Pseudo TAs(伪TAs)和user mode TAs(用户模式TAs)。用户模式TA是GlobalPlatform API TEE规范指定的功能齐全的TA,这些TA只是人们在说"TA"时所指的哪些TA,在大多数情况下,这是编写和使用TA的首选类型。Pseudo Trusted Applications伪TA不是受信任的应用程序,伪TA不是特定的实体,伪TA是一个接口
2020-10-20 16:49:58 1221
原创 【OP-TEE 3.8.0学习】001_运行环境的搭建及编译
OP-TEE开发环境搭建(Ubuntu-20.04)OP-TEE开发环境需要使用各种依赖库sudo apt-get install android-tools-adb android-tools-fastboot autoconf automake bc \bison build-essential cscope curl device-tree-compiler expect flex ftp-upload gdisk \iasl libattr1-dev libc6:i386 libcap
2020-10-12 20:24:10 7030 3
转载 解决ping github.com超时问题
第一步:前往目录/private/etc第二步:找到hosts文件,将它复制到桌面第三步:使用编辑器打开hosts文件,在最末位置添加如下代码:# GitHub地址125.120.42.110 github.com git 13.229.188.59 github.global.ssl.fastly.net 125.120.42.110这个IP地址需要修改成你的IP地...
2020-02-18 21:45:04 6246 2
原创 JavaScript ES6箭头函数
箭头函数箭头函数,也是定义函数的一种方式定义函数方式方式一:functionconst fn = function () {}方式二:对象字面量中定义函数//const obj = {// fn: function () {// // }//}const obj = { fn() { }}方式三:ES6中的箭头函数cons...
2020-02-12 16:59:29 396
原创 【css】两个div位于网页正中央
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>测试</title> <style type="text/css"> *{ font-family: 微软雅黑; margin: 0px; } ...
2019-12-10 15:59:00 378
转载 ST编程基础
ST(Strust Text,结构化文本)语言: 是一种类似于PASCAL的高级编程语言 符合国际标准IEC 61131-3 可以简单记述复杂的算数运算,比较运算 可以通过条件语句或反复语句等语法对控制进行记述 与C语言等高级语言相同,可以通过条件语句进行选择分支,通过重复语句进行重复等的控制语法 IEC 61131-3中所记载的5种编程语言各...
2019-10-23 16:33:32 11207
原创 AGV搬运机器人
什么是AGV?AGV,全称为Automated Guided Vehicle,意即自动导引运输车。我国国家标准《物流术语》,将AGV定义为具有自动导引装置,能够沿设定的路径行驰,在车体上具有编程和停车选择装置、安全保护装置以及各种物料移载功能的搬运车辆。移动机器人(AGV)是工业机器人的一种。它由计算机控制,具有移动、自动导航、多传感器控制、网络交互等功能,在实际生产中最主要的用途是搬运,可以...
2019-10-18 21:45:08 6823 3
转载 shell 判断文件夹或文件是否存在
文件夹不存在则创建if[ ! -d"/data/"];thenmkdir/dataelseecho"文件夹已经存在"fi文件存在则删除if[ ! -f"/data/filename"];then echo"文件不存在"else rm-f/data/filenamefi判断文件夹是否存在if[ -d"/data/...
2019-08-23 17:36:30 917
原创 【手机闪存】手机UFS类型闪存GPT(GUID磁盘分区表)初始化
扇区:扇区是磁盘最小的物理存储单元(物理性,即物理扇区)簇(块):由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性存储器一般需要经过如下几个步骤之后才可进行文件管理:低级格式化,此过程由硬件厂商完成,主要划分磁盘可...
2019-07-24 21:43:20 7261 1
转载 【UFS】UFS设备的物理存储空间可以有若干个独立的逻辑地址空间
转载:http://www.elecfans.com/d/694640.html熟悉NVMe的朋友知道,NVMe里面有namespace的概念,就是把SSD物理空间划分成若干个逻辑地址空间。在UFS的世界里,它也有这个特性。UFS设备的物理存储空间可以有若干个独立的逻辑地址空间,我们把逻辑地址空间叫做LU,即Logical Unit,俗称“撸”。前面看到,在每个UPIU的Header中,有个L...
2019-07-18 10:39:26 2320
原创 【Android9.0】【ftell】相机拍照保存到sdcard中的图片无法显示
【现象】相机设置存储为外部存 相机拍完照之后,相机相册无法显示图片 重启手机或者重新mount sdcard就可以显示【背景】由于Android 9.0,apk如果需要向sdcard中保存数据只有apk本身sdcard路径下才有权限操作,sdcard其他路径下无法操作。于是camera apk那边采用了DocumentFile方式绕过此处的权限管控。 采用此方法之后,相册 apk采...
2019-07-17 13:58:02 2101
原创 [Android9.0][GSI][Qualcomm_SDM845]刷完Google GSI包后无法开机
【现象】高通SDM845 Android 9.0项目,刷完Google GSI包(vbmeta.img和system.img)之后无法开机,定在第一帧logo处【分析】logcat log:每次logcat都block在如下log附近[ 4.710406] c6 1 init: starting service 'vendor.qseecomd'...[ 4....
2019-07-08 14:53:52 4290
原创 【on property:init.svc.xxx=xxx】Android监测进程的运行状态
最近在Android 9.0平台上遇到锁屏界面解不了锁,抓logcat发现keymaster有发生过crash而重启过。问题在于不是keymaster现在不能用而是keystore不能用。为了测试,进入adb mode,主动kill keymaster进程,发现此时keystore再也不能用了。对比Android 8.0发现,不管我怎么把keymaster kill,keystore仍然可用。这样...
2019-06-03 16:13:01 1660
原创 将apk和所需库文件编译打包到system/priv-app路径下
有时候通过安装apk方式来运行此apk会遇到一些avc denied(比如,没有system权限访问不了system/lib64下的库文件),需要将apk以及apk所需要的so文件拷贝到system/priv-app/路径下,到时有时候没有root权限,并不能往system/priv-app/路径下创建文件,所以我们需要做如下操作:在有root权限的机器上安装apk adb root ad...
2019-05-27 19:32:49 3253
原创 How to access files on network devices using SMBv1 on Windows 10
https://www.windowscentral.com/how-access-files-network-devices-using-smbv1-windows-10
2019-04-01 09:25:06 232
android-9-cdd(Compability Definition Document)
2019-02-11
ZStack-CC2530-2.5.1a
2015-01-05
Ubuntu麒麟系统UbuntuKylin用户手册(指南)
2014-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人