网络安全相关知识简介
在互联网环境中,你如何向别人证明:你就是你!
1、基本概念
1.1、数据加密
数据加密方式有很多,这里不介绍具体的加密算法及其技术细节,只是简单的介绍一下:对称加密与非对称加密。
1.1.1、对称加密
对称加密很简单,就是消息传递的双方共享同一个密码。消息发送人用密码对消息进行加密,然后将密文发给给消息接收人,消息接受人使用此密码对密文进行解密,然后阅读。
对称加密最大的优点就是计算量小,加密效率高,缺点则是密码安全系数并不是特别高(知道密码的人比较多)。
1.1.2、非对称加密
与对称加密对应的,非对称加密是指消息传递双发使用不同的密码,两个密码分别被称为私钥和公钥。私钥和公钥之间具备一定的数学关系:私钥加密的内容只有对应的公钥才能解密,公钥加密的内容只有对应的私钥才能解密。
需要使用此加密方式的人会具备私钥和公钥,私钥只有自己知道,公钥则对特定群体或者所有人公开。这种算法最大的优点就是安全,密码只有自己一个人知道,缺点则是计算量较大,效率低,不适合对大量内容进行加密。
应用场景:加密邮件。张三要向李四发送一封加密的邮件,因此张三使用李四的公钥对邮件内容进行加密,然后将密文发送给李四,即使中途王五截获到邮件内容也无法解读。因为只有李四的私钥才能解密邮件内容。
1.2、消息摘要(MessageDigest)
所谓消息摘要是指使用单向哈希算法,以任意长度的报文计算得到的固定长度的哈希值。所谓单向是指改算法是不可逆的,根据消息摘要无法计算出输入报文。消息摘要的另一个特定是:对输入报文的任何改动,都会导致最终的计算结果(也就是消息摘要本身)发生巨大的变化。因此,消息摘要可以任务是数字信息的指纹。
应用场景:常用的消息摘要算法有MD5、SHA等,我们下载Tomcat的时候,在软件下载链接后面经常看到pgp、md5、sha1等链接,点进去之后可以看到一串无意义的字符,这些就是与算法对应的消息摘要,用来确保你下载的软件包完整可靠,没有被篡改。当然,你需要根据你下载的软件自己计算出一个报文摘要,如果与之相同,说明你下载的软件包没有问题,否则可能已经被人动过手脚。
1.3、数字签名(DigitalSignature)
数字签名与在纸上的物理签名效果类似——保证消息的真实性与不可伪造。签名过程通常是消息的发送方首先生成消息报文的消息摘要,然后使用自己的私钥对消息摘要进行加密,加密之后的消息摘要就是消息报文的签名,将和消息报文一起发送给消息接收方。
如果消息接受方需要验证真伪,首先使用消息发送方的公钥对数字签名进行解密从而得到报文消息摘要(如果解密失败,则签名肯定有问题)。然后使用相同的消息摘要算法重新计算接受到的消息报文的消息摘要,如果计算得到的消息摘要与解密得到的消息摘要不一致,则消息报文被人篡改。
1.4、数字证书(DigitalCertificate)
数字证书类似网上身份证,由第三方权威机构签发,用于鉴别证书持有人的身份的真实性。数字证书上包含了证书持有人的基本信息(如:网站域名、邮箱地址等)、证书持有人的公钥、证书颁发机构信息、证书颁发机构的数字签名以及证书有效期。
数字证书的申请过程通常是:证书申请人向证书签发机构提交申请,申请中包含申请人身份的基本信息以及申请人公钥。证书签发机构通过各种手段核实申请来源以及申请信息的真实性。核实通过之后,真实签发机构向申请人签发数字证书。
证书签发机构也有一个证书,其中包含了证书签发机构的公钥。任何人都可以获得该证书,并使用此证书来验证该机构签发的所有证书的真伪。默认情况下,大多数操作系统内以及内置来全球知名证书签发单位的根证书。
2、工作方式
2.1、HTTPS、TLS、SSL
https区别于http协议,全称Hyper Text Transfer Protocol over Secure Socket Layer,是http协议的安全版本。通常的http协议是以明文方式进行数据传输,不宜用于敏感信息,因此NetScape(网景)公司设计了SSL(Secure Sockets Layer)与http结合,使用加密方式进行数据传输。TLS被认为是SSL的升级版。
SSL/TLS提供的服务主要有:
1、身份认证,确保消息发送双方身份的真实性。
2、加密传输,消息以密文传递,防止中途被窃取。
3、数据校验,确保消息在传输途中不会被篡改。
SSL/TLS协议由两层结构构成:记录协议层(ecord Protocol Layer)和握手协议层(HandShake Protocol Layer)。握手协议层建立在记录协议层之上,用于核实双发身份、协商双发使用的加密方式、加密密码等信息。记录协议层建立在TCP/IP协议之上,用于数据等加密、解密、压缩、校验、切分、重组等工作。
下面两张图分别描述的握手过程和两边的数据变化情况:
3、参考阅读:
网友评论