精华内容
下载资源
问答
  • 对报文加密
    万次阅读
    2018-06-18 19:42:17

    (服务器或客户端)一般的用MD5对报文体(即参数)加密生成一段摘要(字符串、比报文体短得多),然后用RSA进行加密,这里必须设定一个规则,比如对报文体(参数)进行组合排列。

    1. 服务器端验证:客户端对报问体先进行MD5加密,生成一段字符串A,然后对字符串A进行RSA加密再生成字符串B,把字符串B加入到header然后对服务器发送请求。服务器接收到请求,对请求体(参数)也进行MD5 RSA加密生成字符串C。服务器对字符串C和B进行对比。如果相同,则是认为是客户端正常请求,如果不同:则认为有人恶意请求,不予回复。
    2. 客户端验证:对header里某几个公共参数(或是重要的返回数据进行加密,自定义规则,打乱顺序,)进行 MD5加密生成字符串A RSA加密生成字符串B,回复给客户端,客户端拿到字符串B,自己对header里的某几个公共参数MD5 RSA加密生成字符串C。判断B与C是否相同。相同即认为是服务器返回的报文,不相同即认为有人恶意修改数据。

    更高级别的安全加密:公私钥加密
    通过Linux open SSL 工具 在Linux服务器生成两对公钥和私钥,客户端、服务端各一对。客户端通过私钥对报文体加密得到字符A,服务端使用公钥对字符串A解密(使用JAVA API传入字符串A报文,公钥,报问题),会返给true false。 反之,服务器用私钥加密,客户端用公钥解密。

    更多相关内容
  • AES报文加密1

    2022-08-08 22:12:38
    AES报文加密1
  • 加密报文格式及分析V1.0.pdf
  • ...(1)通信使用明文,可能会被窃听。 为了保证http传输的高效性,http...为了解决这个问题,可以通信或者内容进行加密。 通信加密:可以通过SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security

    http协议可能存在信息窃听或身份伪造等安全问题,使用https通信机制可以有效的防止这些问题。

    1、HTTP的缺点

    凡事皆有两面性,http作为应用广泛的通信协议,自然是十分优秀的,但其也存在不足之处:

    (1)通信使用明文,可能会被窃听。

    为了保证http传输的高效性,http本身不具备加密功能,所以无法对通信整体进行加密。为了解决这个问题,可以对通信或者内容进行加密。

    通信加密:可以通过SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。

    用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP就是HTTPS(HTTP Secure,超文本传输安全协议)

    image-20211120221525493.png

    内容加密:由于 HTTP 协议中没有加密机制,那么就对 HTTP 协议传输的内容本身加密。即把HTTP 报文里所含的内容进行加密处理。 在这种情况下,客户端需要对 HTTP 报文进行加密处理后再发送请求。

    image-20211120221646679.png

    为了做到有效的内容加密,前提是要求客户端和服务器同时具备加密和解密机制。主要应用在 Web 服务中。有一点必须引起注意,由于该方式不同于 SSL或 TLS 将整个通信线路加密处理,所以内容仍有被篡改的风险。

    (2)通信时不会验证双方的身份,可能遭遇伪装。

    在这种情况下, 任何客户端都可以发送请求,而服务器只要接收到请求,不管对方是谁都会返回一个响应。在这种机制下就可能存在很多问题。

    为了解决这一问题,也可以使用SSL协议。SSL协议不仅能进行加密处理,而且还使用了证书可以用于确定对方的身份。证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。另外,伪造证书从技术角度来说是异常困难的一件事。所以只要能够确认通信方(服务器或客户端)持有的证书,即可判断通信方的真实意图。

    image-20211120222141915.png

    (3)无法证明报文的完整性,可能遭遇篡改。

    所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确。

    由于HTTP无法验证报文的准确性,因此在请求或者响应时发送的报文数据,在接收到之前有可能会被篡改,但HTTP无法知悉。

    比如,从某个 Web 网站上下载内容,是无法确定客户端下载的文件和服务器上存放的文件是否前后一致的。文件内容在传输途中可能已经被篡改为其他的内容。即使内容真的已改变,作为接收方的客户端也是觉察不到的。

    像这样,请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack,MITM)。

    image-20211120222638637.png

    虽然有HTTP协议确定报文完整性的方法,但事实上并不便捷可靠。其中常用的是MD5和SHA-1等散列值校验方法,以此用来确认文件的数字签名方法。

    为了有效防止这些弊端,有必要使用 HTTPS。SSL提供认证和加密处理及摘要功能。仅靠 HTTP 确保完整性是非常困难的,因此通过和其他协议组合使用来实现这个目标。

    2、HTTPS

    2.1 HTTPS是什么

    HTTPS = HTTP + 加密 + 认证 + 完整性保护。HTTP加上加密处理和认证以及完整性保护后即是HTTPS。

    如果在HTTP协议通信过程中使用了未经加密的明文,比如在web页面中输入信用卡号,如果这条通信线路遭到窃听,那么信用卡号就暴露了。

    另外对于HTTP来说,不管是客户端还是服务端,都没有办法确认通信双方。因为很有可能并不是和原本预想的通信方在实际通信。并且还需要考虑到接收到的报文在通信途中已经遭到篡改这一可能性。

    为了统一解决上述这些问题,需要在 HTTP 上再加入加密处理和认证等机制。我们把添加了加密及认证机制的 HTTP 称为 HTTPS(HTTP Secure)。

    image-20211120223843726.png

    HTTPS并非是应用层的新协议,只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替。

    通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信。简而言之,HTTPS就是身披SSL协议的HTTP。

    image-20211120224401434.png

    采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护的功能。

    SSL是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应用层的 SMTP 和 Telnet 等协议均可配合 SSL协议使用。可以说 SSL是当今世界上应用最为广泛的网络安全技术。

    2.2 加密技术

    加密技术可以分为两类:对称加密和非对称加密。

    (1)对称加密:密钥只有一个,加密解密为同⼀个密码,且加解密速度快,典型的对称加密算法有DES、AES等;

    利用这种加密方式加密时必须要把密钥也发送给对方,密钥在传输过程中如果被截获,那么也就失去了加密的意义。

    (2)非对称加密::密钥成对出现(且根据公钥⽆法推知私钥,根据私钥也⽆法推知公钥),加密解密使⽤不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度慢,典型的⾮对称加密算法有RSA、DSA等。

    非对称加密很好的解决了对称加密的不足之处。非对称加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。

    使用非对称加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。

    另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程就是在对离散对数进行求值,这并非轻而易举就能办到。退一步讲,如果能对一个非常大的整数做到快速地因式分解,那么密码破解还是存在希望的。但就目前的技术来看是不太现实的。

    2.3 HTTPS的加密方式

    HTTPS采用混合加密的方式,即同时采用了对称加密和非对称加密。

    非对称加密虽然比对称加密更安全,但其不足之处就是加解密需要耗费更长的时间。所以HTTPS综合了两者的优势,在交换密钥环节使用了非对称加密方式,之后建立通信交换报文阶段则使用了对称加密方式

    image-20211122205547812.png

    在上述过程,客户端和服务器先使用非对称加密,服务器将公钥返回给客户端,客户端在拿到服务端的公钥后,通过公钥对key进行加密后发送给服务器,服务器再使用它的私钥进行解密后得到key。这个key只有服务器才能拿到。随后客户端和服务端建立连接进行通信,为了提高通信效率,使用对称加密进行,密钥就是之前拿到的key。

    HTTPS 正好综合了这两种加密算法的优点,不仅保证了通信安全,还保证了数据传输效率。

    2.4 CA证书

    遗憾的是,非对称加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立非对称加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。

    为了解决上述问题,可以使用由数字证书认证机构(CA,Certificate Authority)和其相关机关颁发的公开密钥证书。

    首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。

    服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。 接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事: 一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。

    此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

    image-20211120231531425.png

    2.5 HTTPS的通信过程

    image-20211122205640388.png

    大致分为三个过程:证书验证、建立连接、数据传输

    (1)客户端发送请求给服务器。

    (2)服务器保存有CA证书,该证书中包含有非对称加密的公钥以及其他公司信息等。

    (3)服务器响应请求,并且携带数字证书发送给客户端

    (4)客户端接收到数字证书后,会进行解析,如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

    如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

    (5)客户端把加密后的key发送给服务器。

    (6)服务器会使用它独有的私钥B对加密后的key进行解密得到key。此时客户端和服务器建立连接,保证了key只有双方才知道,为后面通信时数据传输做准备。

    (7)服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

    (8)双方使用对称加密愉快地传输所有数据。

    3、总结

    HTTP和HTTPS的区别

    • 最重要的区别就是安全性,HTTP 明文传输,不对数据进行加密安全性较差。HTTPS (HTTP + SSL / TLS)的数据传输过程是加密的,安全性较好。
    • 使用 HTTPS 协议需要申请 CA 证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、DigiCert 和 GlobalSign 等。
    • HTTP 页面响应速度比 HTTPS 快,这个很好理解,由于加了一层安全层,建立连接的过程更复杂,也要交换更多的数据,难免影响速度。
    • 由于 HTTPS 是建构在 SSL / TLS 之上的 HTTP 协议,所以,要比 HTTP 更耗费服务器资源。
    • HTTPS 和 HTTP 使用的是完全不同的连接方式,用的端口也不一样,前者是 443,后者是 80。

    HTTPS 缺点

    • 在相同网络环境中,HTTPS 相比 HTTP 无论是响应时间还是耗电量都有大幅度上升。
    • HTTPS 的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。
    • 在现有的证书机制下,中间人攻击依然有可能发生。
    • HTTPS 需要更多的服务器资源,也会导致成本的升高。

    参考:
    (1)书籍《图解HTTP》
    (2)https://segmentfault.com/a/1190000021494676

    展开全文
  • 使得两个用户安全地交换一个秘密密钥以便用于以后的报文加密
  • 那么安全性将得不到保障。首先数据在传输的过程中,数据...其次数据被中间人拿到后,中间人可能数据进行修改或者替换,然后发往服务器。最后服务器收到数据后,也无法确定数据有没有被修改或替换,当然,如果服务...

    https是以安全为目标的http通道,简单讲是http的安全版。当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信。那么安全性将得不到保障。

    首先数据在传输的过程中,数据可能被中间人抓包拿到,那么数据就会被中间人窃取。

    其次数据被中间人拿到后,中间人可能对数据进行修改或者替换,然后发往服务器。

    最后服务器收到数据后,也无法确定数据有没有被修改或替换,当然,如果服务器也无法判断数据就真的是来源于客户端。

    总结下来,http存在三个弊端:

    1.无法保证消息的保密性

    2.无法保证消息的完整性和准确性

    3.无法保证消息来源的可靠性

    https就是为了解决上述问题应运而生的。

    https采用了一些加解密,数字证书,数字签名的技术来实现,为了保证消息的保密性,就需要用到加密和解密。加解密算法目前主流的分为对称加密和非对称加密。

    1.  对称加密(共享密匙加密):客户端和服务器公用一个密匙用来对消息加解密,这种方式称为对称加密。客户端和服务器约定好一个加密的密匙。客户端在发消息前用该密匙对消息加密,发送给服务器后,服务器再用该密匙进行解密拿到消息。

    2.非对称加密(公有密匙加密):既然对称加密中,密匙那么容易泄露,那么我们可以采用一种非对称加密的方式来解决。采用非对称加密时,客户端和服务端均拥有一个公有密匙和一个私有密匙。密匙可以对外暴露,而私有密匙只有自己可见。

    为了解决非对称加密中公匙来源的不安全性。我们可以使用数字证书和数字签名来解决。

    https没有采用单一的技术去实现,而是根据他们的特点,充分的将这些技术整合进去,以达到性能与安全最大化。这套整合的技术我们称之为SSL(Secure Scoket Layer 安全套接层)。所以https并非是一项新的协议,它只是在http上披了一层加密的外壳。

    1.客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密匙长度等)。

    2.服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容时从接收到的客户端加密组件内筛选出来的。

    3.服务器发送证书报文。报文中包含公开密匙证书。

    4.最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。

    5.SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密匙进行加密。

    6.接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密匙加密。

    7.客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。

    8.服务器同样发送Change Cipher Spec报文

    9.服务器同样发送Finished报文

    10.服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成。当然,通信会收到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。

    11.应用层协议通信,即发送HTTP相应。

    12.最后由客户端断开连接。断开连接时,发送close_notify报文。上图做了一些省略,这步之后再发送TCP FIN报文来关闭与TCP的通信。

    展开全文
  • JAVA 报文加密方式

    千次阅读 2018-05-25 14:17:33
    jdk 加密 案例一:对称加密 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.tomcat.util.codec.binary.Base64; public class ChiperUtil { /** * * @param ...

    jdk 加密

    案例一:对称加密

    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    
    import org.apache.tomcat.util.codec.binary.Base64;
    
    public class ChiperUtil {
    	
    	/**
    	 * 
    	 * @param str
    	 * @param key 对称加密 key必须为16位
    	 * @return 
    	 * @throws Exception
    	 */
    	public static String aesEncrypt(String str,String key) throws Exception{
    		if(str ==null || key ==null){
    			return null;
    		}
    		Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
    		cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getBytes("utf-8"), "AES"));
    		byte[] bytes = cipher.doFinal(str.getBytes("utf-8"));
    		return new Base64().encodeToString(bytes);
    	}
    	
    	public static String aesDeccrypt(String str,String key) throws Exception{
    		if(str ==null||key==null){
    			return null;
    		}
    		Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
    		cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getBytes("utf-8"), "AES"));
    		byte[] bytes = new Base64().decode(str);
    		bytes = cipher.doFinal(bytes);
    		return new String(bytes,"utf-8");
    	}
    	// test
    	public static void main(String[] args) throws Exception {
    		String key="duichenjiamikey1";
    		String aesEncrypt = aesEncrypt("23", key);
    		System.out.println(aesEncrypt);
    	}
    
    }
    

     

    展开全文
  • 加密报文格式及分析V1.1.pdf
  • HTTP协议生成服务器的请求报文,通过TCP协议将报文分割多段可靠的传输给服务端。 中间(路由器、交换机等)可能通过IP协议进行中转。 1.0:每次链接后都会断开,下次需要重新建立握手连接。 1.1:默认保持keep-...
  • 本发明涉及网络数据处理技术领域,具体地说是一种可快速定位问题所在的TCP报文加密电路及方法。背景技术:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,...
  • 一种基于增强型Blowfish算法的独特报文加密技术1
  • 原文地址: https://blog.csdn.net/suxinpingtao51/article/details/42645137
  • 一个报文的可靠性要比它... 使用秘密密钥的加密算法被用来产生MAC。这个密钥必须为通信的双方共同知道。原则上,MAC是一个短的差错检测码EDC(Error Detection Code),它仅能在知道相关的秘密密钥时才能被验证。因此
  • RSA是当前最流行的非对称加密方式,使用公钥加密使用密钥解密,如何妥善的保管密钥就成了关键。动态生成密钥工具类package com.yitong.utils;import java.security.KeyFactory;import java.security.KeyPair;import ...
  • 比如报文加密之后由于字节长度变长往往需要升级CAN总线到CAN FD等。这很多国内本地的车厂来讲是一个不小的挑战。笔者之前设计了针对CAN网络进行报文加密的方案,既可以做到保持原有总线架构不用变...
  • Frida实战-梆梆加壳APP报文加密破解

    千次阅读 2021-03-23 21:21:30
    移动 APP 进行渗透测试的过程中,经常会遇到 APP 数据报文做了加密(特别是金融类 APP),如果目标 APP 未作加壳保护,可以直接使用 jadx-gui 反编译 APK 获得源码,分析代码逻辑找到加解密函数并使用 Frida ...
  • 内核传输的报文进行简单加解密
  • 前后端报文传输加密方案

    万次阅读 2019-05-22 09:58:36
    好了,加密算法都有了,那怎么对报文进行加密呢? 前端利用axios的拦截器就可以轻松实现。 import axios from 'axios' import cache from './cache' import store from '../vuex/store' import...
  • 详谈HTTP和HTTPS的加密

    千次阅读 2022-03-22 10:26:32
    详细介绍HTTP协议并讲述自己所理解的HTTPS加密,如有理解不对或不全面的地方,希望大家指正!
  • RSA实现对报文数据加密

    千次阅读 2017-12-06 17:09:17
    // 数据加密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte [] code = new byte [(((data.length - 1 ) / 117 + 1 )) * 128 ...
  • 完整的配网加密通讯的交互过程,包括加密认证、验签、链路通讯、总召、数据上送一整套通讯报文,是调试配网通讯规约的一个很好的参照
  • wireshark 解密加密报文

    万次阅读 2020-07-02 21:49:04
    wireshark 解密IPSec加密后的报文 序言 wireshark作为一款非常优秀的抓包工具,支持了各种各样的网络协议,成为了网络开发中必不可少的工具之一。一般而言,对于普通的网络数据包,wireshark能够提供很好的解析功能...
  • 基于椭圆曲线密码的数据集中器通信报文混合加密算法,佟为明,张希栋,针对数据集中器通信的信息安全需求,分析数据集中器通信受到的主动攻击和被动攻击行为,建立数据集中器通信安全需求模型,提出一
  • 请求报文加密 //sm2公钥 var pubkeyHex = "045417fe9233682d37355d2f64db75fb6ff1146efb68cf409cdd64bb7e31a448047c337b0edd919501f678181a230d91e621029bc64faf7fca3631ac2c869673b9"; //请求报文加密 ...
  • https传输协议加密原理分析

    千次阅读 2018-06-28 21:29:04
    当客户端初次向服务器请求秘钥时,报文可能被黑客截获,黑客伪装服务器向客户端返回一个黑客生成的秘钥,当客户端使用该虚假秘钥发送报文时,黑客就可以解密客户端发送的报文信息。 2. 拦截服务器报文,截获秘钥 ...
  • Postman报文进行加密之AES

    千次阅读 2021-01-25 11:16:34
    Pre-request Script是指在发送报文前执行的脚本,用于请求包中的各种参数做一些个性化的处理。 接上篇文章,实际获取的sText签名需要传递给源报文参数sign,报文内容如下signText,把报文作为一个整体进行AES加密...
  • 本人写的电力行业报文解析工具,单文件免安装,随存随用,详细解析到每个字节。支持如下规约: 1.698.45报文解析;2.南网规约报文解析;3.376.2报文解析(茜茜写的);4.376.1规约帧结构解析;5.645.07表规约帧结构解析...
  • 区块链加密货币的报文加密协议调研分析 1)该加密货币现有的P2P流量是否加密? 我选择的是以太坊,该加密货币现有的P2P流量已经加密。 2)介绍一下在使用的加密方案。 以太坊p2p网络可以分为三层,从下到上依次分别...
  • 加密算法报文

    2016-06-20 13:44:42
    加密算法报文
  • 用wireshark打开加密报文,点击Edit选择Preferences,找到Protocal,选择SNMP协议,点击User table 点击Edit,填入对应的加密参数(设备中SNMPv3配置),点击OK即可解密。备注:这些参数是SNMPv3读取mib节点时设置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,719
精华内容 29,087
关键字:

对报文加密