身份认证与口令攻击

身份认证与口令攻击

  • 身份认证
    • 身份认证的五种方式
    • 口令认证
      • 静态口令
      • 动态口令(一次性口令)
      • 动态口令分类
    • 密码学认证
      • 一次性口令认证
      • S/KEY协议
      • 改进的S/KEY协议
    • 其于共享密钥的认证
  • 口令行为规律和口令猜测
    • 口令规律
    • 口令猜测
  • 口令破解
    • 操作系统口令破解
      • Windows密码存储机制
      • Windows密码破解方法
    • Unix/Linux系统口令文件
    • Unix的口令文件
    • Unix口令破解程序
      • Crack
      • John the Ripper
      • XIT
      • Slurpie
    • 密码哈希值破解
    • 网络应用口令破解
    • 远程口令攻击
    • 跨域拓展攻击
  • 口令防御

身份认证

  • 系统安全性常常依赖于对终端用户身份的正确识别与检查。
  • 最基本的安全问题:对计算机系统的访问必须根据访问者的身份施加一定的限制。
  • 身份认证有两方面的内容:识别和验证
    • 识别:要明确访问者身份,即必须对系统中的每个合法用户都有识别能力
    • 要保证识别的有效性,必须保证任意两个不同的用户都不能具有相同的识别符
    • 验证:在访问者声称自己的身份后(向系统输入它的识别符),系统还必须对它所声称的身份进行验证,以防假冒。

  • 个人身份验证方法的四种类型
    • 所知:验证他知道什么,如密码、口令
    • 所有:验证他拥有什么,如身份证、护照、信用卡、智能门卡
    • 所在:验证他的位置,如IP、办公室地址
    • 用户特征:验证他的生物特征(如指纹、虹膜、DNA等)、行为特征(如击键、笔迹)

身份认证的五种方式

  1. 口令认证
  2. 信物认证
  3. 地址认证
  4. 用户特征认证
  5. 密码学认证

  • 口令的“魔咒”:可记忆、抗猜测
    • “可记忆”要求口令尽量短、有规律、不复杂
    • “抗猜测”要求口令尽量长、无规律、越复杂越好
  • 没有一种认证方案可实现“文本”口令方案的所有优点。

口令认证

  • 口令认证的不可替代性:口令认证仍将是最主要的认证方式
成本低廉可用性可再生性
口令
硬件token
生物特征

静态口令

  • 用户在注册阶段生成用户名和初始口令,系统在其用户文件或数据库中保存用户的信息。
  • 当用户登录认证时,将自己的用户名和口令上传给服务器,服务器通过查询其保存的用户信息来验证用户上传的认证信息是否和保存的用户信息相匹配。如果匹配则认为用户是合法用户,否则拒绝服务,并将认证结果回传给客户端。
  • 用户定期改变口令,保证安全性。静态口令因实现简单、使用方便,得到广泛的应用。

动态口令(一次性口令)

  • 基本原理:在用户登录过程中,基于用户口令加入不确定因子,对用户口令和不确定因子进行单向散列函数变换,将结果作为认证数据提交给认证服务器。认证服务器接收到用户的认证数据后,把用户的认证数据和自己用同样的散列算法计算出的数值进行比对,从而实现对用户身份的认证。

动态口令分类

  • 动态口令按生成原理可分为非同步和同步两种认证技术
  • 非同步认证技术生成的动态口令主要是依据挑战-响应原理来实现。
    • 挑战—响应机制
      在这里插入图片描述
  • 同步认证技术包括与时间有关的时钟同步认证技术和与时间无关的事件同步认证技术。

  • 图形口令:图形密码是一种基于知识的认证机制,它利用人类对视觉信息的记忆与共享的秘密或组成的图像或草图,以提高密码的可记忆性,同时保留传统密码的安全性。

密码学认证

  • 常用的密码学认证协议有一次性口令认证、基于共享密钥的认证、基于公钥证书的认证、零知识证明和标识认证等。

一次性口令认证

  • 一次性口令(One-Time Password, OTP):一般使用双运算因子来实现
    • 固定因子:即用户的口令或口令散列值
    • 动态因子:每次不一样的因子,如时间,事件序列,挑战/应答
  • 挑战—响应机制
    在这里插入图片描述

