Android http安全之网络编程和证书

2023-10-27

最近面试上市大公司遇到的问题,网络安全底层与fiddler证书,我只想吐槽果然不缺人,上篇劫持的第二篇研究总结。如果通常网络我们使用常用的开源框架,然后设置通用的异步同步通信等格式,但是底层呢?这个我们常说只有面试的时候会用到,那如果想要黑客一下,拦截一下网络反向开发如果不知道原理,怎么突破?

1

 

网络分层模型:

    osi:开放式系统互联。国际标准化组织(iso)指定的理论模型;

    Tcp/IP 五层模型: osi和tcp/ip的综合,业界为了方便可以把下两层称为网络接口层,产生出来的非官方协议模型,实际应用还是tcp/ip的四层 结构。

   Tcp/Ip四层模型:基于osi建立的实际实现的模型。

TCP三次握手与四次挥手

截取网络显示如下:一次http请求,三次tcp握手

 

 

 

 

 

 

 

四次挥手:

举个栗子:

http:建立在tcp协议之上的“超文本传输协议”

代码实栗(https请求连接--(可以互相切换)---socket请求):

第一步:从https://xxxx.xxxx.xxx中提取需要的东西工具类

第二部:StringBuffer拼接请求的键值对

总体结构图为:

专题 证书

百度普通访问:

个人搭建服务器,https证书有风险提示

 

 

这个就像身份证似的,这个证书由国家颁发,然后浏览器和手机都有一个证书信任管理,所有证书只要信任,网站就是正常访问,如果手机上手动不信任这个

手机---安全--信任的凭据

在socket代码中添加信任证书(格式为:X.509,后缀:cer),即可访问https连接;

响应行为:http/1.1 200 ok

上面讲的是通过底层socket来实现http请求,以及https的证书请求和返回,不过http/https的访问对于数据格式已经提供好代码格式,所以我们普通开发并不一定知道所有的请求数据和返回数据格式。而在okhttp中还封装好了固定的格式来进行ssl协议

 

中间人攻击:

  mitm攻击,通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

当数据离开一个端点时,传输的期间便是对数据失去控制的时候。当一个攻击者将自己置于两个端点并试图截获,阻碍数据传输时,便称为中间人攻击。(窃听)

抓包软件就是使用了中间人攻击机制。

 

框架总结:

我们常用的http网络访问请求框架,这些框架对网络请求数据进行了格式化,并且提供了接口让我们可以方便的调用,或者针对的去使用格式,但是它们所做的处理都是基于底层的联网数据进行的封装。

