Android正向开发实现客户端证书认证

前言

如果第三方模块被混淆,那hook方式均不能生效。这时就需要根据系统包去定位校验的函数,因此需要对安卓开发者是如何实现客户端证书校验的有一定了解,接下来就介绍这部分内容。

开发者实现客户端证书校验的本质是:证书/密钥 + 代码。
在形式上有:证书校验、公钥校验和Host(主机)校验。

一,证书校验

1.1 基于代码

1,获取PEM证书
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2,配置
在这里插入图片描述

3,发送请求
在这里插入图片描述

在这里插入图片描述

1.2 基于配置

1,获取PEM证书
步骤同上…

2,配置
在这里插入图片描述

3,发送请求
在这里插入图片描述

证书发送到客户端后,客户端对证书进行base64编码,编码后得到的字符串就相当于是公钥。

二,公钥校验

公钥校验就是将证书进行 sha256 加密,得到密钥,然后基于密钥进行校验。

2.1 基于代码

1,获取sha256公钥
在这里插入图片描述

以下命令只需要修改 www.baidu.com:443 即可得到其他域名的 sha256 密钥。执行下列命令后,会自动向 百度 服务器发请求,下载证书,并生成 sha256 密钥。

>>>openssl s_client -connect www.baidu.com:443 -servername www.baidu.com | openssl x509 -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
Zhv4cvwdHmEmE0edWEcIdmLf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【内存泄漏Bug】registerReceiver Are you missing a call to unregisterReceiver()异常分析及解决

问题描述 开发一款WIFI管理APP,再wifi列表页面注册了广播监听,监听网络变化,页面是常驻内存的,跳转到其他app或者其他页面的时候,此页面存在被系统销毁的可能。 android.app.IntentReceiverLeaked: Activity com.xx.a…

Object类,你学会了吗?

在 Java 编程中,Object 类是所有类的根类,了解 Object 类的原理和功能对于成为一名优秀的 Java 程序员至关重要。 本文将深入介绍 Object 类,帮助准备面试的程序员更好地理解这个关键的 Java 类。 什么是 Object 类? Object 类位于 java.lang 包中,是 Java 中的基本类之…

Leetcode 112:路径总和

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 思路:遍历存储每条路径。当前节点为叶子节点时,求和。并判断是否等于目标…

【Linux】:进程优先级

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux进程优先级的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到…

LSTM实例解析

大家好,这里是七七,今天带给大家的实例解析。以前也用过几次LSTM模型,但由于原理不是很清楚,因此不能清晰地表达出来,这次用LSTM的时候,去自习研究了原理以及代码,来分享给大家此次经历。 一、简…

网络设置 —— Http 响应头和请求头的设置

get请求可以使用GetAsync方法 Post请求 使用PostAsync, delete请求 使用DeleteAsync Put请求 使用PutAsync 请求的完整写法 HttpResponseMessage res await new HttpClient().SendAsync(reg); string data awai…

JAVA 中 HTTP 基本认证(Basic Authentication)

目录 服务端这么做服务端告知客户端使用 Basic Authentication 方式进行认证服务端接收并处理客户端按照 Basic Authentication 方式发送的数据 客户端这么做如果客户端是浏览器如果客户端是 RestTemplat如果客户端是 HttpClient 其它参考 服务端这么做 服务端告知客户端使用 …

AWS CloudWatch日志组中关于中文关键字的查询

问题 在AWS CloudWatch日志组中,想要查询出包含中文关键字的错误日志,结果,AWS说语法错误。 最开始,使用如下查询,查询可能的错误日志: 查询语句,如下: {($.log %ERROR%) }具体效…

CSS预处理器Sass详解

CSS预处理器Sass 1. 变量(Variables): 变量在Sass中以$开头,用于存储值,以便在多个地方重用。 $primary-color: #007BFF;body {color: $primary-color;}2. 嵌套规则(Nested Rules)&#xff1a…

C语言中字符串相关的函数解析

C语言中没有string类型,字符串通常放在常量字符串或字符数组中,下面来介绍一些常用的字符串相关的操作函数。 strlen strlen用来求一个字符串的长度,其函数原型如下: size_t strlen ( const char * str ); 使用strlen需要注意以…

ACL的几种类型

ACL(Access Control List,访问控制列表)主要有以下几种类型: 数字型ACL:这是传统的ACL标识方法,创建ACL时指定一个唯一的数字来标识该ACL。命名型ACL:通过名称代替编号来标识ACL,用…

实战Java虚拟机-高级篇

一、GraalVM 什么是GraalVM GraalVM是Oracle官方推出的一款高性能JDK,使用它享受比OpenJDK或者OracleJDK更好的性能。GraalVM的官方网址:https://www.graalvm.org/官方标语:Build faster, smaller, leaner applications。 更低的CPU、内存…

js实现鼠标拖拽多选功能

实现功能 在PC端的H5页面中&#xff0c;客户拖动鼠标可以连选多个选项 效果展示 具体代码如下 <!DOCTYPE html> <html><head><title>鼠标拖拽多选功能</title><script src"https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js&quo…

ClickHouse配置与使用

静态IP配置 # 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改文件内容 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.18.128 NETMASK255.255.255.0 GATEWAY192.168.18.2 DEFROUTEyes IPV4_FAILURE_FATALno IPV6INIT…

《深入解析:近邻算法的原理、实现与应用》

《深入解析&#xff1a;近邻算法的原理、实现与应用》 引言&#xff1a; 在机器学习和数据挖掘领域&#xff0c;近邻算法&#xff08;k-Nearest Neighbors, k-NN&#xff09;是一种基本且常用的分类与回归方法。其核心思想在于根据近邻的信息进行预测&#xff0c;即通过查询输…

Android 屏保开关

设置-显示-屏保&#xff0c; 打开关闭 设置代码在 ./packages/apps/Settings/src/com/android/settings/dream/DreamMainSwitchPreferenceController.java &#xff0c; Overridepublic boolean isChecked() {return mBackend.isEnabled();}Overridepublic boolean setChecke…

【408真题】2009-12

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

招人啦~数通售后、云计算和云服务的岗位需求

小伙伴们大家好&#xff0c;小誉的就业推荐又来咯。想要跳槽晋升找工作的朋友们&#xff0c;千万不要错过机会哦~ 北京集成商数通售后 薪资:12-18k 1、负责公司系统集成项目的网络技术实施工作&#xff0c;包括项目的网络架构的规划、设计、调整、性能优化; 2、负责从项目开展…

零基础HTML教程(35)--网站的本地部署

文章目录 1. 背景2. 网站的本地部署3. 本地部署的步骤4. 服务器软件介绍5. 本地部署实操5.1 开发一个网站5.2 下载服务器软件5.3 将网站复制到服务器软件下5.4 启动服务器软件5.5 通过Http协议访问网站 6. 小结 1. 背景 我们之前开发的网页&#xff0c;都是编写完成后&#xf…

Sass预处理器相关知识笔记

什么是Sass **Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;**是一种CSS预处理器&#xff0c;它扩展了CSS的功能&#xff0c;使其更加强大和灵活。Sass允许开发者使用变量、嵌套规则、混合&#xff08;mixins&#xff09;、继承等特性&#xff0c;从而更高效…