精华内容
下载资源
问答
  • Android开发wifi加密连接

    热门讨论 2015-12-28 09:35:44
    本文是【Android开发】wifi开关与wifi连接(密码连接)【地址:http://blog.csdn.net/jingleye/article/details/50416890】博文的demo,这个demo包含了wifi的开关,wifi信息的获取,wifi扫描,wifi有无密码的连接
  • Mysql加密连接

    千次阅读 2018-11-25 15:55:41
    通过MySQL客户端和服务器之间的未加密连接,有权访问网络的人可以监视您的所有流量并检查客户端和服务器之间发送或接收的数据。 当您必须以安全的方式通过网络移动信息时,未加密连接是不可接受的。要使任何类型的...

    使用加密连接:
    https://dev.mysql.com/doc/refman/8.0/en/encrypted-connections.html

    通过MySQL客户端和服务器之间的未加密连接,有权访问网络的人可以监视您的所有流量并检查客户端和服务器之间发送或接收的数据。
    当您必须以安全的方式通过网络移动信息时,未加密的连接是不可接受的。要使任何类型的数据不可读,请使用加密。加密算法必须包含安全元素,以抵御多种已知攻击,例如更改加密消息的顺序或重放数据两次。
    MySQL支持使用TLS(传输层安全性)协议在客户端和服务器之间建立加密连接。TLS有时被称为SSL(安全套接字层),但MySQL实际上并不使用SSL协议进行加密连接,因为它的加密很弱(请参见 第6.4.6节“加密连接协议和密码”)。
    TLS使用加密算法来确保可以信任通过公共网络接收的数据。它具有检测数据更改,丢失或重放的机制。TLS还包含使用X.509标准提供身份验证的算法。
    X.509可以识别互联网上的某个人。在基本术语中,应该有一些称为“ 证书颁发机构 ”(或CA)的实体,它将电子证书分配给需要它们的任何人。证书依赖于具有两个加密密钥(公钥和密钥)的非对称加密算法。证书所有者可以将证书提供给另一方作为身份证明。证书由其所有者的公钥组成。使用该公钥加密的任何数据只能使用由证书所有者持有的相应密钥解密。
    如果您有MySQL源代码分发,则可以使用其mysql-test/std_data目录中的演示证书和密钥文件来测试您的设置
    使用加密连接的选项,证书和秘钥文件的名称以及加密连接技术支持相关的参数

    ssl加密库:
    openssh:MySQL支持使用TLSv1,TLSv1.1和TLSv1.2协议的加密连接。
    wolfssh
    要确定是否使用OpenSSL编译服务器,请测试是否存在任何这些变量。例如,如果使用OpenSSL,则此语句返回一行;如果使用wolfSSL,则返回空结果:

    mysql> SHOW STATUS LIKE 'Rsa_public_key'\G
    

    检查是否启用加密:

    mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';
    mysql> \s
    

    查看服务器是否支持ssh连接:

    mysql>SHOW VARIABLES LIKE 'have_ssl';
    

    配置myql服务器连接:

    有几个选项可用于指示是否使用加密连接,以及指定适当的证书和密钥文件
    服务器端连接:
    服务器端的这些选项标识服务器在允许客户端建立加密连接时使用的证书和密钥文件:
    --ssl-ca:证书颁发机构(CA)证书文件的路径名。(--ssl-capath类似但指定CA证书文件目录的路径名。)
    --ssl-cert:服务器公钥证书文件的路径名。这可以发送到客户端,并根据它具有的CA证书进行身份验证。
    --ssl-key:服务器私钥文件的路径名。
    
    [mysqld]
    ssl-ca=ca.pem
    ssl-cert=server-cert.pem
    ssl-key=server-key.pem
    

    加密连接的客户端配置

    默认情况下,如果服务器支持加密连接,MySQL客户端程序会尝试建立加密连接,并通过以下--ssl-mode选项进一步控制 :
    如果没有 --ssl-mode选项,客户端将尝试使用加密进行连接,如果无法建立加密连接,则会回退到未加密的连接。这也是具有显式--ssl-mode=PREFFERED选项的行为 。
    使用时--ssl-mode=REQUIRED,客户端需要加密连接,如果无法建立,则会失败。
    使用--ssl-mode=DISABLED,客户端使用未加密的连接。
    使用--ssl-mode=VERIFY_CA或 --ssl-mode=VERIFY_IDENTITY,客户端需要加密连接,并对服务器CA证书和(与VERIFY_IDENTITY)证书 中的服务器主机名执行验证。
    mysql --ssl-ca=ca.pem \
      --ssl-cert=client-cert.pem \
      --ssl-key=client-key.pem
    

    使用openssh生成加密证书:

    生成证书代码:

    # Create clean environment
    rm -rf newcerts
    mkdir newcerts && cd newcerts
    
    # Create CA certificate
    openssl genrsa 2048 > ca-key.pem
    openssl req -new -x509 -nodes -days 3600 \
            -key ca-key.pem -out ca.pem
    
    # Create server certificate, remove passphrase, and sign it
    # server-cert.pem = public key, server-key.pem = private key
    openssl req -newkey rsa:2048 -days 3600 \
            -nodes -keyout server-key.pem -out server-req.pem
    openssl rsa -in server-key.pem -out server-key.pem
    openssl x509 -req -in server-req.pem -days 3600 \
            -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
    
    # Create client certificate, remove passphrase, and sign it
    # client-cert.pem = public key, client-key.pem = private key
    openssl req -newkey rsa:2048 -days 3600 \
            -nodes -keyout client-key.pem -out client-req.pem
    openssl rsa -in client-key.pem -out client-key.pem
    openssl x509 -req -in client-req.pem -days 3600 \
            -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
    

    生成的文件目录:

    ➜  newcerts tree -L 2
    .
    ├── ca-key.pem:CA证书
    ├── ca.pem
    ├── client-cert.pem:客户端连接的证书
    ├── client-key.pem
    ├── client-req.pem
    ├── server-cert.pem:服务器端的证书
    ├── server-key.pem
    └── server-req.pem
    
    0 directories, 8 files
    

    验证证书:

    要查看SSL证书的内容(例如,要检查其有效的日期范围),请直接调用 openssl:

    openssl x509 -text -in ca.pem
    openssl x509 -text -in server-cert.pem
    openssl x509 -text -in client-cert.pem
    

    也可以使用以下SQL语句检查SSL证书过期信息:

    mysql> SHOW STATUS LIKE 'Ssl_server_not%';
    openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
    

    查看证书内容:

    openssl x509 -text -in ca.pem
    openssl x509 -text -in server-cert.pem
    openssl x509 -text -in client-cert.pem
    

    创建RSAkey:

    openssl genrsa -out private_key.pem 2048
    openssl rsa -in private_key.pem -pubout -out public_key.pem
    chmod 400 private_key.pem
    chmod 444 public_key.pem
    

    配置:
    在启动服务器时用有关选项指明证书文件和密钥文件的位置。在建立加密连接前,要准备三个文件,一个CA证书,是由可信赖第三方出具的证书,用来验证客户端和服务器端提供的证书。CA证书可向商业机构购买,也可自行生成。第二个文件是证书文件,用于在连接时向对方证明自已身份的文件。第三个文件是密钥文件,用来对在加密连接上传输数据的加密和解密。MySQL服务器端的证书文件和密钥文件必须首先安装,在sampdb发行版本的ssl目录里有几个供参考的样本文件:ca-cert.pem(CA证书),server-cert.pem(服务器证书),server-key.pem(服务器公共密钥)。把这几个文件拷贝到服务器的数据目录中,再在选项文件里加上以下内容:

    [mysqld]
    ssl-ca=/usr/local/mysql/data/ca-cert.pem
    ssl-cert=/usr/local/mysql/data/server-cert.pem
    ssl-key=/usr/local/mysql/data/server-key.pem
    

    要想让某个客户程序建立加密连接,必须在调用这个客户程序时用有关选项告诉它在哪里能找到其证书文件和密钥文件。在sampdb发行版的ssl目录中提供了client-cert.pem(客户证书文件),client-key.pem(客户密钥文件),CA证书与服务器使用同样的ca-cert.pem。把他们拷贝到个人目录下,并在.my.cnf选项文件中指出文件位置,如:

    [mysql]
    ssl-ca=/home/mysql/ca-cert.pem
    ssl-cert=/home/mysql/client-cert.pem
    ssl-key=/home/mysql/client-key.pem
    

    配置完成后,调用mysql程序运行\s或SHOW STATUS LIKE 'SSL%'命令,如果看到SSL:的信息行就说明是加密连接了。如果把SSL相关的配置写进选项文件,则默认是加密连接的。也可用mysql程序的–skip-ssl选项取消加密连接。如果用命令行方式启用加密连接可以这样写:

     mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
    

    可用GRANT语句的REQUIRE SSL选项来强制用户使用加密连接。

    使用sampdb发行版的证书可以建立一个加密连接,但由于该文件已公开,所以安全性不好,我们可以在测试成功后自行建立证书或购买商业证书,以提高安全性。如何自行建立SSL证书的文档在sampdb发行版的ssl/README文件里有说明

    展开全文
  • 理解网络分层与数据加密

    千次阅读 2017-07-22 20:29:34
    OSI的全称是Open System Interconnection(开放系统互联模型),是由国际标准化组织ISO设计,解决不同体系结构网络互相连接的问题。 实际应用中,五层架构是最常见的,也是最容易理解的:网络分层后,每一层都工作着...

    网络分层

    网络的基础分层是OSI的七层架构:

    OSI的全称是Open System Interconnection(开放系统互联模型),是由国际标准化组织ISO设计,解决不同体系结构网络互相连接的问题。

    实际应用中,五层架构是最常见的,也是最容易理解的:

    网络分层后,每一层都工作着不同的协议和实际的物理设备,下一层为上一层提供服务,上层的实现无需考虑下层的细节,相同层级之间进行相互通信。


    物理层

    物理层提供了物理设备通信通道上的原始比特流传输。
    物理层的存在使得上一层的无需关注实际的传输介质

    IEEE802.3协议为例,物理层的一帧主要包括以下三部分:

    • Header: 帧头部信息,包括目标地址,源地址,Data段的长度等信息。
    • Data: 帧实际传输的数据信息
    • FCS: 校验信息

    这里我们提到了Header中包含了目标地址和源地址等信息。那么如何表示一台物理设备的地址呢?

    答案是:MAC地址

    MAC 地址也称作物理地址,用来唯一确定一台可以联网的物理设备。MAC地址一共48位(6)个字节,前24位由IEEE分配给厂商,后24位由厂商自行决定。这样就保证了两个网卡的MAC地址不会一样。

    在实际传输的时候,设备A是如何发数据包发送给设备B呢?其实以太网的原理很简单:

    设备A向子网里的所有设备发送数据包,所有设备的在接受到数据包之后,取出MAC地址和自己的进行检查,如果MAC地址一致则接收,不一致则忽略。


    数据链路层

    数据链路层提供了物理寻址,同时将原始比特流转变为逻辑传输线路。数据链路层将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

    前面我们提到了两台设备可以通过广播进行通信。但是,不可能我在上海,你在北京,我们仍然通过广播数据包的方式进行通讯。

    这就引申出了子网的概念,只有在同一子网中的设备才采用广播的方式。而不同的子网之间通过网关(Gateway)连接。

    那么,如何在不同的网关之间寻址呢?这时候就要引入一个逻辑地址:IP地址。这里我们先不管IP地址是什么,只要知道它是一台设备的逻辑地址即可。

    在引入了IP地址之后,无形中又引入了一个问题:

    如何从IP地址,找到设备MAC地址?

    数据链路层提供了IP地址到MAC地址的映射,其中ipv4采用ARP协议,ipv6采用NDP协议。

    ARP的更多细节可以参见IBM的这篇文档,讲解的非常详细,大致的过程是:

    ARP工作的时候,送出一个含有所希望的IP地址的以太网广播数据包。目的主机,或者另一个包含该主机的系统响应后,以一个含有IP地址和MAC地址的数据包进行应答。


    网络层

    网络层提供了逻辑编址,分组传输,路由选择等服务,提供主机到主机之间的通信。

    网络层的最重要的协议就是IP协议,IP协议主要作用有两个:为每一台计算机分配一个IP地址,确定哪些地址在同一个网络中。IP协议提供的是不可靠的传输,它的优点是在网络传输的时候无需先确定一条“通路”。

    目前应用最广泛的版本还是ipv4,ipv6正在积极部署中。

    • ipv4用32位来表示一个地址:比如208.80.152.2。(4组10进制数)
    • ipv6用128位来表示一个地址:比如2001:0db8:85a3:08d3:1319:8a2e:0370:734 (8组16进制数)

    IP地址包括网络地址和主机地址,通过子网掩码来区分。

    ipv4的数据包格式如下:

    ip的数据包是被放到物理层帧的data段里进行传输的:

    传输层

    传输层的主要任务是向上层屏蔽下层数据发送的细节,提供可靠的端到端的通信和流量控制,保证报文正确传输,提供端口到端口的通信。

    网络层提供的是主机到主机的通信,而同一主机上可能有不同的应用需要联网,这就是端口的作用:端口可以用来区分同一主机的不同应用。

    常见的工作于传输层的协议是TCP和UDP。传输层在收到应用层的数据后,在必要的时候会对数据进行切割,编号,然后交给网络层进行传输。

    以TCP为例,数据包格式如下:

    同样可以简化为:header + data。这样数据包由高层到低层的结构进行了如下改变:


    应用层

    应用层定义了用户于网络之间的直接接口,提供用户请求的各种服务。简单来说,应用层就是定义用户数据以什么样的格式被传输

    常见的工作在应用层的协议有:HTTP/HTTPS/FTP/SMTP等。比如HTTP是建立在TCP上的协议,那么HTTP在工作的时候数据包格式如下:


    工作方式

    在网络分层模型中,逻辑上是同层之间进行通信的,而实际的物理连接则是通过物理层中使用的具体介质。

    以一次对http://www.baidu.com请求为例,讲解下分层的具体工作流程

    DNS查询

    • 检查域名是否在缓存里,如果在,则直接返回ip地址。
    • 如果没底没有DNS服务器或者默认网关的IP地址,采用ARP的方式对DNS/网关进行查询,获取其IP地址
    • 获得了DNS服务器或者默认网关地址后,使用 53 端口向 DNS 服务器发送 UDP 请求包,如果响应包太大,会使用 TCP 协议
    • 如果对应的DNS服务器没有找到域名对应的IP地址,则一层一层的向高层DNS进行查询,直到找到对应的ip地址

    TCP连接

    找到目标IP后,会尝试进行连接,连接的时候会进行三次握手,这里先不考虑握手的细节,先看下如何向服务器发送TCP请求数据包的。

    • 请求的数据包先传递给传输层,在传输层请求被分装成TCP Segment,目标端口(80)会被加入头部,源端口会在系统内核内随机选取。
    • TCP Segment被送往网络层,网络层会在包中添加一个IP头部,这个头部包括了目标IP地址和源IP地址,形成了TCP Packet
    • TCP Packet被送往链路层,链路层会在包中加入frame头部,包括了本地网卡的MAC地址和网关(本地路由器的)MAC地址。

    传输

    在TCP包从本地计算机发送出去,经过调制解调器把数字信号转换为模拟信号。数据包首先到达本地字网的路由器,接着路过各种路由器,到达baidu.com的服务器。每一次经过路由器的时候,路由器会取出数据包的IP地址,通过路由选择算法找到最合适的路径,并继续传递下去。

    响应

    服务器收到数据包后,服务器的调制解调器(或者其他设备)将模拟信号转换为数字信号,然后经由物理层 - 链路层 - 网络层 - 传输层的解析后,传输层收到了TCP的连接请求,对客户端进行响应。

    数据传递

    在建立TCP连接后,服务器通过TCP协议把响应HTML通过一个个TCP的数据包传输给客户端,客户端的网络层将收到的TCP数据包进行重新排序,调整后,交给应用层,至此一次HTTP请求完毕。


    加密

    对称加密

    对称加密是加密和解密采用相同的秘钥,代表算法AES,DES。

    这个加密模式有一个很大的缺点:假设信息由甲方传输给乙方,如果甲方采用密钥进行加密,那么必须想办法把密钥告诉乙方。如何保存和传输密钥久成了一件很麻烦的事情。

    非对称加密

    非对称加密需要两份秘钥:公钥和私钥。用公钥加密的数据要用私钥来解密,用私钥加密的数据要用公钥解密,代表算法RSA。

    以RSA算法为例,在加密之前首先需要生成公钥和私钥

    1. 随机选择两个质数 p = 61;q = 53;(质数越大,越难破解)
    2. 计算两个质数的乘积:n = 61×53 = 3233,二进制就是110010100001,这个密钥是12位的,实际应用中RSA一般为1024或者2048位
    3. 计算n的欧拉函数φ(n)

       φ(n) = (p-1)(q-1) = 3120
    4. 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。比如选择 e = 17
    5. 计算e对于φ(n)的模反元素d。所谓”模反元素”就是指有一个整数d,可以使得ed被φ(n)除的余数为1。找到一组整数解,可以得出 d = 2753

      ed - 1 = kφ(n) 即 17d - 1 = k * 3012

      • (n,e)=(3233,17)为公钥
      • (n,d)=(3233,2753)为私钥

    接着,用公钥对数据进行加密:

    RSA加密要求被加密的信息m必须是整数(字符串取ascii或者unicode),且m < n。这里待加密的m = 65,根据公式进行加密,得出加密后的结果c = 2970

    m^e ≡ c (mod n) 即  65^17 ≡ c (mod 3233)
    c = 2970

    按照私钥对c = 2970进行解密

    c^d ≡ m (mod n) 即 2970 ^ 2753 = m(mod 3233)

    得出 m = 65

    更多细节,可以参考:RSA算法原理(一)(二)

    对于更长的数据可以采用分段加密,或者采用DES加密数据后,再把密钥用RSA加密。接受者用RSA解密密钥,然后再用DES解密数据。

    展开全文
  • 什么是无线网络加密

    千次阅读 2020-06-06 14:46:59
    无线网络加密是通过对无线电波里的数据加密提供安全性,主要用于无线局域网中链路层信息数据的保密。现在大多数的无线设备都具有WEP加密和WAP加密功能,那么对一般的中小企业而言,是使用WEP加密,还是WAP加密呢?从...

    介绍

    无线网络加密是通过对无线电波里的数据加密提供安全性,主要用于无线局域网中链路层信息数据的保密。现在大多数的无线设备都具有WEP加密和WAP加密功能,那么对一般的中小企业而言,是使用WEP加密,还是WAP加密呢?从时间上看,WEP出现得比WPA早;从安全性上看,WPA比WEP安全性更好一些。

    WEP与EPA

    WEP采用对称加密机制,数据的加密和解密采用相同的密钥和加密算法。启用加密后,两个无线网络设备要进行通信,必须均配置为使用加密,具有相同的密钥和算法。WEP支持64位和128位加密,对于64位加密,密钥为10个十六进制字符(0-9和A-F)或5个ASCII字符;对于128位加密,密钥为26个十六进制字符或13个ASCII字符。

    要让WEP更安全,无线路由器需要进行几个安全设置,首先使用多组WEP密钥,因为使用一组固定WEP密钥,将会非常不安全,但是请注意WEP密钥是保存在Flash中,所以某些黑客取得您的网络上的任何一个设备,就可以进入企业的网络;其次如果使用的是旧型的无线路由器,且只支持WEP,那么需要使用128位的WEPKey;第三要定期更换WEP密钥;第四需要去制造商的网站下载一个固件升级,升级后就能添加WPA支持。相对而言,WEP网络上各台设备共享使用一个密钥所以安全性不高,

    而WPA(Wi-Fi保护接入)继承了WEP基本原理而又解决了WEP的缺点。由于其加强了生成加密密钥的算法,因此即便收集到分组信息并对其进行解析,也几乎无法计算出通用密钥。其原理为根据通用密钥,配合表示电脑MAC地址和分组信息顺序号的编号,分别为每个分组信息生成不同的密钥,然后与WEP一样将此密钥用于RC4加密处理。 通过这种处理,所有客户端的所有分组信息所交换的数据将由各不相同的密钥加密而成,无论收集到多少这样的数据,要想破解出原始的通用密钥几乎是不可能的。WPA还追加了防止数据中途被篡改的功能和认证功能。
    由于具备这些功能,WEP中此前倍受指责的缺点得以全部解决。WPA不仅是一种比WEP更为强大的加密方法,而且有更为丰富的内涵。作为802.11i标准的子集,WPA包含了认证、加密和数据完整性校验三个组成部分,是一个完整的安全性方案。 当然,由于许多无线路由器或AP在出厂时,数据传输加密功能是关闭的,所以对网络管理员而言,如果直接拿来用而不作进一步设置的话,那么企业的无线网络就成为了一个“不设防”的摆设。综上所述,建议大家采用WPA加密方式。

    展开全文
  • 网络通信常见加密剖析

    千次阅读 2021-04-01 16:50:41
    假设客户端和服务器中间一个转发者,他截获了客户端发出的请求并将自己的公钥返回给了客户端,然后再将客户端的请求发给了服务器,客户端用攻击者的密钥加密了自己的对称密钥——但私钥却不在服务器,而是在攻击者...

    当人类面对荒蛮外界时,人身安全是第一需求,人们需要相互传授安全防范的经验和技能。当人类步入信息社会之时,我们不难发现信息安全还是我们的第一需求,而且现在比过去任何时候都更需要普及信息安全的意识和知识。
    ——《密码学》序,某不具名的中国科学院成都计算机应用研究所研究员/博导

    在不懂计算机的人眼里,黑客们几乎都是离群索居、脾气古怪,在赛博世界中无孔不入无所不能的代名词——这当然不是真的,而且绝大多数要归功于编剧们的奇思妙想。造成这种误差有很大一部分来自人们并不了解这个赛博空间中相当重要的一环:网络安全。
    人们总认为黑客的技术晦涩难懂且充满神秘,其实不然(当然,申必代码倒是有)。但是网络通信加解密有什么手段、什么意思、出自哪里呢?今天小编就带大家来了解一下网络通信中常见的两类加密方式:对称加密和非对称加密

    基础概念

    Hash

    既然今天挑了加解密作为我们讨论的重点,那自然要先讲一下Hash了~
    Hash,音译叫哈希,也可以叫做散列,是一种生成信息摘要的方式。我们都知道计算机是以二进制储存数据的,而所有的二进制都是一个数字,Hash所做的就是将这样一个数字通过计算,得出一个固定长度的消息摘要,这样的消息摘要大致上具有两个特性:不可逆、低碰撞。不可逆的意思很好理解:用Hash处理过的消息摘要无法再还原至消息本身,也就相当于是一个单向的加密过程(而且几乎无法解密)。低碰撞的意思指的则是两条不同的消息要尽可能地不会得到同一个Hash(不过在这点上,有些Hash算法偏重一点点差距就会造成巨大的差异(但是相应的,两个不同文件碰撞的可能会变大),而另一些算法则侧重于两个不同文件更不可能碰撞)。
    Tips:Hash并不是某种特定的算法,而是一类具有相同思想和特性的算法的统称,常见的Hash算法包括MD5、SHA-1等。

    常见术语解释

    明文

    指原始的消息,理想状态下只有发送/接收方能看到明文,但这一点很难实现,所以大家多采用传输加密密文的方式来保证安全性,在数据加解密中属于不能暴露的信息。

    密文

    指加密后的消息,密文最重要的一个特性就是没有秘钥就无法解密,因此网络通信中常见的加解密主要关注于密钥,在数据加解密中属于可以暴露的信息。

    密钥

    指的是一个控制加密/解密过程的标志型信息(数字、字符串和其他信息),根据算法的不同,密钥还有可能分为通用密钥、加密密钥和解密密钥等,,在数据加解密中属于基本不能暴露的信息。

    算法

    指的是加密/解密的过程,将一段信息通过某个密钥进行演算从而得出,在数据加解密中属于最好不要暴露的信息,但好的加密算法及加密体系应当确保即便算法暴露也无法解密密文。

    关于安全性

    需要注意的是,无论是何种算法都不能抵挡无敌的穷举法,但我们更期望于尽可能地延长被破解的时间——试想,如果你的手机号需要一千年才能被超算解密,难道这种算法就是不安全的吗?恰恰相反,在实际应用中,我们注重的并非完全的难以破解——这不可能,我们注重的是提高入侵者的攻击成本,从而达到阻止破解的目的。

    对称加密

    对称加密可称得上是最古老的加密形式:通过一套加密/解密过程和一把密钥,对密文进行的操作和对明文的进行的操作都可以被复现——就好像你家的门锁,只要有一把钥匙,无论是谁都能将它锁上、无论是谁都能将它打开。
    最简单的对称加密当属古老的凯撒密码,将一串字母中的某几位替换成后几个字母(如A变成C,B变成D),解密的时候只要知道向后了几位便可以还原密文——在那个没有计算机的时代,这种密码还算符合军事加密通信的要求,可在计算机性能日新月异的当代,这种密码就不够看了。但最令人头疼的不是该种算法容易被暴力破解——在现代,对称加密技术在密钥不泄漏的情况下可以称是最安全、最高效的加密手段(例如DES、AES乃至3DES等,这里限于篇幅不再展开详细讨论算法)。唯一的问题是,在网络通信中,我们一贯假设通信是被侦听的、甚至有可能被篡改,因此如何安全地传递密钥就变成了一个鸡生蛋还是蛋生鸡的问题。为此,人们又设计出了非对称加密算法。

    非对称加密

    提及非对称加密,不得不说的就是RSA算法,这是一种典型的非对称加密算法,这类算法最大的特征就是加密密钥和解密的密钥并不是同一把密钥,所以服务器可以公开自己的加密密钥,任何人都可以使用这把钥匙加密数据(我们称公开的密钥为公钥,私有的密钥为私钥),但只有服务器自己可以解密这把公钥加密的数据——即服务器自己持有的私钥并不需要暴露就可以独立进行加密,这就保证了服务器接收到的数据是未被篡改且不会被侦听的。
    非对称加密算法的唯一的问题就是他们的速度相较对称加密算法来说要慢上许多——甚至可以说是在高性能要求的场景下不可被接受的延迟。

    端对端通信

    综上所述,对称加密算法的问题在于密钥不可信,而非对称加密算法的问题在于不能支持大量数据的流动,因此聪明的你肯定马上可以想到:我们可以利用非对称算法传递一个对称密钥,然后如此通信啊!
    对,完全没错,这就是端对端通信中的加密手段,客户端首先向服务器请求一个公钥——这不需要加密,因为公钥本来就是暴露的,然后由这把公钥加密自己的对称密钥/加密公钥并传输给服务器,服务器再用自己的私钥进行解密:这就是大名鼎鼎的SSL。
    注:SSL在工作流程上还有一些为了防止攻击和保证数据完整性做的额外努力,但大体思路如此。

    证书签名

    好的,一切看起来都很完美,但是有一个小问题:如果我们的数据被篡改了怎么办?
    假设客户端和服务器中间有一个转发者,他截获了客户端发出的请求并将自己的公钥返回给了客户端,然后再将客户端的请求发给了服务器,客户端用攻击者的密钥加密了自己的对称密钥——但私钥却不在服务器,而是在攻击者手里,很显然这条连接将是一条裸奔的加密连接——而且双方都对此毫不知情,这该怎么办呢?
    现代的安全专家们采用了一个非常巧妙的方式来解决这个问题:他们重新构建了另一套非对称密钥(为了方便和上面的连接密钥区分,我们称其为证书密钥),这套非对称密钥中的公钥是解密用的密钥,而私钥(即加密密钥)掌握在服务器自己手里。
    这样,当其他人询问的时候,服务器就会将传输密钥、身份信息组合成一个字符串,然后将计算它的哈希并它加密,最后将密文和哈希同时打包发送——这证明了打包者同时知晓原文和密钥,原因如下:
    1.因为只有原文才能得出哈希,而哈希本身不可逆,所以得到哈希者必然需要知道原文/哈希中的一条。
    2.因为非对称密钥中加密密钥和解密密钥相对应,如果能成功解码消息则起码证明发送密文者知晓密钥和原文。
    我们常说“孤证不立”,在密码学中也有类似的说法,即“单一信息无法验证自己是否可信”,读者们可以自己思考一下为什么一定要哈希和密文同时发送才能证明密文发送者是服务器(即一定持有加密用的证书私钥)。
    在这种情况下,只要我们确保解密用的解密密钥可信,我们就可以确保和我们通信的一定是这个解密密钥对应的加密密钥——即一定是这台服务器。
    但很显然,我们没有办法保证解密密钥的可信,最后解决这个问题的办法是我们提前在计算机里设置一些绝对可信的解密密钥,当我们遇到一个声称“自己安全”的解密密钥时,便去询问这些服务器,由他们来证明这个解密密钥安全。这些密钥、还有一些额外的信息(比如密钥哈希、身份等)一起打个包,就变成了我们熟知的数字证书。

    结语

    好的,那么这就是小编给大家分享的网络通信加解密有什么手段、什么意思、出自哪里。希望大家看完这篇由小编精心整理的内容后,能对相关知识有所了解,解决你的困惑!(狗头保命)

    展开全文
  • oracle 加密连接

    千次阅读 2017-06-23 10:55:37
    Database Advanced Security...网络传输加密即将客户端也server段之间传输的数据进行加密: Oracle提供了很多加密方法来实现这一功能, 完整性校验也同样依赖这些加密算法来实现   实施:  1.首先看一下,你当
  • 如何发现未加密网络连接

    千次阅读 2012-06-29 15:45:15
    硬盘数据恢复 链接来传送。...如果你能从某个数据连接中看到明文信息,那么这个连接很可能是未加密的不安全连接。如果传输的数据你完全看不懂,或者已经被标记为 TLS 或 SSL 连接,那么你就可以放心了。
  • 前方人员反馈在Horizon环境中交付桌面前,验证过程中,使用Horizon client登录错误报:无法建立安全加密链路连接,如下图所示: UAG软件版本:3.9 二、分析处理 1、检查客户端SSL配置选项,如下图: 2、检查租户...
  • 无线网络的几种认证与加密方式

    千次阅读 2019-11-07 08:26:36
     最基本的加密技术,手机用户、笔记型计算机与无线网络的Access Point(网络金钥AP)拥有相同的网络金钥,才能解读互相传递的数据。这金钥分为64bits及128bits两种,最多可设定四组不同的金钥。当用户端进入WL...
  • 第一章 常见网络攻击 1.1、XSS攻击 1.1.1 XSS简介 XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为不跟层叠样式表 (Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS ...
  • 数据加密技术是保障计算机网络通信安全的重要技术手段和防护策略,利用数据加密技术不仅可以有效地确保数据的完整性和保密性,提高信息的安全系数,而且还能够确保计算机网络通信技术的健康有序发展。1 网络通信和...
  • 下面是 Android 开发中 WiFi 的常用配置,如:获取当前 WiFi ,扫描 WiFi 获取列表,连接指定 WiFi ,监听网络变化等等。 下面是效果图: GitHub 下载地址:https://github.com/wuqingsen/WifiDemoWu csdn ...
  • C#实现网络传输数据加密

    千次阅读 2017-05-16 17:51:36
    一次加密一个数据组,加解密所使用的是同一密钥,故其通常也称为对称加密。分组长n各种不同的对称加密算法取值不同(DES和TripleDES为64位,AES默认为128位,也可以为192位和256位),在对明文消息进行分组时如果...
  • 局域网内,金蝶K310.4客户端连接中间层,打开金蝶web系统配置工具webcnfg.exe或webcnfgN.exe,注册连接中间层,提示:连接中间层加密服务失败,请确认中间层加密服务已启动。 主要原因: 一、金蝶K3中间层本身...
  • zynq实现二层网络加密转发

    千次阅读 2021-11-23 16:40:34
    二层网络加密转发是加密端将所有二层网络数据实现加密,然后发送出去,接收端接收到数据后解密,然后以二层报文发送出去。常规的网络加密仅仅局限于网络应用数据加密,对底层的ARP(IP地址到MAC地址的解析,可通过...
  • 网络信息安全第二讲 信息加密技术基础 一 信息加密理论基础 1.信息熵基本知识 信息熵(information entropy)是对信息状态“无序”与“不确定”的度量(从本质上讲,熵不是对信息的度量,但信息的增加而使产生的熵...
  • 网络安全之常用加密算法是什么?

    千次阅读 2018-10-15 13:40:46
    文章目录加密分类对称加密非对称加密总结 ...  对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强...
  •  对3G移动通信系统的网络安全问题进行了探讨,国内开展的4G系统及工程的建设已经开始安全性改造的工程,此举具有特别重要的意义。  安全性问题自移动通信技术问世以来就已产生。第一代移动通信的模拟蜂窝移动通信...
  • 网络支付加密思路

    千次阅读 2018-11-07 00:45:23
    在C/S模式中, 客户端想要支付就要通过网络向服务器端发送请求, 那么问题来了, 在通过网络传输过程中的数据是可以进行拦截和修改伪造的, 也就说黑客可以拦截通过某个路由的所有数据,比如你的支付申请, 任意修改后再...
  • Android 连接加密网络

    千次阅读 2011-08-18 11:56:00
    if (wifiManager.startScan()) //扫描可用的无线网络 { List<ScanResult> scanResultList = wifiManager.getScanResults(); for (int i = 0; i (); i++) { ScanResult scanRet = scanResultList.get(i); if ...
  • 网络加密与认证技术

    千次阅读 2015-11-02 16:27:46
     数据加密算法很多种,密码算法标准化是信息化社会发展的必然趋势,是世界各国保密通信领域的一个重要课题。按照发展进程来分,经历了古典密码、对称密钥密码和公开密钥密码阶段。古典密码算法替代加密、置换...
  • tcp/ip网络通讯安全加密方法

    千次阅读 2018-04-06 08:35:21
    tcp/ip网络通讯安全是一个广受关注的话题,现在也一些基于tcp/ip加密技术标准如SSL,TLS等。但很多时候编写一些简单的网络通讯把这标准加密应用...首先保证网络通讯安全两个方面,第一保证连接的有效性,其二就...
  • SSH连接方式及加密方式

    千次阅读 2018-11-30 10:07:43
    关于对称加密与非对称加密 关于SSH账密连接及密钥连接所使用的不同加密方式 如何不用账密SSH远程连接
  • 所有网络通信都应该加密吗?

    千次阅读 2016-06-29 16:45:18
    为已登录的用户采用加密网络连接会成为一个标准,这是通向网络世界未来最健康的一个方向。我们应该致力于使得HTTPS更加易用、更加快速,最为重要的是,使它默认为已登录的用户服务
  • PostgreSQL 数据安全之数据加密

    千次阅读 2021-09-01 10:23:17
    PostgreSQL 支持多个不同级别的灵活加密技术,包括密码加密、字段加密、存储加密、传输加密、认证加密以及应用加密,可以保护数据不因数据库服务器被盗、内部管理员或者不安全的网络传输而导致泄露。
  • 应用机器学习的方法识别加密流量中的恶意行为在网络安全方面是必要的, 高效、准确、实时地对互联网流量的精确分类与识别是用户行为分析、流量管理、应用安全监测、 内容计费等应用的前提和基础。随着电商、搜索和...
  • 基于深度学习的网络加密流量分类与入侵检测框架基于深度学习的网络加密流量分类与入侵检测框架I. 介绍II. DFR框架A. 预处理过程B. DFR过程1. 基于一维CNN的DFR分类器2. 基于LSTM的DFR分类器3. 基于SAE的DFR分类器4. ...
  • 网络连接加密之Tor篇-隐藏自己的所在地 引用: ...
  • 众所周知,WEB服务存在http和https两种通信方式,http默认采用80作为通讯端口,对于传输采用不加密的方式,https默认采用443,对于传输的数据进行加密传输 目前主流的网站基本上开始默认采用HTTPS作为通信方式,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 260,161
精华内容 104,064
关键字:

怎么连接有加密的网络