WCF安全2-非对称加密

概述:

数字签名和加密依赖于相应的加密算法

  自变量:加密前的数据、密钥

  因变量:加密后的数据

加密算法分类:根据加密和解密这两种步骤采用的密钥的是否相同进行分类

  相同:对称加密

  不相同:非对称加密

非对称加密的应用场景:

  (1)通过对消息进行加密解决机密性问题(消息的内容仅对发送者期望的接收者可见)

(2)通过数字签名实现身份认证和数据一致性

1.消息加密

非对称加密:公钥/私钥

2.数字签名

签名:

(1)发送方采用某种算法对整个消息的内容实施哈希计算,得到一个哈希码

(2)发送发使用自己的私钥对该哈希码进行加密,加密后得到的密文就是数字签名

(3)将数字签名和密钥对中的公钥附加到源消息上

(4)将附加的源消息发送给接收方

检验:

(1)提取源消息,将源消息通过相同的哈希算法得到一个哈希码

(2)提取数字签名和公钥,将数字签名通过公钥进行解密,得到申城数字签名的那个哈希码

(3)两个哈希码进行比较,如果一致,则可以证明数字签名的有效性及消息本身的完整性。

数字签名的作用:

(1)身份认证

确认消息的发送源是否是私钥的正真正拥有者

(2)防止抵赖

如果接收方采用某个实体的公钥对数字签名检验成功,那么这个实体就是消息的发送方,不允许对方抵赖。因为能够通过公钥对某个数字签名成功检验,证明生成该数字签名使用的是正确的私钥。

(3)消息一致性

消息的内容一旦出现任何改变,最终对数字签名的检验都将失败。

3.数字证书

(1)公钥一般情况下是通过数字证书的形式进行传递的,数字证书在这里作为发送方的凭证。

(2)数字证书将公钥值绑定到持有对应私钥的个人、设备或服务的标识信息上。

(3)大多数证书基于X.509 V3证书标准,所以称作X.509证书。

(4)X.509证书应用于加密和数字签名,以提供认证的实现和确保数据的一致性和机密性。

(5)X.509证书就是一个将某个密钥中的公钥与某个主题进行绑定的文件。

(1)数字证书的颁发机制

对于数字证书,尤其是用于商业用途的数字郑虎,也具有相应的官方颁发机构,我们这样机构称为认证权威机构(CA)。

(2)创建数字证书

用户对数字证书的认可取决于对证书颁发机构的信息,所以证书颁发机构决定了数字证书的可用范围。

对于学习研究或者开发测试,没有必要去购买这些商用证书,可以利用一些工具以手动的方式创建证书。

  MakeCert.exe

    -n x509name:指定证书的主题名称。"CN=My Name"

    -pe:将所生成的私钥标记为可导出,这样可将私钥包括在证书中

    -sr location:数字证书的存储位置,具有CurrentUser和LocationMachine两个可选之。前者基于当前登录用户,后者基于本机。

    -ss store:数字证书的存储区。

    -sky keytype:指定密钥类型,必须是signature、exchange或一个标识提供程序类型的证书(1标识交换密钥,2标识签名密钥)。

通过下面的命令会创建一个主题名称为www.artech.com的数字证书,密钥类型为交换密钥,并且包含私钥。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师历程

pad block corrupted

Security.addProvider(new com.sun.crypto.provider.SunJCE()); ...

8271
来自专栏信安之路

HTTPS攻击原理与防御

超文本传输安全协议( HTTPS )是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。 H...

1080
来自专栏技术博文

经典加密解密函数

<?php /** * 加密解密函数 * @param string $string 明文 或 密文 * @param string $oper...

29510
来自专栏CDN及云技术分享

keyless原理

ssl协议是基于密码学的基础上,解决通信双方加密信道和身份鉴权的安全问题。ssl协议的算法本身是公开的,但是算法本身的输入参数(key)是由通信双方私自保存。在...

1.2K39
来自专栏曹丰斌的专栏

HTTPS 原理浅析及其在 Android 中的使用

本文首先分析HTTP协议在安全性上的不足,进而阐述HTTPS实现安全通信的关键技术点和原理。然后通过抓包分析HTTPS协议的握手以及通信过程。最后总结一下自己在...

3.6K0
来自专栏草根专栏

ASP.NET Core Web API 与 SSL

1683
来自专栏Java架构沉思录

深入浅出密码学(下)

前言 在之前的文章《深入浅出密码学(上)》与《深入浅出密码学(中)》,笔者为大家介绍了密码学中的加密、单向散列函数与消息认证码的概念与应用。这里带大家简单回顾一...

3376
来自专栏腾讯Bugly的专栏

HTTPS 原理浅析及其在 Android 中的使用

本文首先分析HTTP协议在安全性上的不足,进而阐述HTTPS实现安全通信的关键技术点和原理。然后通过抓包分析HTTPS协议的握手以及通信过程。

4124
来自专栏苦逼的码农

【漫画】https 加密那点事

在每次发送真实数据之前,服务器先生成一把密钥,然后先把密钥传输给客户端。之后服务器给客户端发送真实数据的时候,会用这把密钥对数据进行加密,客户端收到加密数据之后...

2393
来自专栏白驹过隙

OpenSSL - 利用OpenSSL自签证书和CA颁发证书

47017

扫码关注云+社区

领取腾讯云代金券