S/KEY协议

  • 一次性口令认证协议S/KEY
    在这里插入图片描述
  • S/KEY中,服务器产生挑战(challenge)信息。挑战信息由迭代值(Iteration Count, IC)和种子(seed)组成。
  • 迭代值,指定散列计算的迭代次数,为1~100之间的数,每执行一次挑战/响应过程,IC减1(当IC为1时,则必须
    重新进行初始化)。种子由两个字母和5个数字组成。例如,挑战信息“05 xa13783”表示迭代值为05,种子为“xa13783”。客户端收到挑战后,要将秘密口令与种子“xa13783”拼接后,做5次散列运算。

  • S/KEY中支持三种散列函数,即MD4, MD5和SHA。OTP服务器将散列函数的固定输出折叠成64位(OTP的长度)。64位OTP可以被转换为一个由6个英文单词组成的短语,每个单词由1~4个字母组成,被编码成11位,6个单词共66位,其中最后2位( 11 × 6 − 64 = 2 11\times 6 - 64 = 2 11×664=2)用于存储校验和。

  • 安全性分析
  1. 用户的秘密口令没有在网络上传输,传输的只是一次性口令,并且一次性口令即使在传输过程中被窃取,也不能再次使用。
  2. 客户端和服务器存储的是用户秘密口令的散列值,即使客户端和服务器被攻陷导致口令散列值被窃取,也需破解口令散列才能获得明文口令。
  3. 用户登录一定次数后,客户和服务器必须重新初始化口令序列
  4. 为了防止重放攻击,系统认证服务器具有唯一性,不适合分布式认证
  5. 单向认证(即服务器对客户端进行认证),不能保证认证服务器的真实性
  6. S/KEY使用的种子和迭代值采用明文传输,攻击者可以利用小数攻击来获取一系列口令冒充合法用户。

改进的S/KEY协议

  • 核心思想:不在网络中传输一次性口令散列值。使用用户的口令散列对挑战进行散列,并将计算结果发送给服务器。服务器收到后,同样使用服务器保存的用户口令散列对挑战进行散列计算,并与客户端发来的应答进行比较,如果相同则认证通过,否则拒绝。
    在这里插入图片描述
  • 安全性分析
  1. 用户很容易求出正确的一次性口令,采用一次性口令的匹配通过服务器的身份认证
  2. 攻击者即使截获一次性口令,也不能破解出用户口令散列
  3. 攻击者不能预测下一次一次性口令,也不能重放成功。
  4. 能够避免监听和重放,但不能防范拦截和修改数据包、会话劫持等攻击
  5. 没有完整性保护机制,无法防范内部攻击
  6. 不能对服务器的身份进行认证

其于共享密钥的认证

  • Needham-Schroeder双向鉴别协议
    在这里插入图片描述
  • 问题:执行完上述三个步骤后,A和B已得到了由KDC分配的一次性会话密钥,可用于后续的保密通信,为什么还要增加后面两个步骤?
  • 为了进一步保护通信的完整性和认证性。第四个步骤是为确保A和B能够相互认证对方的身份。在这个步骤中,B向A发送一个随机数N2,并用会话密钥Ks对N2进行加密。通过将加密后的N2发送给A,B证明了自己拥有会话密钥Ks,并且A能够验证B的身份。**第五个步骤是为了确保通信的完整性。**在这个步骤中,A使用会话密钥Ks对N2进行加密,并将结果发送给B。B解密接收到的信息,并验证解密后的结果与之前发送的N2是否匹配,从而确认通信的完整性。

口令行为规律和口令猜测

口令规律

  • 3类脆弱口令行为:口令构造的偏好性选择、口令重用、基于个人信息构造口令
    • 口令构造的偏好性选择:国民口令,中文国民口令多为纯数字,而英文国民口令多含有字母例如:5201314、woaini1314、iloveyou;口令字符构成
    • 口令重用:在不同网站重复使用同一个密码,同时在密码中嵌入个人相关信息,如姓名和生日。用户的口令重用是不安全的,所以应当避免。只有跨不同安全级(或重要程度)的账户重用口令,才应努力避免的
    • 基于个人信息构造口令:用户在构造时喜欢使用姓名、生日、身份证号。

