Server2008实验——私钥和添加数据恢复代理程序
导出和安装私钥
当一个用户加密一个文件的时候,生成证书,拥有证书的私钥的用户才能够解开这个加密文件;为了防止私钥丢失导致加密文件不可打开,可以导出私钥给同一个用户组的用户帮忙打开;
1.创建【xl】和【xc】用户



切换到【xl】用户,新建一个记事本 【xl.txt】,建好后,右键点击,选择属性,高级,选择:加密内容以便保护数据;

点击应用,选择:只加密文件:

导出生成证书的私钥:
win+r 运行certmgr.msc

个人->证书->导出

根据向导点击下一步,在以下界面选择:是,导出私钥

其它默认下一步,在以下界面设置密码保护私钥,在其它用户安装此私钥的时候验证此密码;

其它默认下一步,在以下界面,将私钥保存:

这个时候,哪个用户装了xl_private这个私钥,谁就可以打开【xl】的加密文件:
- 切换成【xc】用户。尚不安装私钥,进入【xl】桌面无法打开加密文件(进入xl用户文件夹需要管理员密码,输入密码即可,当然也可以把这个加密文件放在公用文件夹内)

- 这时候去安装刚才导出的私钥:

- 除了在以下界面输入导出时设置的密码,其它都是默认下一步:

- 这时候【xl】的加密文件就能打开了:

添加数据恢复代理程序:
任何用户都可以用cipher命令生成证书和密钥(以管理员为例);
cmd输入: cipher /r:name 【name为证书和密钥的名字,冒号和name之间不留空格】

上图,为了方便设置了空密码;
管理员将这个生成的证书添加到数据恢复代理程序,那么安装了相应密钥的用户理论上能打开任何的加密文件,能不能打开还得具体查看属性>高级>详细信息:
问:这个文件的修改时间在证书安装时间之后才能被打开吗? 答:不是很准确,修改能打开,但不是一定得修改。私钥拥有者对加密文件有查看或修改操作就能(我猜测此时更新了该文件的权限)。因此文件私钥拥有者双击查看不修改,也能打开。
添加数据恢复代理程序:

浏览文件夹,选择cipher生成的证书:

安装这个证书的密钥:


切换到【xl】用户,新创建一个文件并加密

这时候查看【xl_new】的属性>高级>详细信息,恢复证书已显示在上面了(先不动【xl】文件):

切换到管理员用户,尝试打开这两个文件,只能打开【xl_new】文件,【xl】加密文件不能访问,【xl】此时并没有恢复证书(前提是在证书安装之后,在此步骤之前【xl】用户没操作过【xl】文件),而【xl_new】有。

【如果此时再切换到用户【xl】查看【xl】文件的详细信息,就会出现此恢复证书,这时候两个加密文件管理员都能打开:】

补充:
- 加密后的文件可以通过 属性>高级>详细信息 查看加密的证书和恢复证书
- 加密文件时,如果用户没有证书,那么会生成新证书,如果有一个以上,就会用已拥有的这些证书加密,可以在【详细信息】修改;
1.例如【xc】安装了颁发给【xl】的证书,加密文件时,就用【xl】的证书加密;

2.可以通过添加和删除来指定某个证书可用,前提是你本身有权限访问这个文件;
添加一个用户【xx】,加密一个文件以生成他的私钥,过程略,这时添加新证书:


这时拥有【xx】和【xl】证书私钥的用户就可访问此文件;
3.若某一次误操作将自己拥有的证书【xl】删除确认,不可访问此文件(有可能还是能访问,因为不是立即生效):


此时想尝试添加回【xl】证书会出错,因为你已经没有权限访问这个文件了:

总结:
1.拥有某个私钥的用户可以打开对应加密的文件
2.在允许访问某个加密文件的前提下,可以指定拥有其它私钥的用户访问
3.恢复证书导入后,证书私钥拥有者并不能马上打开所有加密过的文件,具体还得查看该文件的详细信息中是否显示该恢复证书。
4.删除个人证书后,还能够打开拥有此证书时能够打开的加密文件,但注销再登录后就访问不了了;
Server2008实验——私钥和添加数据恢复代理程序的更多相关文章
- 第5章分布式系统模式 Broker(代理程序)
许多复杂的软件系统运行在多个处理器或分布式计算机上.将软件分布在多台计算机上的原因有多种,例如: 分布式系统可以利用多个 CPU 或一群低成本计算机的计算能力. 某个软件可能仅在特定计算机上可用. 出 ...
- Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...
- Ubuntu添加开机自动启动程序方法
1. 开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置 文件继续引导过程,启动其它进程.通常情况下,修改放置在 / ...
- Asp反向代理程序,调用远程站点全站数据,一款脚本级反向代理程序.
前些天临时写的一脚本级反向代理程序,用法很简单,设置好目标站地址,然后放到你网站根目录:index.asp,再将404页面自定义为:index.asp,即可. 由于暂时没有 url 替换需要,所以没有 ...
- 不同linux系统添加开机启动程序的命令
see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C ...
- 如何给Windows添加自动启动的程序
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何给Windows添加自动启动的程序.
- Windows中添加自己的程序到开机启动中(添加服务,添加注册表)
在系统启动的时候启动自己想要启动的程序: 方法一:利用开机启动文件夹 将exe文件或exe文件的快捷方式复制到(启动)文件夹下 以win7为例:开始→所有程序→启动→鼠标右键打开 方法二:添加系统服务 ...
- 给OkHttp Client添加socks代理
Okhttp的使用没有httpClient广泛,网上关于Okhttp设置代理的方法很少,这篇文章完整介绍了需要注意的方方面面. 上一篇博客中介绍了socks代理的入口是创建java.net.Socke ...
- "添加与删除程序"报rundll32错误
无法启动"添加与删除程序"系统报rundll32错误 系统反馈以下信息: rundll32.exe应用程序错误"0x00310030"指令 解决方法: 1.启动 ...
随机推荐
- 【转】GO语言map类型interface{}转换踩坑小记
原文:https://www.az1314.cn/art/69 ------------------------------------------ mapA := make([string]inte ...
- MyBatis-05-解决属性名和字段名不一致的问题
5.解决属性名和字段名不一致的问题 1.问题 数据库中的字段 新建一个项目,拷贝之前的,测试实体类字段不一致的情况. public class User { private int id; priva ...
- MyBatis中的OGNL教程
MyBatis中的OGNL教程 有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL. 如果我们搜索 ...
- Qt5 使用lambda
c11新特性中加入了lambda表达式,所以Qt 也支持 需在.pro文件中加入 CONFIG += c++11 m_timer = new QTimer(); m_timer->start() ...
- React-router的使用:标签跳转和编程式跳转
目录: 1.demo:NavLink 标签跳转 2.标签渲染路由组件时,获取url参数 3.编程式跳转 参考文档 1)https://reacttraining.com/react-router/we ...
- webpack给目录起别名
1. 配置文件目录: build>webpack.base.config.js: resolve: { alias: { '@': resolve('src'), 'styles': resol ...
- Linux shell -"a-d"命令
shell中条件判断if中的-z到-d的意思 分类:shellLinux (2006) (0) shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. ...
- 【luogu2668斗地主】模拟
题目描述: 输入格式: 输出格式: 输入样例: 1: 1 8 7 4 8 4 9 1 10 4 11 1 5 1 1 4 1 1 2: 1 17 12 3 4 3 2 3 5 4 10 2 3 3 1 ...
- delete elasticsearch
在elasticsearch-head 插件中遇到的删除特定的数据需求 DELETE /索引名/需要清空的type/_query { "query": { "match_ ...
- MongoDB系列一:MongoDB文档型数据库特点介绍
一.MongoDB数据库的存储特点: 1.MongoDB是文档型数据库,存储的是文档(将json二进制化为Bson存储): 2.存储的每篇文档都可以有自己独特的存储结构,颠覆了传统数据库必须按照表和列 ...