网络中数据如何保证数据的安全性?

简介:

 在当今网络的时代中,到底是如何保证数据传输的安全的呢?下面在原理上来阐述实现过程。


一、安全标准

    网络信息安全标准由美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)制定的,标准有:

  • 保密性(Confidenciality)

    确保信息在存储、使用、传输过程中不会泄漏给非授权用户或实体。

  • 完整性(Integrity)

    确保信息在存储、使用、传输过程中不会被非授权用户篡改,同时还要防止授权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示的一致性。

  • 可用性(Availability)

    确保授权用户或实体对信息及资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息及资源。


    这就是我们通常说的信息安全的三原则。

    现在往往还需要真实性和可追溯性。


二、密码算法类型

1、对称加密

    对称加密是加密和解密使用同一秘钥。具体如下:

wKioL1PdHYqA9jfuAADLsGTNEF0127.jpg

    关键字说明:

        明文:加密之前的文本

        秘钥:其实就是一串字符串,在加密和解密时结合密码算法实现加密解密

        密文:加密和后的字符串

        加密,解密算法:DES,3DES,AES,Blowfish,Twofish,IDEA

    对称加密的特性:   

        加密和解密使用同一秘钥

        将明文分隔成固定大小的块,逐个进行加密

    缺陷:

        A主机和很多机器在很多机器在通行时,需要获得每个主机的秘钥,会导致秘钥过多,从而导致了秘钥传输不安全,身份认证和数据完整性得不到保证。

  

2、公钥加密 

    加密和解密使用的不同的秘钥,一般成对出现。分别称为秘钥和公钥。公钥:长度过长,现在一般都是2048为以上。

wKioL1PdIymyibILAADJd7PPxUM282.jpg

    常用的加密算法:

        RSA:既可以加密也可以身份认证

        DSA:只能做身份认证

        ELGamal:商业版的对称加密算法

    使用这种方式的加密是加密速度慢。而且也不能保证数据的完整性,就是在 B 收到 A 的数据之后不能确保数据是否被篡改过。

    所以它的应用体现在以下2方面的应用:      

        1、身份认证

            自己私钥加密特征码(指纹),对方公钥加密,实现验证身份


        2、 IKE(Internet Key Exchange,秘钥交换)

            用对方的公钥加密传送给对方可能会暴力破解。因此会采用 DH 算法来实现,类似于银行的电子口令卡。关于 DH 的详细介绍可参照:http://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange 

 

3、单向加密

    单向加密(数据完整性算法):提取数据指纹,具有不可逆的特性。

    常用的单向加密算法有:MD5,SHA1,SHA384,SHA512

    算法的特点:

        定长输出:加密后的指纹是固定长度的。

        雪崩效应:原文件微小的变化都会引起指纹信息的巨大变化。


三、网络上传输数据的加密过程

    真正在网络上传输的数据时采取每种加密算法的优点来实现,基本模型如下:

wKioL1Pdi7SAQAwqAAIiKawPgU4783.jpg

假设 A 主机要向 B 主机传输数据,为了保证数据的安全,大致传输过程是这样的:

    A主机要将传输的明文信息采取单向加密算法提取明文数据的指纹,使用 A 的私钥加密指纹信息,将加密后的私钥附加到明文后面,定义这种(笔者自定义)信息为第一次加密信息。此时在利用某种算法生成一串秘钥(对称加密的秘钥),将第一次加密信息结合生成的秘钥利用对称加密算法生成第二次加密信息,然后在利用 B 的公钥信息加密秘钥后附加到第二次加密信息后生成最终的加密信息。B 主机在接收到 A 主机的加密信息后,尝试利用自己的私钥解密收到的信息,如果能解密,就会得到对称加密的秘钥,然后提取这个秘钥来解密剩余的信息,得到对称解密后的数据。完成这一步的工作之后,利用 A 的公钥来验证身份确定是 A,此时会得到明文和指纹信息,利用相同的单向加密算法,将提取的指纹信息与公钥解密后的指纹信息对比来实现数据的完整性。

    

但是,上面得以实现最重要的一环是 A 如何可靠的获取 B 的公钥呢?

    所以就出现了第三方机构 CA,通常 CA 是一个公认的,值得信赖的机构。由它来提供相应的公钥信息。大致流程如下:

wKiom1PdjQmzIa62AAGRHygS8u4975.jpg

    最重要的一环的实现如上图,大致的流程是:A 要想获得 B 的公钥信息时,首先 B 的向 CA 机构申请注册;申请成功后 CA 会向 B 返回一个证书,证书里面包括的内容 B 提供的公钥信息和组合或者各个的名称等信息,有效期,最后附加的是 CA 的签名等信息;A 要向 B 传输数据时,A 首先向 B 请求获得证书,在 B 同意后,将证书传送给 A;A 获得证书后会去验证CA 的身份和完整性,此时也会询问 CA 证书是否吊销,一切符合条件时,A 就可以向 B 开始传输数据了。


四、PKI

    PKI(public key infrastructure,公共秘钥基础建设):是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字凭证(摘自维基百科)。是现代电子商务和网路安全的重要基于规范。

    以上在网络上的数据传输过程以及 CA 认证都可由 PKI 实现。 


PKI的组成包括:

  • 签证机构:CA

  • 注册机构:RA

  • 证书吊销列表:CRL

  • 证书存取库:用户接口


    详细介绍请参照:http://en.wikipedia.org/wiki/Public_key_infrastructure

 

    总结:本文主要介绍了加密算法的类型和实现过程,以及如何通过 CA 获得证书。










本文转自 羊木狼 51CTO博客,原文链接:http://blog.51cto.com/guoting/1534372,如需转载请自行联系原作者
目录
相关文章
|
13天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1月前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
1天前
|
安全 JavaScript 前端开发
第十六届山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题—B模块安全事件响应/网络安全数据取证/应用安全
该内容描述了一次网络安全演练,包括七个部分:Linux渗透提权、内存取证、页面信息发现、数字取证调查、网络安全应急响应、Python代码分析和逆向分析。参与者需在模拟环境中收集Flag值,涉及任务如获取服务器信息、提权、解析内存片段、分析网络数据包、处理代码漏洞、解码逆向操作等。每个部分都列出了若干具体任务,要求提取或生成特定信息作为Flag提交。
3 0
|
1天前
|
安全 测试技术 网络安全
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C安全事件响应/网络安全数据取证/应用安全
B模块涵盖安全事件响应和应用安全,包括Windows渗透测试、页面信息发现、Linux系统提权及网络安全应急响应。在Windows渗透测试中,涉及系统服务扫描、DNS信息提取、管理员密码、.docx文件名及内容、图片中单词等Flag值。页面信息发现任务包括服务器端口、主页Flag、脚本信息、登录成功信息等。Linux系统渗透需收集SSH端口号、主机名、内核版本,并实现提权获取root目录内容和密码。网络安全应急响应涉及删除后门用户、找出ssh后门时间、恢复环境变量文件、识别修改的bin文件格式及定位挖矿病毒钱包地址。
3 0
|
1天前
|
安全 测试技术 Linux
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A模块安全事件响应/网络安全数据取证/应用安全
该内容描述了一个网络安全挑战,涉及Windows和Linux系统的渗透测试以及隐藏信息探索和内存取证。挑战包括使用Kali Linux对Windows Server进行服务扫描、DNS信息提取、密码获取、文件名和内容查找等。对于Linux系统,任务包括收集服务器信息、提权并查找特定文件内容和密码。此外,还有对Server2007网站的多步骤渗透,寻找登录界面和页面中的隐藏FLAG。最后,需要通过FTP获取win20230306服务器的内存片段,从中提取密码、地址、主机名、挖矿程序信息和浏览器搜索关键词。
2 0
|
1天前
|
安全 测试技术 网络安全
2024年甘肃省职业院校技能大赛中职组 “网络安全”赛项竞赛样题-C模块安全事件响应/网络安全数据取证/应用安全
涉及安全事件响应和应用安全测试。需使用Kali对Windows Server2105进行渗透测试,包括服务扫描、DNS信息提取、管理员密码、文件名与内容、图片中单词等。另外,需收集win20230305的服务器端口、页面信息、脚本、登录后信息等。在Linux Server2214上,要获取SSH端口、主机名、内核版本并进行提权操作。网络安全响应针对Server2228,涉及删除后门用户、查找SSH后门时间、恢复环境变量、识别篡改文件格式和矿池钱包地址。最后,对lin20230509进行网站渗透,获取端口号、数据库服务版本、脚本创建时间、页面路径、内核版本和root目录下的flag文件内容
3 0
|
2天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
21 0
|
2天前
|
机器学习/深度学习 传感器 数据可视化
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
15 1
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
|
7天前
|
机器学习/深度学习 数据可视化 测试技术
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
19 0
|
8天前
|
机器学习/深度学习 API 算法框架/工具
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言深度学习:用keras神经网络回归模型预测时间序列数据
16 0

热门文章

最新文章