ESA2GJK1DH1K安全篇: 这节聊聊SSL单向认证

说明

  单向认证最多的是认证服务器是不是可以信赖的,大部分https都是基于单向认证,不过银行系统应该是双向的.

  如果链接的服务器是别人伪造的服务器,那么自己的各种信息将会被不法分子滥用!

  首先要明确一点,所有的通信都是走的TCP,然后在TCP传输的数据上做了些文章

为何需要加密呢?

  客户端 ---- 服务器

  如果只是走http那么所有的数据将会暴露出来

  (实际上就是用TCP发送的数据,数据没有任何的加密措施)

  比如说:访问我的 http://mnif.cn/

  我假设是一个小小小的黑客,然后就监控到了下面的数据了

  

  大家会感觉这有什么

  但是大家想一下,如果上面是传输的咱银行卡信息呢?????

  大家又会想,什么时候可能会传输银行卡信息呢???

  你在浏览器/手机APP上输没输过银行卡号??输没输过密码???

  要是这些信息不加密传输,窃听到这些信息是很容易的.

  大家如果不是搞支付软件的,可能感觉不出来,但是银行也好,支付宝也好,微信也好

  他们可是为了支付数据安全下了大工夫,咱平时只是用他们的软件,可能没多大感受.

先了解点数据加密知识

  假设我要传输的数据是 aabbcc

  一,简单的加密

    客户端和服务器有个约定每隔一个数据插入数据1

    然后客户端发送的就是 a1a1b1b1c1c

    发给服务器以后服务器便知道需要去掉插入的数据1,然后提取aabbcc

    服务器发给客户端也同理

  二,对称加密

    客户端:

      数据加密算法(aabbcc,秘钥(自定义的字符串或者数字))  

      通过某种加密算法,把要发送的数据和秘钥计算以后再发给服务器 XXXXXXXXXX

    服务器:

      数据解密算法(客户端发来的加密以后的数据,秘钥(该秘钥和客户端的相同))

      通过解密算法,然后填入和客户端一样的秘钥,解析出来真实的数据 aabbcc

    加密和解密使用的密钥相同的。然后调用相应的加密算法/解密算法

    最常用的对称加密算法: AES

  三,非对称加密

    ---------------------------客户端→服务器-----------------

    客户端:

      数据加密算法(aabbcc,公钥)  

      通过某种加密算法,把要发送的数据和公钥计算以后再发给服务器  XXXXXXXXXX

    服务器:

      数据解密算法(客户端发来的用公钥加密以后的数据,私钥)  

      通过解密算法和私钥解析出来真实的数据 aabbcc

    ---------------------------服务器←客户端-----------------

    服务器:

      数据加密算法(aabbcc,私钥)   XXXXXXXXXX

    客户端:

      数据解密算法(服务器通过私钥加密的数据,公钥)  aabbcc

    

    首先要明确公钥和私钥是一对的.

    用公钥加密的信息可以用私钥进行解密

    用私钥加密的信息可以用公钥进行解密

    

    常用的加密算法: RSA

  四,补充 哈希Hash加密算法

    常见的有 MD5 , SHA

    这些加密算法是不可逆的

    就是说一旦数据加密,便不可解密

    注意:可以跑字典跑出来!!!!但是跑的时间很长很长很长很长......

现在咱看看如何利用上,上面的加密

  

原文地址:https://www.cnblogs.com/yangfengwu/p/12207983.html

时间: 2024-10-24 05:05:25

ESA2GJK1DH1K安全篇: 这节聊聊SSL单向认证的相关文章

SSL双向认证和SSL单向认证的流程和区别

refs: SSL双向认证和SSL单向认证的区别https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证!https://cloud.tencent.com/developer/news/233610 SSL/TLS 双向认证(一) -- SSL/TLS工作原理https://blog.csdn.net/wuliganggang/article/details/78428866 双向认证 SSL 协议要求服务器和用户双方都有证书.单向认证

ESA2GJK1DH1K安全篇: Android以SSL方式连接MQTT服务器

------------恢复内容开始------------ 不导入证书方式 1.增加以下代码 static class miTM implements TrustManager, X509TrustManager { public X509Certificate[] getAcceptedIssuers() { return null; } public boolean isServerTrusted(X509Certificate[] certs) { return true; } publ

ESA2GJK1DH1K安全篇: 使用Wireshark监听MQTT上位机通信数据

前言: 这节咱们抓取一下上位机的MQTT通信数据 使用这个软件抓取数据 假设咱手头有个上位机但是并不知道IP地址和端口号 反复的连接和断开,然后找到出现频率最高的 锁定该IP地址和端口号 ip.addr == 47.92.31.46 && tcp.port == 1883 让两个MQTT上位机通信 原文地址:https://www.cnblogs.com/yangfengwu/p/12194829.html

基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证

基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证 摘自:https://blog.csdn.net/ty1121466568/article/details/81118468 2018年07月19日 16:51:57 曾来过 阅读数:1632 本文为参考网上其他博文搭建出服务器后的步骤记录,如有冒犯,请私信!!! 目录... 3 第 1 章 安装Mosquitto. 4 1.1 方法一:手动编译安装... 4 1.2方法二:在Ubuntu下使用apt-get安装..

【密码学】ssl双向认证和单向认证原理

有朋友在搞一个项目,周末有聊到一些安全性的东西,很自然会想起https,但https究竟如何实施,其原理又是什么? 基于ssl,一般的应用都是单向认证,如果应用场景要求对客户来源做验证也可以实现成双向认证. 网上google一下: 为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议.SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术.SSL 的握手协议非常有效的让客户和服务器之间完成相互

SSL单向验证

SSL单向验证为拦截网络通道层数据被截取,所以在客户端被调用的时候点击信任即可,程序调用同样 1.生成证书 keytool -genkey -v -alias jifubao -keyalg RSA -keystore D:\jifubao.keystore -validity 36500 2.配置tomcat(最好放在tomcat里的conf下边) <Connector port="8443" protocol="HTTP/1.1" SSLEnabled=&

SSL单向、双向认证的过程

在昨天的面试过程中谈单之前开发使用的EJBCA,对于认证这块我不是很了解内部的过程,晚上回来看了下  大致如下: 认证就是发消息的客户端和服务端之间相互认证确认的过程,又分为单向和双向认证:大概是下面这样的过程 一.单向认证: 1.客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端: 2.客户端用服务器发送来的公钥对数据进行解密,然后在客户端使用服务器发送过来的公钥对数据加密传给服务器端,服务器用私钥对数据进行解

MQTT mosquitto[2]---- SSL双向认证的配置文件的Configuration的配置方式

我们知道,MQTT mosquitto支持单项和双向的SSL认证,在上一节中,我们已经给大家分享了单向的SSL如何配置,在这一节中咱们来看一下双向的SSL认证的配置文件应该如何配置? 那么什么是双向的SSL认证呢?所谓的双向的SSL认证,打个通俗的比方就是,在进行SSL加密通信前,通信的双方(在咱们的例子中是mosquitto服务器端和MQTT客户端(消息的发送或者接收端))需要相互验证各自的证书是否合法.比如,是否是一个合法的CA颁发的等等. 在上一节提到,我们知道启动MQTT mosquit

QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)

以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/products/Win32OpenSSL.html网页: 2.下载安装包,我下载的是:Win32 OpenSSL v1.0.1c Light安装包,随着时间的推进,这个版本会不断更新的: 3.安装(exe文件)到本地,并且在安装过程中选择将库安装到OpenSSL的安装目录(/bin)下面. 4.