密码技术应用与实践 课件 2 密码学编程扩展 综合实践_第1页
密码技术应用与实践 课件 2 密码学编程扩展 综合实践_第2页
密码技术应用与实践 课件 2 密码学编程扩展 综合实践_第3页
密码技术应用与实践 课件 2 密码学编程扩展 综合实践_第4页
密码技术应用与实践 课件 2 密码学编程扩展 综合实践_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

密码学库是对常用的密码算法的实现和封装,一般都支持基础密码算法,包括对称加密方案,散列函数,PRNGs、数字签名、加密等。常用密码库(OpenSSL、、Crypto、Cryptlib等)在软件中应用到达约70%。采用常用密码库开发软件具有安全快速的特点,深受用户欢迎。基于Pycrptodome的加密工具箱实践02/Https协议实践03/带数字签名的数字信封实践01/目录01带数字签名的数字信封实践针对数字信封的中间人攻击数字信封技术在安全性上存在缺陷,即无法确保信息是来自真正的发送方。针对数字信封,一种常见的攻击方式为中间人攻击。01带数字签名的数字信封实践带数字签名的数字信封原理带签名数字信封发送者示意图(发送方)01带数字签名的数字信封实践带数字签名的数字信封原理带签名数字信封发送者示意图(接收方)01带数字签名的数字信封实践带数字签名的数字信封原理从数字签名的原理和流程图可以看出,带签名的数字信封实现的功能有:(1)保证了信息的完整性。(2)提供了不可抵赖性。(3)提供了不可伪造性。(4)提供了机密性。01带数字签名的数字信封实践任务部署:模拟收发双方Alice和Bob,为Alice和Bob生成公私钥,实现对某一文件的安全传输,要求使用带数字签名的数字信封技术。02基于Pycrptodome的加密工具箱实践本节设计并实现了一款基于Pycryptodome的加密解密工具箱,使用Pyqt5制作图形界面,具备对称密码、公钥密码的加解密文件功能。要求:设计良好的界面实现文件对称加密功能实现产生公私钥对功能实现文件混合加密功能02基于Pycrptodome的加密工具箱实践本节设计并实现了一款基于Pycryptodome的加密解密工具箱,使用Pyqt5制作图形界面,具备对称密码、公钥密码的加解密文件功能。02基于Pycrptodome的加密工具箱实践2.1基础知识:1.界面制作PyQt5PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,拥有超过620个类和6000个函数及方法。PyQt5在可以运行于多个平台,包括Unix、Windows、和MacOS。02基于Pycrptodome的加密工具箱实践2.1基础知识:1.界面制作PyQt5GUI应用程序是事件驱动的。有三个参与者:事件来源、事件对象和事件目标。事件来源是其状态更改的对象,它会生成事件。事件对象(event)将状态更改封装在事件来源中。事件目标是要通知的对象。事件来源对象将处理事件的任务委托给事件目标。02基于Pycrptodome的加密工具箱实践2.1基础知识:1.界面制作PyQt5PyQt5具有独特的信号和插槽机制来处理事件。信号和槽用于对象之间的通信。发生特定事件时发出信号。槽可以是任何Python可调用的函数。当发射连接的信号时会调用一个槽。02基于Pycrptodome的加密工具箱实践2.1基础知识:2.PycharmIDE本项目使用PyCharm开发工具进行开发,它是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.1开发环境配置配置解释器,确保该环境安装了Pycryptodome02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.1开发环境配置添加QtDesigner外部工具,它用以设计界面02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.1开发环境配置创建“PyUIC”外部工具,它将设计的界面转化为Python语言02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.2开发界面本项目使用QtDesigner设计开发图形界面。使用“TabWidget”作为底层容器,建立四个Tab,分别命名为“欢迎使用”、“对称加密”、“产生密钥”和“数字信封”,形成主界面。02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.3类图设计MainWindow负责启动主界面、连接界面与功能实现函数AESCipher负责AES加密、解密功能,支持ECB、CBC功能EnvCipher负责密钥操作和数字信封加解密,支持公私钥生成、信封加密、信封解密功能。02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.4系统打包与运行1)安装Pyinstaller使用pip命令安装:pipinstallPyInstaller2)打开cmd窗口,把路径切换到文件所在路径(文件随便放在哪里都行)打开命令提示行,输入以下内容(最后的是文件名)pyinstaller-Fmyfile.py02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.4系统打包与运行3)输入参数的含义-F表示生成单个可执行文件-w表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!-p表示你自己自定义需要加载的类路径,一般情况下用不到-i表示可执行文件的图标02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.5运行结果02基于Pycrptodome的加密工具箱实践2.2系统设计与实现2.2.5运行结果3Https协议实践本节使用java代码模拟Https握手过程,并使用Tornado搭建Https网站。3.1java代码模拟Https握手过程HTTP(HyperTextTransferProtocol,超文本传输协议)是浏览网页时候使用的一种信息传输协议。1994年网景公司设计了SSL(SecureSocketsLayer)协议用于对HTTP传输的数据加密,诞生了HTTPS(HyperTextTransferProtocoloverSecureSocketLayer)。1996年IETF(InternetEngineeringTaskForce)对SSL3.0进行了升级,出现了TLS(TransportLayerSecurity)1.0。2018年TLS的版本是1.3,定义在RFC8446中。基本知识3Https协议实践3.1java代码模拟Https握手过程基本知识3Https协议实践3.1java代码模拟Https握手过程1)创建java证书

C:\>keytool-genkey-aliaswangyi-keypasswangyi-keyalgRSA-keysize1024-keystorehttps.keystore-storepasswangyi实现过程3Https协议实践2)

代码实现名称说明CertifcateUtils证书操作类DesCoderDes对称加密和解密工具类HttpsMockBasehttps父类HttpsMockClientclient类HttpsMockServer服务器类SocketUtilssocket工具类3.1java代码模拟Https握手过程实现过程3Https协议实践3)

模拟的Https交互过程

3.1java代码模拟Https握手过程实现过程3Https协议实践3.2使用Tornado搭建HTTPS网站基本知识下载与安装Tornado

可以在Tornado的官网上下载Tornado的压缩包(很小,只有大约400K左右),然后进行离线安装。下载地址为/en/stable/3Https协议实践3.2使用Tornado搭建HTTPS网站实现过程1)生成SSL证书

首先要生成服务器端的私钥(key文件):$openssl

genrsa-des3-outserver.key1024运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!去除key文件口令的命令:$openssl

rsa-inserver.key-outserver.key

3Https协议实践3.2使用Tornado搭建HTTPS网站实现过程1)生成SSL证书

生成CSR文件:$opensslreq-new-keyserver.key-outserver.csr-configf生成CertificateSigningRequest(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.对客户端也作同样的命令生成key及csr文件:$openssl

genrsa-des3-outclient.key1024$opensslreq-new-keyclient.key-outclient.csr-configf

3Https协议实践3.2使用Tornado搭建HTTPS网站实现过程2)在Tornado网站中开启HTTPS

接着可以测试一下tornado使用ssl

的证书了。写个测试项目,其实也就一个py文件:importos.pathfromtornadoimporthttpserverfromtornadoimportioloopfromtornadoimportwebcla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论