okhttp更是利用的线程池对于多线程的大量访问进行了优化,所以在大量访问的网络请求异常高效,而Retrofit的框架使用往往需要okhttp,实质上Retrofit是基于okhttp的封装,而其核心是动态代理,更是以注解的方式来实现url的编写,这个也是原本忘了现在顺便写了。

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android http安全之网络编程和证书 的相关文章

  • 什么是适合 Android 的 html 解析器?

    什么是适合 Android 的 html 解析器 这取决于你想做什么 如果你真的想处理 html Java 中有很多 html 解析器可以使用 这里有一些 https stackoverflow com questions 2168610
  • 数据库“/data/data/msv_database.db”的连接池无法授予连接。连接数:0 个活动连接、1 个空闲连接、0 个可用连接

    我收到以下错误 在整个应用程序中使用单个数据库对象从两个不同线程访问数据库时 数据库连接池 data data msv database db 无法授予与线程 802 的连接 连接数 0 个活动连接 1 个空闲连接 0 个可用连接 也许您想
  • 在 Android 上生成 FileDescriptor 而不先打开文件

    在Android中 是否可以直接从字节数组生成FileDescriptor 而不必先打开文件 在 Android 2 2 中 我动态生成 MIDI 文件 然后使用 MediaPlayer 进行播放 我在下面包含了成功执行此操作的 Main
  • 由于现有相机用户,相机“0”的手电筒不可用

    我想创建一个应用程序 它有一个用于录制视频的按钮和另一个单独的切换按钮 用于在录制视频期间打开闪光灯 我已经使用camera2 API为最近的androids构建了相机应用程序 可以通过图像按钮访问 我将火炬模式设置为切换按钮 但这根本不起
  • 处理 SavedInstances 并恢复活动

    基本上我的应用程序有 2 个活动 说 A 和 B A 启动 B Activity B 播放音乐并且还有通知 情况 1 当视图仍在活动 B 上时 我按主页按钮 然后单击通知 活动 B 将打开 其视图完好无损并播放音乐 因为在清单中我使用 an
  • 如何在 Android 中的 Chrome 或 Firefox 等特定浏览器的 Web 视图中加载应用程序

    我是 Android 新手 我正在做一个应用程序 我需要在平板电脑上的 Web 视图中加载现有的应用程序 在平板电脑中 当我使用 Web 视图加载应用程序时 我的应用程序将加载到默认浏览器中 如何在平板电脑上的 Web 视图中的特定浏览器
  • Android 位置 API:获取提供商状态

    在 Android 中获取位置提供商状态的最佳方式是什么 当注册 LocationListener 以进行位置更新时 onStatusChanged String provider int status Bundle extras 每当状态
  • 通过模拟器控制台或 ADB 更改 Android 模拟器方向

    我正在尝试构建一个自动化测试框架 用于检查应用程序应该响应的基本内容 而不会崩溃 其中之一是检查应用程序是否正确响应配置更改 现在 由于它是自动化的 我必须以编程方式在横向和纵向之间切换模拟器的方向 并观察它是否崩溃 大写 因为有很多与 c
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • 为什么我的地图视图上的叠加层没有显示?

    我按照 google hellomapview 教程中的说明进行操作 我得到了一个工作地图视图等 但是添加到地图中的两个项目没有显示 它们似乎在某个地方 因为点击指定位置会显示添加到项目中的消息 Edit 这是我的源代码 应该和google
  • Android 和 Honeycomb - 如何使用 SDK 13 拥有菜单图标而不需要“操作栏”

    我想最大限度地利用 Honeycomb 应用程序的屏幕 由于屏幕底部已经被 始终打开 的项目所困 我想在该空间中添加一个菜单按钮 而不是牺牲更多的屏幕空间 在顶部放置一个 操作栏 我怎样才能做到这一点without降级到 API 10 或更
  • 如果未安装应用程序,深层链接将重定向到 Play 商店

    我在我的应用程序中使用深度链接的概念 我真正想要的是 当我共享我的应用程序中的链接时 它工作正常 它会转到我想在我的应用程序中打开的活动 但问题是当用户没有这个时应用程序此链接通过手机浏览器打开 显示错误 未找到 但如果未安装应用程序 我想
  • 返回到上一个活动的最后状态

    我有两个活动 A 和 B 当应用程序启动时 活动 A 会被加载 我会从数据库将数据加载到其中 我可以毫无问题地转到活动 B 但是当我返回活动 A 时 会查看旧数据一段时间 然后重新加载活动 知道如何解决这个问题吗 在从数据库加载数据之前清除
  • 当类明显存在时,我收到 java.lang.NoClassDefFoundError

    当我尝试在运行时使用该库时 出现以下错误 java lang NoClassDefFoundError com google api client extensions android2 AndroidHttp 我已经将此库添加到我的项目中
  • Android 应用程序不需要任何特殊访问权限

    当我开始安装时myapp apk 我得到下面的屏幕 我的应用程序需要位置 外部存储权限 上述权限应该根据需要向用户请求 即在需要这些权限的代码之前 现在 当安装应用程序时 我会看到一个屏幕 上面显示应用程序不需要任何特殊访问权限 如下图所示
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 如何在 LazyColumn 底部添加空白区域?

    我想添加 LazyColumn 的空白底部 并且我想允许用户调出底部元素 我怎样才能实现这个 Example LazyColumn modifier Modifier fillMaxWidth height 300 dp border 2
  • 无法使用 Zxing Android 扫描 Code 128

    我已将 ZXing 条码阅读器集成到我的 Android 应用程序中 它可以扫描大部分代码 但我有一张电费单 它无法扫描 使用 Galaxy Ace 5 0MP 我认为问题是由于相机分辨率和焦点造成的 因为当我使用 Xperia SL 12
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • 如何在android中将文本放在单选按钮的左侧

    我想将单选按钮的文本放在左侧而不是右侧 我找到了这个解决方案

