<网络安全>《45 网络攻防专业课<第十一课 - NTFS/EFS/BitLocker数据加密与解密>》

1 NTFS文件系统 磁盘加密

1.1 NTFS安全简介

NTFS是Windows 2000及之后的操作系统的标准文件系统。NTFS不仅在性能上比起FAT 32强,NTFS支持的最大文件大小、最大分区大小也比FAT32大,NTFS还支持配额、安全功能。
在NTFS分区中,对于某个文件或者文件夹,可以为不同用户分配不同的权限。
在这里插入图片描述

1.2 NTFS权限破解

当用户试图访问文件/文件夹的时候,NTFS文件系统会检查用户或者用户所属的组是否在此文件/文件夹的访问控制列表(ACL)中,如果存在则进一步检查访问控制项,然后根据控制项中的权限来判断用户最终的权限。如果访问控制列表中不存在用户或者用户所属的组,就拒绝用户访问。

NTFS文件/文件夹都有一个所有者,通常创建文件/文件夹的用户就是所有者,一般情况下所有者对文件/文件夹有“完全控制”权限。所有者是一个很特殊的用户/组,即使所有者对文件/文件夹没有任何权限,所有者却可以在文件/文件夹上分配权限给其他用户。也就是说所有者可以把包括自己在内的用户添加到文件/文件夹的访问控制列表(ACL)中,取得“完全控制”的权限。遗憾的是:Windows系统中,不论文件/文件夹的所有者是谁,管理员(Administrator)可以更改文件/文件夹的所有者

1.3 NTFS权限破解防范

NTFS权限破解防范就是采用:
EFS
BitLocker
其他措施加密文件/文件夹。

2 使用EFS加密数据

2.1 EFS简介

NTFS分区还提供了EFS(加密文件系统)功能。EFS加密是基于公钥策略的。在使用EFS加密一个文件时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件加密钥匙),然后将利用FEK加密文件。随后Windows系统利用用户的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。
EFS对用户是透明的。这也就是说,如果用户设置了文件的加密属性,用户保存文件时Windows系统会自动加密,而当用户访问文件时Windows系统会自动解密。

2.2 EFS加密注意事项

如果是在文件夹上设置了加密属性,则文件夹下的子文件夹和文件也会自动设置加密属性。设置了加密属性的文件/文件夹会呈绿色。由于加密文件时是使用某个用户的私钥,意味着这个文件只能被该用户访问,因此即使其他用户有访问文件的NTFS权限,其他用户实际上也是不能访问文件的。
WindowsXP中,如果用户修改了登录密码,会导致无法访问修改密码前加密的文件。可以通过打补丁解决这一问题。

2.3 EFS破解

EFS使用128位的DESX算法加密文件数据,从算法上看应该是没有问题的。因此想破解EFS只能采用暴力破解或者字典破解用户的密码。

破解程序会使用字典中的密码来破解各个密钥。密钥被破解后,会呈现绿色。

2.4 来恢复误删除用户后无法打开的EFS文件

AEFSDR软件是用来恢复误删除用户后无法打开的EFS文件,此时是知道用户原来的密码的。AEFSDR软件不是专门设计用于暴力或者字典破解EFS文件,因此如果添加很大的字典来破解用户的私钥,可能导致程序“死机”。

AEFSDR软件破解EFS文件的前提是:用户的私钥还存在于硬盘;或者用户的私钥已经提前导出,这时可以单击“Add Certificate”按钮重新把用户的私钥导入。

2.5 EFS破解防范

EFS加密文件算法是安全的,除了暴力破解或字典破解外,无法破解EFS文件。因此EFS破解防范的措施就是:
应该使用满足复杂性需求的密码,密码包含数字、大小字母、特殊字符,且10位以上
注意保护好密码,不得外泄。

3 使用BitLocker加密磁盘

3.1 BitLocker简介

微软在最新的Windows7旗舰版操作系统中为用户提供了一个强悍的BitLocker加密功能,该技术其实最早是出现于Vista系统,BitLocker加密技术支持FAT和NTFS两种格式,用来加密保护用户的数据,BitLocker可以加密计算机的整个系统分区,也可以加密数据分区,甚至加密可移动的便携存储设备,如U盘和移动硬盘等。

