加密与加签

加密与加签的联系

加密和加签是两种不同的安全机制,目的和实现方式有所区别:

  • 加密:目的是保证数据的保密性,防止信息在传输过程中被窃取。例如,使用对方的公钥加密数据,只有持有对应私钥的接收方才能解密。

  • 加签:目的是验证数据的完整性和来源真实性,防止数据被篡改或伪造。通常通过哈希算法生成摘要,再用私钥对摘要加密生成签名,接收方通过公钥验签。

两者的联系在于:

  • 均基于密码学技术(如非对称加密算法),但密钥使用方式不同:加密使用公钥加密、私钥解密,而签名使用私钥签名、公钥验签。
  • 可结合使用以同时保障数据的保密性和完整性。

为何需要先加签再加密

在API接口合作中,先加签后加密的设计逻辑如下:

  1. 加签(签名):发送方先用私钥对原始报文生成签名,确保报文未被篡改且来源可信。若报文被修改,验签时会因哈希值不匹配而失败。
  2. 加密:随后用接收方的公钥加密报文(含签名),确保传输过程中数据不被窃取。

接收方处理流程:

  1. 解密:用私钥解密报文,获取明文和签名。
  2. 验签:用发送方的公钥验证签名,确认报文未被篡改且来源合法。
    只加密不加签的风险

若仅加密不加签,可能面临以下问题:

  • 篡改风险:攻击者可截获加密报文,篡改后重新加密发送。接收方解密后无法识别篡改,导致处理错误数据。
    例如:攻击者将转账金额从100元改为1000元,接收方解密后直接处理,造成资金损失。

  • 身份伪造:无法验证发送方身份,攻击者可能伪造合法请求。

  • 抵赖风险:发送方可能否认自己发送过报文,缺乏防抵赖证据。

加密确保数据保密性,防止窃听;
加签确保数据完整性、来源真实性和防抵赖;
两者结合使用,才能全面应对窃取、篡改、伪造等风险。若仅加密不加签,虽能保护数据隐私,但无法防御篡改和伪造,安全性存在重大漏洞。

非对称加密中密钥使用方式的设计逻辑

  1. 加密场景:公钥加密、私钥解密
  • 核心目的:确保数据保密性,防止窃听。

  • 密钥逻辑:

    • 发送方用接收方的公钥加密数据 → 只有接收方的私钥能解密。
    • 优势:公钥可公开分发,任何人均可加密数据,但只有私钥持有者(接收方)能解密。
  • 不可反过来的原因:

    • 若用私钥加密、公钥解密,则密文可被任何人解密(公钥是公开的),完全失去保密性。
  1. 签名场景:私钥签名、公钥验签
  • 核心目的:验证数据来源真实性和完整性,防止篡改和抵赖。
  • 密钥逻辑:
    • 发送方用自身私钥对数据哈希值签名 → 接收方用发送方的公钥验证签名。
    • 优势:私钥唯一性确保签名不可伪造,公钥验签可验证身份。
  • 不可反过来的原因:
    • 若用公钥签名、私钥验签,则任何人都能用公开的公钥生成签名,无法验证发送方身份。
    • 例如:攻击者可伪造签名,接收方无法区分合法与非法来源。