利用PKI体系解决私密文件传输中一系列问题的大体思路 背景:
现有A用户和B用户之间想加密传输一些秘密文件,通过什么样的技术可以确保A和B传输数据的安全性?
方案:采用对称秘钥对数据进行加密传输(对称加密算法计算效率高,速度快)
解决的问题:私密性
算法:AES、3DES、DES等
工作原理:A用户选择一种对称加密算法并与用户口令P(P的值假设为'user_passwd')对原始数据Data进行加密后生成加密后的数据P_DATA,再通过网络将P_DATA传递给B,B获取P_DATA后采用相同的用户口令P与相应的对称加密算法对数据进行解密,最终获得真正的数据DATA

产生的问题:A的加密口令P以及使用了哪种加密算法该如何告诉B,直接在公网传输有被窃取的风险。

上述问题方案:采用非对称秘钥算法将用户口令P加密(非对称加密算法计算效率低,速度慢,适用于加密数据量特别小的数据)
算法:RSA、ECC等
解决的问题:hash值解决文件完整性、公钥加密解决用口令P的私密性
工作原理:A用户使用B用户的公钥将用户口令P与加密算法的选择信息加密,连同P_DATA以及两者的hash值发送给B。B使用自身的私钥解密得到加密算法和对称加密算法的用户口令P,使用P解密得到原始数据Data。

产生的问题:A如何获得B的公钥?如果A直接通过网络获取B的公钥则存在中间人劫持的风险,即中间有C冒充B将C的公钥发送给A,A又不对收到的公钥进行验证的话则C获取到加密后的数据后用自己的私钥即可将数据解密

上述问题方案:CA机构介入
解决的问题:身份唯一性
背景:CA机构为可信任线下机构(类似于公安局),所有人都有CA的公钥
工作原理:
1、B向CA机构提交个人信息、注册秘钥信息。
2、CA机构依据注册秘钥生成非对称加密算法秘钥对,并将该密钥对的公钥、个人信息以及经过CA自身私钥加密后的前两个元素的hash值封装成一张数字证书。
3、将生成的数字证书与生成的密钥对的私钥一同反还给B
4、B将数字证书发送给A,A拿B的证书去CA官方提供的OCSP服务器检测证书有效性。如有效则A用CA的公钥解密得到数字证书上的hash,将B的个人信息与B的公钥再次做hash后与解密得到的hash比对,如一致则能保证该公钥为B的公钥


产生的问题:如果C拿到B的证书即可冒充A来给B发送数据(反过来也可以说A给B发送了一个数据后A不承认这个数据是A发的),那么B应该怎么确认发来的数据肯定就是A发的呢?

上述问题方案:A也使用数字证书
解决的问题:不可抵赖性
前提:参考上述申请数字证书方法也给A申请一张数字证书,同理B也获取了A真实的公钥
工作原理:A将发送给B的hash值用A的私钥进行加密,B用A的公钥对hash进行解密。如果解密后的hash值与'AES+user_passwd+P_DATA'的hash相同,则能证明'AES+user_passwd+P_DATA'确实是A发来的

产生的问题:如果B的私钥丢失,加密文件解不开了怎么办?


上述问题方案:向CA机构申请补发证书
解决问题:加密文件可挽救
注意:证书申请时的注册秘钥信息用于补发证书与私钥,故要与证书、私钥分离保存
工作原理:向CA机构提供原始注册秘钥信息,CA机构根据颁发记录生成一张与原来一致的证书与私钥反还给B

产生的问题:B的私钥丢失后被C用来解密数据怎么办?

上述问题方案:为私钥使用设立门槛
解决问题:私钥丢失后的数据私密性保证
场景:可能数字证书保存在U盘中,此时可对U盘设置密码(PIN码)
工作原理:为保存私钥的介质加密防止别人拿来就用

总结:此方案利用PKI体系依次解决了文件传输中的私密性、文件完整性、身份唯一性、不可抵赖性、加密文件可挽救、私钥丢失后的数据私密性保证