口令猜测

  • 根据口令破解过程中是否需要连网,口令猜测算法分为在线破解(Online Guessing)和离线破解(Offline Guessing)。
  • 根据攻击过程中是否利用用户个人信息,口令猜测算法可以分为漫步攻击(TrawlingAttacking)和定向攻击(Targeted Attacking)

  • 漫步攻击:不关心攻击对象的信息,而只关注在允许的猜测次数内,猜测出更多的口令。
  • 主流的2种漫步攻击算法:基于PCFG的算法和Markov算法。
  • 算法的核心假设是:用户构造口令从前向后依次进行。因此,算法对整个口令进行训练,通过从左到右的字符之间的联系来计算口令的概率。

  • 定向攻击:尽可能以最快速度猜测出所给定目标(如网站)的口令。因此,攻击者会利用与攻击对象相关的个人信息(人口学相关信息),增强猜测的针对性。用户在其他网站或系统中泄露的口令也可以被攻击者利用来进行定向攻击。
  • 基于Markov链的定向攻击猜测算法的基本思想是:人群中有多少比例使用某种个人信息,那么攻击对象也有同样可能使用该个人信息。将个人信息分为6大类:用户名A、邮箱前缀E、姓名N、生日B、手机号P和身份证G。
  • 定向攻击:基于概率上下文无关文法(PCFG)的定向攻击猜测算法Personal-PCFG。基本思想与PCFG攻击模型完全相同:将口令按字符类型按长度进行切分。同Targeted-Markov算法一样,将个人信息也分为6大类

口令破解

操作系统口令破解

Windows密码存储机制

  • Windows密码:安全策略
  • Windows中的**本地安全授权子系统(LSASS,Local Security Authority Subsystem Service)负责有关安全方面的功能。该子系统将用户登录过程中输入的用户名和密码信息发送给安全帐号管理器(SAM,Security Account Manage)**决定登录尝试是否合法。
  • SAM中的SAM数据库(SAM文件)记录每一个用户帐号的密码记录。SAM文件中每个用户帐号有两条密码记录:LM密码表示和NT哈希表示。
  • SAM数据库在磁盘上保存在%systemroot%system32\config\目录下的sam文件中,登陆Windows系统后SAM是
    被锁死的,如果选择打开SAM文件会显示被另一个程序使用,无法打开,即使打开也显示空白。
    在这里插入图片描述
  • SAM文件中每个用户帐号有两条密码记录:LM密码表示和NT哈希表示。Windows 7以后,默认不包含LM密码表示在这里插入图片描述

Windows密码破解方法

  1. 提取SAM文件进行破解:用DOS启动盘启动计算机,把SAM文件拷贝出来,用软件进行分析破解,得到系统口令。
  2. 用备份的SAM文件替换当前SAM文件:攻击者用DOS启动盘启动后,还可以用%SystemRoot%\repair\asm覆盖%SystemRoot%\system32\config\sam,这样系统管理员Administrator的密码就恢复成安装操作系统时的密码,而大部分人在安装操作系统时都将初始密码设置为空或者很简单。
  3. 使用口令修改软件:在不登陆系统的情况下修改系统密码,如Passware Kit Enterprise这款软件可以自动把administrator密码修改为12345。
  4. 系统口令破解软件:
    • Cain:集合多种攻击工具的软件。
    • PWDUMP4:主要用于获取本地或远端Windows系统的SAM文件,配合LC5等破解软件使用
    • John the Ripper:是Unix/Linux平台上最好的密码破解软件之一。

Unix/Linux系统口令文件

  • Unix/Linux系统使用/etc/passwd文件创建和管理账户。
    • 文件存储信息的结构
    alice:$1$sumys0Ch$ao01LX5MF6U:502:502:alice
    |账号|--------密码-----------|UID|默认UID|登录目录
    
  • 系统中任何用户和进程都可以读取/etc/passwd文件,安全性不高。
  • 现在的系统把账户信息和口令密文分开存放,/etc/passwd文件用于保存账户信息,加密后过的密码保存在/etc/shadow/etc/secure影子口令文件中,只有root用户能够读取。

Unix的口令文件

  • UNIX系统用户的口令,本来是经过加密后保存在一个文本文件passwd中的,一般存放在/etc目录下,后来由于安全的需要,把passwd文件中与用户口令相关的域提取出来,组织成文件shadow,并规定只有超级用户才能读取。这种分离工作也称为shadow变换。因此,在破解口令时,需要做UnShadow变换,将/etc/passwd与/etc/shadow合并起来。在此基础上才开始进行口令的破解。
  • /etc/shadow文件包含用户的加密后口令相关的信息。每个用户一条记录。格式如下:
username:passwd:lastchg:min:max:warn:inactive:expire:flag
字段描述
username登录名
passwd经过加密后的口令
lastchg上次更改口令距今的天数
min两次修改口令之间最少经过的天数
max口令的有效期限
warn口令失效前的警告天数
inactive禁止登录前用户仍然有效的天数
expire禁止登录的天数
flag未使用

Unix口令破解程序

Crack

  • Crack:旨在快速定位UNIX口令弱点的口令破解程序,使用标准的猜测技术确定口令。通过生成口令进行加密去匹配原口令密码,或直接从网上截获明文口令。
  • Crack 程序中包含了几个很大的字典库,进行解破时它会按照一定的规则将字词进行组合,然后对之进行加密,再与要解破的加密口令匹配。所以运行Crack通常要占用大量的CPU,并要运行相当长的时间才结束

John the Ripper

  • John The Ripper这个软件是由著名的黑客组织UCF编写的,它支持UNIX、DOS、Windows。
  • John The Ripper有四种破解模式:
    • “字典文件”破解模式(Worldlist Mode)
    • “简单”破解模式(Single Crack)
    • “增强”破解模式(Incremental Mode)
    • “外挂模块”破解模式(External Mode)

XIT

  • XIT是一个执行词典攻击的UNIX口令破解程序。XIT的功能有限,因为它只能运行词典攻击,但程序很小、运行很快。

Slurpie

  • Slurpie能执行词典攻击和定制的强行攻击,要规定所需要使用的字符数目和字符类型。

密码哈希值破解

  • http://www.cmd5.com/:一个MD5和SHA1散列值在线破解的网站,拥有全世界最大的数据库,完全收录1-6位大小写字母+数字+特殊字符、7位小写字母+数字、8位小写字母和8-11位数字,部分收录了8位小写字母+数字,网站平均破解成功率高达95%。
  • MD5Crack是一个离线的MD5密码暴力破解软件,具有破解速度快,支持批量破解,保存进度和多线程的特点。

