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

简介:

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


一、安全标准

    网络信息安全标准由美国国家标准与技术研究院(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,如需转载请自行联系原作者
目录
相关文章
|
12天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
30天前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
6天前
|
机器学习/深度学习 数据可视化 测试技术
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
19 0
|
6天前
|
机器学习/深度学习 API 算法框架/工具
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言深度学习:用keras神经网络回归模型预测时间序列数据
16 0
|
6天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
23 0
|
6天前
|
存储 算法 前端开发
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
26 0
|
7天前
|
机器学习/深度学习 数据可视化 网络架构
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
12 0
|
8天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
9 0
|
8天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
8 0
|
10天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:保护数据的关键策略
【4月更文挑战第14天】在数字化时代,网络安全与信息安全已成为维护个人隐私和企业资产的重要组成部分。本文深入探讨了网络安全漏洞的概念、加密技术的应用以及提升安全意识的重要性。通过分析当前网络威胁的常见形式,文章提供了防御策略,旨在帮助读者构建一个更加安全的网络环境。