身份认证与加密浅谈(PKI)的更多相关文章

  1. 搭建私有CA并基于OpenSSL实现双向身份认证

    0x00 前言 互联网上的Web应用由于用户数目广泛,都是采用单向身份认证的,只需要客户端验证服务端的身份.但如果是企业内部的应用对接,客户端数量有限,可能就会要求对客户端也做身份验证,这时就需要一个 ...

  2. iOS - HTTPS接口加密和身份认证

    为什么要使用HTTPS代替HTTP HTTPS和HTTP的区别 https协议需要到CA申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https则是具有安全性的SS ...

  3. 【推荐】JAVA基础◆浅谈3DES加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. 浅谈基于FormsAuthentication的认证

    一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到 Session中存储的用户基本信息,查看比较他有没有登录和能否 ...

  5. 使用USB Key(加密狗)实现身份认证

    首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...

  6. Shiro身份认证、盐加密

    目的: Shiro认证 盐加密工具类 Shiro认证 1.导入pom依赖 <dependency> <groupId>org.apache.shiro</groupId& ...

  7. 浅谈使用spring security中的BCryptPasswordEncoder方法对密码进行加密与密码匹配

    浅谈使用springsecurity中的BCryptPasswordEncoder方法对密码进行加密(encode)与密码匹配(matches) spring security中的BCryptPass ...

  8. Android应用安全开发之浅谈加密算法的坑

      <Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题     Android开发中,难免会遇到需要加解密一些数据内 ...

  9. 【转】 浅谈Radius协议

    浅谈Radius协议 2013-12-03 16:06 5791人阅读 评论(0) 收藏 举报  分类: Radius协议分析(6)  从事Radius协议开发有段时间了,小弟不怕才疏学浅,卖弄一下, ...

随机推荐

  1. windows平台下的oracle ORA-01031的解决方法

    今天下午遇到一个很怪异的问题,在windows平台下sqlplus  / as sysdba登陆数据库,提示权限不足, 当时就纳闷了,sys用户登陆数据库还能权限不足,问题出现了,就开始寻找解决方法呗 ...

  2. <fieldset>标签

    <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...

  3. php上传图片预览,放大,裁剪

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. SQL STUFF函数 拼接字符串 多列 合并成一列 转

    关于和并列的 要这种效果. create table tb(idint, value varchar(10)) insert into tbvalues(1,'aa') insert into tbv ...

  5. UniGUI的布局使用说明

    (unigui的页面布局还是很强大的,基本什么的排版都能搞好.前面部分为原文章翻译,翻译不一定很准确,就能看吧,后面有使用说明,有什么不明白的欢迎加我QQ(910300653)一起交流学习) 一.布局 ...

  6. Bashu2445 -- 【网络流24题-10】餐巾问题

    2445 -- [网络流24题-10]餐巾问题 Description 一个餐厅在相继的n天里,每天需要用的餐巾数不尽相同.假设第i天需要ri块餐巾(i=1,2,…,n).餐厅可以购买新的餐巾,每块餐 ...

  7. ZZNU 2098 Drink coffee(差分+树状数组)

    题目链接:http://acm.hi-54.com/problem.php?pid=2098 2098 : Drink coffee 时间限制:1 Sec 内存限制:256 MiB 提交:32 答案正 ...

  8. 三种实现Android主界面Tab的方式

    在平时的Android开发中,我们经常会使用Tab来进行主界面的布局.由于手机屏幕尺寸的限制,合理使用Tab可以极大的利用屏幕资源,给用户带来良好的体验.学会Tab的使用方法已经成为学习Android ...

  9. js验证身份证号,超准确

    js验证身份证号,超准确 看程序前先来了解下身份证号的构成:身份证号分为两种,旧的为15位,新的为18位.身份证15位编码规则:dddddd yymmdd xx p    其中 dddddd:地区码  ...

  10. 前后端分离开发之前端自己的API(DB)---- (1)

    Creating demo APIs for Front-End Developer 心理准备 Tool-1 开发工具/编辑器:Visual Studio Code , 即 VSCode官网: htt ...