网络应用口令破解

  • 通过登录攻击来猜测口令,即通过网络运行一个工具周期性地尝试登录目标系统。
  • 推荐工具:
    • Brutus:免费软件(www.hoobie.net/brutus),运行于Windows平台,支持的协议有基本HTTP认证、带HTML表单的HTTP认证、POP3、FTP、SMB及Telnet
    • Hydra:免费软件(http://thc.org/thc-hydra),运行于Linux/Unix平台。

远程口令攻击

  • 远程口令攻击主要是指网络服务口令攻击,是一种远程在线攻击。破解效率很低,而且容易被记录。
  • 特点:可以远程进行穷举字典的方式来猜解口令;破解效率很低,而且容易被记录。
  • 攻击过程大致如下:
    1. 建立与目标网络服务的网络连接。
    2. 选取一个用户列表文件和一个字典文件。
    3. 在用户列表文件和一个字典文件中,选取一组用户和口令,按照网络服务协议规定,将用户名和口令发给目标网络服务端口。
    4. 检测远程服务返回信息,确定口令尝试是否成功。
    5. 循环2到4步,直到口令破解成功为止

跨域拓展攻击

  • 脱库(Database Breach):指攻击者通过某种方式获取并下载整个数据库或其中的敏感数据。这通常涉及通过漏洞、恶意软件或其他非授权手段入侵数据库服务器,并提取其中的数据。

常见方式

  1. SQL注入:攻击者利用输入验证缺陷,通过SQL注入攻击获取数据库访问权限。
  2. 未授权访问:通过弱密码、默认账号或未修补的漏洞,攻击者能够直接访问数据库。
  3. 内部威胁:公司内部人员利用其权限,非法下载和复制敏感数据。

风险

  • 数据泄露:敏感信息(如用户密码、财务数据、个人信息)被暴露。
  • 财务损失:被盗数据可能被用于欺诈或勒索。
  • 声誉损害:数据泄露事件可能严重影响公司的声誉和客户信任。

  • 洗库(Data Cleaning or Scrubbing):指对已经获取的数据库进行处理和清洗,以便去除不需要的数据、重复的数据或错误的数据。对于攻击者而言,洗库是为了提取有用的、可利用的数据。

常见方式

  1. 数据清洗:使用脚本或工具排除重复数据、无效数据以及错误数据,确保数据的质量。
  2. 数据规范化:对数据进行格式统一和标准化处理,使其更容易被利用。

风险

  • 攻击者可以更有效地利用清洗后的数据进行进一步攻击,如撞库攻击或社会工程学攻击。

  • 撞库(Credential Stuffing):一种利用已泄露的用户名和密码组合,尝试登录其他网站或服务的攻击手段。攻击者假设用户在多个网站上使用相同的用户名和密码。

常见方式

  1. 自动化脚本:使用自动化脚本或工具,批量尝试登录目标网站。
  2. 已泄露凭证:利用在之前数据泄露事件中获得的用户名和密码组合进行尝试。

风险

  • 未授权访问:攻击者可能获得对其他服务的未授权访问,进一步窃取或滥用信息。
  • 账户劫持:合法用户账户被攻击者控制,可能导致资金或数据的损失。
  • 大规模攻击:通过撞库攻击,攻击者能迅速尝试大量账号组合,造成广泛影响。

在这里插入图片描述

口令防御

  1. 强壮的密码策略
  • 推荐使用密码短语设置长密码。例如“Lee, Ithink I’ll buy another copy of Counter Hack”要比密码“#dx92!$X”难破解得多!
  • 密码要符合复杂性要求:
    • 指定密码最短长度:至少为9个字符
    • 禁止使用字典词汇,应该包含非字母字符
    • 少用个信信息

  1. 用户意识
  • 不要在不同系统上使用同一口令
  • 不要选取显而易见的信息作口令
  • 尽量不要在同一台机器上分配多个用户权限,一旦某个用户具有登录权限,那么他就可能获取该计算机的SAM信息并分析出所有用户的密码。

  1. 密码过滤软件:为确保用户没有选择弱密码,使用密码过滤工具来规范用户使用强壮的密码。

  1. 保护密码文件:在支持密码shadow的系统中,确保激活密码shadow。(密码shadow用来在/etc/shadow文件中存储密码表示,仅可以让root读取)

  1. 分组分类:将重要的账户进行重点保护,那些不怎么重要的账号就可以用简单的密码设置,同类账户可以密码重用。

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

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

相关文章

2024新版二开微信发卡小程序源码卡密系统流支持量主

2024新版二开微信发卡小程序源码卡密系统流支持量主。裂变扩展多种领取模式二次开发的发卡小程序源码,其后台采用PHP编写,支持用户通过付费购卡或者观看视频广告领取卡密,该小程序还支持流量主,因为功能需要,我就进行了…

WinSW使用说明

WinSW使用说明 Windows系统下部署多个java程序 场景: 多个java的jar程序,通常来说一个程序使用一个cmd窗口,通过java -jar xxx.jar 命令来运行。这样如果程序多了打开cmd窗口也就多了。 解决: 通过使用WinSW程序,把ja…

VisualSVN Server/TortoiseSVN更改端口号

文章目录 概述VisualSVN Server端更改端口号TortoiseSVN客户端更改远程仓库地址 概述 Subversion(SVN)是常用的版本管理系统之一。部署在服务器上的SVN Server端通常会在端口号80,或者端口号443上提供服务。其中80是HTTP访问方式的默认端口。…

AndroidFlutter混合开发

为什么要有混合开发 我们知道,Flutter是可以做跨平台开发的,即一份Flutter的Dart代码,可以编译到多个平台上运行。这么做的好处就是,在不降低多少性能的情况下,尽最大可能的节省开发的时间成本,直接将开发…

带文字的短视频:成都鼎茂宏升文化传媒公司

带文字的短视频:视觉与文字的交织艺术 在信息爆炸的时代,短视频以其直观、生动的视觉呈现方式,迅速成为人们获取信息、娱乐休闲的重要渠道。然而,随着人们对内容深度和质量要求的提升,成都鼎茂宏升文化传媒公司单纯的…

项目4 移动电商运维自动化

项目引入 在一次移动电商系统发布更新上,由于我的不小心,错误地删除了生产服务器上的执行代码,导致整个移动电商系统页面都无法访问,最后花很长时间才恢复,这次事故给公司带来了不小的麻烦。 Philip组织整个运维团队进…

多屏多机同控!天途首发瑶光智控地面站

瑶光智控地面站全新发布!高性能处理器,高亮三屏显示。内置天途云控系统,融合图传、控制、存储和数据处理等功能与一体,强大算力,高度集成无人机、无人船、无人车和机械狗等多种无人装备进行云控云算。 内置4G公网通讯模…

LabVIEW调用外部DLL(动态链接库)

LabVIEW调用外部DLL(动态链接库) LabVIEW调用外部DLL(动态链接库)可以扩展其功能,使用外部库实现复杂计算、硬件控制等任务。通过调用节点(Call Library Function Node)配置DLL路径、函数名称和…

Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作[Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解]还在写0.0… 文章目录 系…

道歉性质的《情况说明》应如何写,才能赢得对方的谅解?

道歉性质的《情况说明》应如何写,才能赢得对方的谅解? ——从“成都地铁被诬陷偷拍案”两涉事女的《情况说明》中想到了什么? 据九派新闻报道,在“成都地铁被诬陷偷拍案”中,近日两名当事女子罗某某和曾某某首次公开回…

网关(GateWay)- 快速使用

引入依赖 <!-- gateway --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 路由配置 server:port: 8088 spring:application:name: api-gatew…

零基础学会asp.net做网站/公众号/小程序之三:实战初体验(简单程序教学)

关注我&#xff0c;持续分享逻辑思维&管理思维&面试题&#xff1b; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导&#xff1b; 博主在互联网大厂深耕近二十年&#xff0c;从一线码农做起&#xff0c;到人工智能公司副总裁。希望把过往经验总结出来&#xff0…

MySQL 命令总结篇-思维导图

一些常用命令以思维导图形式总结在这里了&#xff0c;掌握这些进行MySQL基本操作绝对没问题&#xff0c;加油&#xff01;友友们可以根据这些思维导图进行知识总结。 目录 一、快速上手 二、SQL 语句分类&#xff08;DDL、DML、DQL、DCL&#xff09; 三、数据类型 四、约束…

探索AI去衣技术中的反射应用

在当今数字时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展已经渗透到了我们生活的方方面面。其中&#xff0c;图像处理和计算机视觉作为AI的重要分支&#xff0c;正不断推动着创新应用的边界。今天&#xff0c;我们要探讨的是一个颇具争议但又技术上颇为有…

[Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解

目录 0.子序列 vs 子数组1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.摆动序列1.题目链接2.题目链接3.代码实现 0.子序列 vs 子数组 子序列&#xff1a; 相对顺序是跟源字符串/数组是一致的但是元素和元素之间&#xff0c;在源字符串/数组中可以是不连续的一般时间…

金融行业数字化上云及信创改造过程中的一些问题及解决方案|合集①

Q&#xff1a;对金融机构来讲&#xff0c;什么是一切业务运行的前提&#xff1f; 金融机构的业务连续性对系统的稳定性要求极高。任何系统故障都可能导致严重的业务中断和经济损失。因此&#xff0c;金融机构需要IT基础架构能够提供高稳定性的服务&#xff0c;确保业务的连续运…

Android Display Graphics #1 整体框架介绍一

软件基础 Android的framework层提供了一系列的图像渲染API&#xff0c;可绘制2D和3D。简单理解就是上层开发APP的小伙伴提供了接口&#xff0c;开发者可以直接显示对应的自己内容。但如果掌握了Display底层逻辑再写上层app&#xff0c;会有掌控力&#xff0c;出问题可以根据lo…

iOS自动连接已知Wi-Fi功能的实现

首先需要在配置文件申请的时候将hotspot勾选上&#xff0c;之后还要在x-code里添加对应的配置&#xff0c;由于我们并没有用到获取设备周边Wi-Fi的功能&#xff0c;所以就没申请相关权限 相关连接Wi-Fi代码如下&#xff1a; #import <NetworkExtension/NetworkExtension.h&…

探索k8s集群的存储卷 emptyDir hostPath nfs

目录 一 含义 查看支持的存储卷类型 emptyDir存储卷 1.1 特点 1.2 用途 1.3部署 二、hostPath存储卷 一 含义 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重…

FreeRTOS【12】队列集使用

1.开发背景 基于以上的章节&#xff0c;了解了 FreeRTOS 多线程间的信号量、队列的使用&#xff0c;已经满足了日常使用场景。这个篇章要介绍的是队列集&#xff0c;实际上队列的升级版&#xff0c;存储信号量和队列等的触发事件。 队列集在实际的开发项目中应用相对比较少&…