随机推荐

  • 如何更容易找到同频的人?

    1 遵守承诺 我们能否成功总是取决于自身培养出的习惯 如果我们是一个非常自律的人 我们就能比那些虽有天赋但却懒惰散漫的人获得更多的成功 我们总是很守时 我们信守为他人作出的承诺 有时候我们的耳边里总有两个声音 其中是一个想引诱我们打破原先计
  • 【快速检测GPU性能】

    打开任务管理器界面 1 按住win X使用快捷键查看任务管理器 2 查看性能 其中GPU 0为CPU中自带的集成显卡 GPU 1为独显 点击之后可以查看相应的GPU使用情况 更改游览器使用GPU的首选项 若不进行修改 可能导致游览器使用CP
  • 设计模式的思想

    1 策略者模式 特点 高内聚低耦合 eg 定义一个接口A 两个实现A接口的类b和c 一个策略包类d b和c分别重写A中方法 d中私有一个变量 有参构造d 根据入参 b或c对象 不同 决定使用哪个对象 方法 当前对象调用 试用 d dd ne
  • 嵌入式:LVGL移植到STM32F407ZE的实现

    实现环境 硬件 基于正点原子探索者stm32f407ze 软件 LVGL 7 11 407实验28 触摸屏 407定时器文件 lvgl 7 11 gitee下载 https gitee com linyuehai stm32 f103 rc
  • java中Arrays类的22个操作函数

    import java util Arrays的操作函数 1 Arrays asList T data 将数组转化为List类 但要求数组不能是基本数据类型的 例如 int integer 前提 import java util List
  • QEMU/KVM-VirtIO简介

    QEMU KVM VirtIO简介 1 什么是virtio 2 为什么需要virtio 3 virtio架构 1 什么是virtio virtio 是一种 I O 半虚拟化解决方案 是一套通用 I O 设备虚拟化的程序 是对半虚拟化 Hyp
  • Vue项目中使用Html+Css使div在页面中居中显示(水平+垂直)

    今天突然想改一下自己写的项目中登录页面的样式 于是行动 在加入记住我按钮后 发现input输入框没有居中显示 于是把input 和其他的一些标签整合到一个div层中 但是整个div的样式要居中显示 于是乎找到一些修改的方法 以下内容 1 d
  • 使用D触发器实现8分频

    使用D触发器实现8分频 verilog 前言 最近闲来无聊玩了一阵子FPGA 其中遇到一个经典的问题 就是用verilog实现8分频器 发现自己并不是很熟练 所以就以blog的形式记录一下 同时也分享给大家 所需要的前提条件 由verilo
  • 如何设置打印机共享?(局域网)

    1 设置打印机属性 gt 打开控制面板 gt 查看设备和打印机 gt 找到你主机的打印机 gt 右键点击打印机属性 gt 点击共享 gt 共享这台打印机 gt 记住这个共享打印机的名字 gt 应用 gt 确定 2 更改高级共享设置 gt 打
  • 【linux--网络笔记】因特网,互联网,以太网,局域网的区别

    继承体系下派生类的对象模型 先讲一下计算机网络 network 就是将一台以上的计算机互连起来 互连的计算机之间可以实现通信 实现信息共享 这就是网络 那么 什么是互联网 互联网的英文是 internet 它的意思是 网络的网络 是一个通用
  • A large-scale study on the usage of Java’s concurrent programming constructs

    原文地址 https www sciencedirect com science article abs pii S0164121215000849 via 3Dihubhttps www sciencedirect com science
  • UNIX下的ls命令的输出格式(ZT)

    UNIX下的ls命令的输出格式 作者 一笑而过 2006 05 22 12 39 59 标签 这是UNIX下的ls命令的输出格式 Column 2 Number of links Column 3 Owner of the file Nor
  • (七十六):Masked Autoencoders Are Scalable Vision Learners

    七十六 Masked Autoencoders Are Scalable Vision Learners Abstract 1 Introduction 2 Related Work 3 Method 4 ImageNet Experime
  • vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx

    业务需求 代码结构
  • 摄像·镜头

    镜头的分类 来源 http www jhi com cn knowledge type detail id 5 北京嘉恒中自图像技术有限公司 1 按外形功能分类 可分为球面镜头 非球面镜头 针孔镜头 鱼眼镜头等 2 按尺寸大小分类 可分为1
  • PLC工程师必备知识— IO模块选型和使用(上篇)

    概述 我们在使用PLC IO模块的时候 高频率会遇到一些与IO有关的用法和功能 有与IO模块型号中特定符号有关的 有与IO模块特性有关的 它们都与选型和使用息息相关 下面就从几个方面为大家一一介绍 由于本次内容较多 所以分为上下两篇来介绍
  • XCode14 & iOS16 适配问题汇总

    Tips iOS 16 真机调试时需要在设备的设置 gt 隐私与安全 gt 开发者模式中打开开发者模式 适配内容 新增控件内容 UICalendarView 显示日期支持单选与多选 UIPasteControl 读取剪贴板中的内容 跨 Ap
  • 【蓝桥杯】1246. 等差数列*

    穿越隧道 计算每两项差值之间的最大公因数 最后的值则为数列的等差 include
  • 2023年最新Python所有方向的学习路线图,让Python初学者少走弯路

    在放学习路线之前 我先来讲一下这个学习路线图有什么作用 避免有些新手看得云里雾里的 学习路线图上面写的是某个方向建议学习和掌握的知识点汇总 举个例子 如果你要学习爬虫 那么你就去学Python爬虫学习路线图上面的知识点 这样学下来之后 你的
  • Android http安全之网络编程和证书

    最近面试上市大公司遇到的问题 网络安全底层与fiddler证书 我只想吐槽果然不缺人 上篇劫持的第二篇研究总结 如果通常网络我们使用常用的开源框架 然后设置通用的异步同步通信等格式 但是底层呢 这个我们常说只有面试的时候会用到 那如果想要黑