3.2 BitLocker使用

对于将受BitLocker保护的固定或可移动数据驱动器,只能是基本磁盘而不能是动态磁盘,必须使用exFAT、FAT16、FAT32或NTFS文件系统进行格式化,分区大小必须大于64M。

3.3 演示

以在Windows 8企业版上对U盘启用BitLocker功能为例说明BitLocker的使用

BitLocker加密磁盘完成后,用户可以像使用普通磁盘一样使用该磁盘,Windows系统会自动加密和解密数据。当用户把U盘弹出,又插到本计算机或者其他Windows 7以及操作系统计算机上时,会弹出窗口,输入密码解锁BitLocker加密的磁盘。

3.4 BitLocker注意事项

BitLocker加密磁盘,一旦用户忘记解锁密码,将没有恢复数据的可能。因此为预防数据无法恢复,事先应把恢复密钥保存或者打印出来,即使用户遗忘密码,也可以使用该恢复密钥恢复数据。

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

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

相关文章

Flutter 启动流程解析

任何应用程序都是从main()开始的,Flutter也不例外。Flutter 的启动入口在 lib/main.dart 里的 main() 函数中,代码如下。 void main() => runApp(MyApp());void runApp(Widget app) {final WidgetsBinding binding = WidgetsFlutterBinding.ensureInitialized();assert(b…

一个C#开发的大小只有8KB的贪吃蛇开源游戏!

大家好,我是编程乐趣。 今天给大家推荐基于C#开发的、一个贪吃蛇开源项目,这个项目除了实现贪吃蛇的功能外,重点是讲解如何把编译后的程序,从65MB精简为8KB。 项目地址 https://github.com/MichalStrehovsky/SeeSharpSnake 编译…

Java SourceDataLine 播放音频 显示频谱

Java SourceDataLine 播放MP3音频 显示频谱 1 添加依赖2 快速傅里叶变换2.1 FFT.java2.2 Complex.java 3 音频播放3.1 Player.java3.1 XPlayer.java 4 显示频谱5 结果 项目Value音频格式 添加依赖*.wav(JDK 原生支持)*.pcm(JDK 原生支持)*.au(JDK 原生支持)*.aiff(JDK 原生支持…

git 问题:server certificate verification failed. CAfile: none CRLfile: none

解决方案 结论就是 CA 证书过时了,所以无法校验我们的身份。需要我们更新一下 CA 证书。 执行以下两个指令: 重新安装 CA 证书指令。 sudo apt-get install --reinstall ca-certificates设置 git 参考证书为刚刚安装的证书。 git config --global ht…

2024年2月19日 - mis

当需要在两个或多个子模式间插入文本时,这个特性尤其有用。这里有个脚本,它使用子模式在大数字中插入逗号。 $ echo "1234567" | sed { > :start > s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/ > t start > } 1,234,567 $​ 这个脚本将匹…

vue3项目引入本地js文件,实现一个音频播放按钮

目前有一个需求就是在网页上放置一个音乐控制按钮,并且是在vue3项目里面。于是小白的我遇到了2个问题,第一个问题是如何实现没有进度条的播放按钮,这个网上有现成的代码,可以通过js代码切换不同的图片或者是别的样式,并…

SpringBoot-将Bean放入容器的五种方式

1、Configuration Bean Configuration public class MyConfiguration {Beanpublic Person person() {Person person new Person();person.setName("spring");return person;} } 2、Componet ComponentScan Component public class Person {private String name;pu…

SparkSQL学习02-编程入口

文章目录 1 DataFrame的构建方式方式一:JavaBean反射的方式1.1 创建Scala类1.2 创建Scala对象 方式二:动态编码的方式 2 DataSet的构建方式3 RDD和DataFrame以及DataSet之间的相互转换3.1【RDD-->DataFrame】和【RDD-->DataSet】3.2【DataFrame--&…

java基础之 SPI机制

SPI机制说明 什么是SPI Service Provider Interface 机制是Java提供的一套用来被第三方实现或扩展的API,他可以用来启用框架扩展和替换组件。通过“基于接口的编程 策略模式 配置文件”组合实现的动态加载机制。SPI机制为某个接口寻找服务实现的机制,…

二叉树基础知识总结

目录 二叉树基础知识 概念 : 根节点的五个形态 : 特殊的二叉树 满二叉树 : 完全二叉树 : 二叉搜索树 : 平衡二叉搜索树 : 二叉树的性质 : 二叉树的存储结构 二叉树的顺序存储结构 二叉树的链式存储结构 二叉树的遍历方式 : 基础概念 前中后遍历 层序遍历 :…

【Redis】理论进阶篇------浅谈Redis的缓存穿透和雪崩原理

一、缓存穿透 1、概念 缓存穿透(查不到数据),是指当用户想要查询数据的时候,会先去Redis中取命中,如果Redis中没有该数据,那么就会向数据库中去查找数据。如果数据库中也没有,则该次查询结果失…

Hive 最全面试题及答案(基础篇)

基本知识 hive元数据存储 Hive 元数据存储了关于表、分区、列、分桶等信息。 在生产环境中,通常会将 Hive 的元数据存储在外部的关系型数据库中,如 MySQL 或 PostgreSQL。这样可以提供更好的性能、可扩展性和容错性。通过配置 Hive 的元数据存储为 MySQL 或 PostgreSQL,可以…

Spring学习笔记(五)--Spring的AOP模块

一、AOP的底层原理 AOP的底层原理是动态代理,动态代理有两种方式:JDK动态代理和CGLib动态代理,在有接口的实现类时我们通常用JDK的动态代理方式(默认情况)为类创建代理对象,JDK的动态代理方式可以实现无入…

ORM中常用的字段和参数,正反向概念

django表查询测试环境搭建 首先,在此之前我们先来回顾一下之前学习的orm内容 1. django自带一个小型的sqlite3的小型数据库 但是这个数据库的功能非常有限,并且针对日期类型的数据兼容性很差 2. 切换数据库数据(MySQL) 2.1 在django1.x版本中你需要在_…

Android TextView.setText() 引发的卡顿问题

在 Android 开发中,TextView 是一个非常基础和常用的用户界面组件,用于在屏幕上显示文本内容。TextView 继承自 View 类,并提供了展示文本以及相关样式处理的功能。 TextView 允许开发者在应用程序的用户界面中显示格式化的文本内容。它支持…

PotPlayer+Alist挂载并播放网盘视频

文章目录 说明技术WebDAVPotPlayer 操作步骤一:Alist开启WebDAV代理二:PotPlayer连接Alist 说明 Alist网页端播放视频受限,主要是文件大于20MB,由于官方限制,无法播放需要使用user-agent修改插件,设置百度…

html中如何给input输入框这个一个默认值

在HTML中&#xff0c;要给<input>输入框设置一个默认值&#xff0c;你可以使用value属性。下面是一个简单的例子&#xff0c;展示了如何为一个文本输入框设置一个默认值&#xff1a; <input type"text" value"这是默认值">在这个例子中&#…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-24-处理单选和多选按钮-上篇

1.简介 在工作和生活中&#xff0c;经常会遇到我们需要进行选择的情况&#xff0c;比如勾选我们选择性别&#xff0c;男女两个性别总是不能同时选中的&#xff0c;再比如我们在选择兴趣爱好时&#xff0c;我们可以选择多个自己感兴趣的话题&#xff0c;比如&#xff1a;篮球、…

sqllabs第46关 order by 注入

简介&#xff1a;&#xff08;order by注入-错误回显-POST注入&#xff09; 请求方法&#xff1a;POST 方法&#xff1a;order by注入错误回显数字型注入 先了解下 order by参数注入&#xff1a; order by 注入是指其后面的参数是可控的&#xff0c; order by 不同于我们在 whe…

gem5学习(23):经典缓存——Classic Caches

目录 一、Interconnects 1、Crossbars 二、Debugging 官网教程&#xff1a;gem5: Classic caches 默认缓存是一个带有MSHR&#xff08;未命中状态保持寄存器&#xff09;和WB&#xff08;写缓冲区&#xff09;的非阻塞缓存&#xff0c;用于读取和写入未命中。缓存还可以启用…