当前位置: 首页 > news >正文

1个空间做两个网站网站设计步骤有哪些

1个空间做两个网站,网站设计步骤有哪些,百度关键词seo优化,网站媒体作风建设年工作总结前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 关于加密 在解释SSH、SSL与HTTPS协议之前我先介绍一下非对称加密协议。在1976年以前#xff0c;所有的加密都采用对称加密#xff0c…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 关于加密 在解释SSH、SSL与HTTPS协议之前我先介绍一下非对称加密协议。在1976年以前所有的加密都采用对称加密既A使用某种加密规则对信息加密B收到信息后逆向加密规则解密数据。这通信方式产生了一个难以解决的问题A如何安全的把加密规则通知B 在1976年有两位数学家提出了一个崭新的非对加密的概念 1.A生成一对两把密钥公钥和私钥。公钥是公开的任何人都可以获得私钥则是保密的。 2.B获取乙方的公钥然后用它对信息加密。 3.A得到加密后的信息用私钥解密。受这个思路的启发三位数学家Rivest、Shamir 和 Adleman 设计了一种具体实现上面描述的非对称加密的算法以他们三个人的名字命名就是目前在计算机领域应用非常广泛的非对称加密算法RSA加密算法。这样网络上传输的数据都经过公钥加密然后用私钥解密就算被第三方截获也无法解密出原始数据。想深入理解非对称加密解密的原理可以看这里。 虽然非对称加密很安全很强大但是它也有缺点相对于对称加密它计算量更大计算时间更长。所以在大规模数据的安全通信场景中普遍采用非对称加密技术来交换对称加密密钥之后的通信都采用对称加密技术加密。 SSH 维基百科中对SSH协议的定义如下 Secure Shell缩写为SSH由IETF的网络工作小组Network Working Group所制定SSH为一项创建在应用层和传输层基础上的安全协议为计算机上的Shell壳层提供安全的传输和使用环境。 传统的网络服务程序如rsh、FTP、POP和Telnet其本质上都是不安全的因为它们在网络上用明文传送数据、用户帐号和用户口令很容易受到中间人man-in-the-middle攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据然后再冒充用户把数据传给真正的服务器。 而SSH是目前较可靠专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密也能够防止DNS欺骗和IP欺骗。 SSH之另一项优点为其传输的数据可以是经过压缩的所以可以加快传输的速度。SSH有很多功能它既可以代替Telnet又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。 相信大家看了上面的段定义也是云里雾里。用最通俗的方式来解释一下SSH。有这么一个场景有一个服务器在互联网的另一头你需要远程登录到服务器来执行一些命令配置这台服务器。这个时候你和服务器之间就需要有数据通信。假设客户端叫A服务器叫B。 要实现通信最简单的想法就是客户端服务器之间建立一个TCP连接这样你的指令就可以通过TCP连接从A传输到B。再仔细想想不对A与B之间需要通信的数据中间经过了C、D、E、F等网络路由器设备这其中任何一个路由器被黑客攻破你们之间的通信数据就毫无保留的被别人看到。 所以你需要用一个密钥把数据加密吧。这样A和B之间的数据就算被第三方看到他们也不知道内容是什么。可是这里又存在一个问题A如何通知B或者B如何通知A它的密钥是什么呢要知道只要数据是在互联网上传输就有被截获的可能。密钥被截获了你就没有秘密可言了。 现在我们需要考虑一个安全的方式来传输密钥让我想想——非对称加密 A、B之间建立TCP连接B生成一对公私密钥B把公钥发送给AA生成一个用于加密数据的密钥K既我们想通知给客户端的密钥之后的数据通信都使用这个密钥加密这个密钥不可让第三方知道A把K用公钥加密发送给BB解密后从此A、B之间的通信数据都用K密钥进行加密和解密。 这样假如中间的C、D、E截获了A发给B的K密钥内容的数据包可是这个密钥是用B服务器生成的公钥加密过的只有B服务器知道如何解密。于是我们的数据很安全了。。。 看起来很简单不是吗一切大功告成。等等...如果黑客H埋伏在了A和B之间的某一个路由器上他假冒B生成一对公私密钥然后把公钥发送给A这样A与H之间就建成了一个加密通道A把所有信息发送给HH截获A的信息在假冒A与B通信。如此一来A、B之间的通信就完全暴漏给了H而A、B却完全不知道这就是有名的“中间人”攻击。 为解决这个问题SSH协议采用由人工判断公钥的fingerprint是否可信的方式。当使用ssh命令连接服务器时命令行会提示如下信息: The authenticity of host 168.30.9.213 (no hostip for proxy command) cant be established. RSA key fingerprint is 23:42:c1:e4:3f:d2:cc:37:1d:89:cb:e7:5d:be:5d:53. Are you sure you want to continue connecting (yes/no)? 输入yes之后才会连接到远程服务器同时这个信息会存储到用户的.ssh/known_hosts文件中下次再登录的时候会检查known_host文件如果存在相同的公钥信息就不在提示用户确认了。 这种认证方式假设想登陆服务器的用户已经知道服务器公钥作为服务器的用户他自然有渠道得知服务器公钥。fingerprint其实就代表公钥可以看成是公钥的一个压缩版。有了这个步骤如果有中间人想冒充服务器B发送公钥给A它不可能生成一对和B生成的一样的公私密钥他发送给A的公钥必然与B服务器的不同所以用户就可以根据printfinger判断所连接的服务器是否可信有没有被中间人冒充。 SSH的实现细节 上面只是粗略讲解SSH的安全协议的设计思路实际上SSH通信协议在安全通信过程中分了几个阶段每个阶段又细分了几个步骤具体的可参看SSH原理简介。几个主要阶段如下 协议协商阶段服务端认证阶段客户端认证阶段数据传输阶段 客户端认证 这里我想单独谈谈客户端认证因为对于使用linux远程登录功能的系统管理员来说能有直观感觉的也就是是这个环节了。一般我们能接触到的的认证方式有两种 密码认证Public Key认证 密码认证很好理解就是我们在登录远程linux服务器的时候提供用户名和密码这里面稍微提示一下在你的用户名和密码通过网络传输给服务器之前已经经过了服务器认证协商阶段这是一个安全的加密信道已经建立所以你的用户名和密码都是加密后传输给服务器的保证不会被第三方截获。 每次登录都要输入密码很麻烦且密码如果简单的话可能还会被暴力破解。Public Key认证提供了一种更安全便捷的认证客户端的方式。这个技术也用到了非对称加密技术由客户端生成公私密钥对然后将公钥保存在服务器上。认证的过程大体如下 客户端发起一个Public Key的认证请求并发送RSA Key的模数作为标识符。如果想深入了解RSA Key详细 --维基百科服务端检查是否存在请求帐号的公钥Linux中存储在~/.ssh/authorized_keys文件中以及其拥有的访问权限。如果没有则断开连接服务端使用对应的公钥对一个随机的256位的字符串进行加密并发送给客户端客户端使用私钥对字符串进行解密并将其结合session id生成一个MD5值发送给服务端。*结合session id的目的是为了避免攻击者采用重放攻击replay attack。服务端采用同样的方式生成MD5值与客户端返回的MD5值进行比较完成对客户端的认证。 为更广大群众设计的SSL与TLS 上面wiki上也有写SSH其实是专门为shell设计的一种通信协议它垮了两个网络层传输层和应用层。通俗点讲就是只有SSH客户端和SSH服务器端之间的通信才能使用这个协议其他软件服务无法使用它。但是其实我们非常需要一个通用的建立在应用层之下的一个传输层安全协议它的目标是建立一种对上层应用协议透明的不管是HTTP、FTP、还是电子邮件协议或其他任何应用层协议都可以依赖的底层的可安全通信的传输层协议。 网景公司于1994年为解决上面的问题设计了SSLSecure Sockets Layer协议的1.0版本但并未发布直到1996年发布SSL3.0之后开始大规模应用于互联网服务。可能很多人听所过TLSTransport Layer Security。它相当于是SSL协议的一个后续版本他是SSL经过IETF标准化之后的产物详细参考传输层安全协议下文中所说的SSL协议也包括TSL。 跟SSH相比SSL所面临的问题要更复杂一些上面我们提到SSH协议通过人工鉴别Public Key的printfinger来判断与之通信的服务器是否可信不是伪装的中间人。可是SSL是为了整个互联网上的所有客户端与服务器之间通信而设计的他们彼此之间不可能自己判断通信的对方是否可信。那么如何解决这个问题呢 在构思解决方案之前我先讲一个概念数字签名。。。。 想了一下还是不写了。。。 阮老师的这篇blog对数字签名解释的非常到位良心推荐如果有不了解数字签名概念的读者建议先看看阮老师的文章。 回到上面我们所要解决的问题以浏览器和网站服务器之前的安全通信举例首先浏览器要求和某WEB服务器建立安全的SSL连接通道这时需要服务器的公钥用来加密浏览器生成的通信密钥发给WEB服务器以确定通信密钥。假如浏览器接受到一个公钥它如何知道这个公钥确实是来自那个WEB服务器而不是中间的某个攻击者截获了它的请求假扮WEB服务器给它的假密钥浏览器总不能记录所有可信任站点的公钥吧。 解决问题的思路是这样的在SSL协议中引入了一种类似公共机关类似于我国的国家公证处的概念就是我们熟知的CA(数字证书认证机构)。它为浏览器发行一个叫数字证书的东西。这个东西大体上如下图所示其中比较重要的信息有 对象的公开密钥数字签名 有了数字证书浏览器在建立SSL连接之前并不只是简单获取服务器的公钥而从服务器获取数字证书。数字证书里有服务器的公钥并且有CA给这个证书签发的签名。这个签名其实是证书内容的摘要经过CA私钥加密生成的。这样浏览器得证书内容和摘要并用CA的公钥每个浏览器都存储着一些权威CA的公钥对数字签名解密也得到证书的摘要比对两个摘要如果相同说明证书是真的且未经过修改。信任问题就这么解决了如果上面这段话不好理解的话再次建议读一读阮老师的数字签名是什么。 原文见https://www.jianshu.com/p/5e3f9dfd2cb4
http://www.huolong8.cn/news/25119/

相关文章:

  • 做网站需要后端吗莱芜的招聘平台
  • 做网站IP设计研发网站
  • 富阳网站公司.net做网站后台
  • 网站开发流程人物职业培训学校加盟合作
  • 深圳微信商城网站设计价格wordpress防止爬虫
  • 青岛建设管理局网站wordpress中文采集插件
  • 智能建站程序一键免费建站
  • 制造行业网站建设天津seo优化排名
  • 保险网站推荐wordpress短链接关键字
  • 北京网站开发制作网页设计与网站建设文档
  • 做网站的公司北京有哪些深圳网站创建公司
  • 深圳网站优化哪家好企业解决方案部
  • 织梦网站如何备份教程个人怎么注册小型公司
  • 做资讯网站怎么挣钱wordpress插件 自动翻译
  • 学院网站建设 需求分析wordpress中文标签
  • 山东网站开发wordpress 顶部图片
  • 自己建设网站流程本周国内新闻
  • 中国太平保险集团官方网站贵州旅游网站建设策划书
  • 大连网站的建设网络维护公司创业计划书
  • 三桥做网站培训教育行业网站建设方案
  • 专业制作银行存单seo查询工具网站
  • 建行网站注册用户名怎么填有没有专业做盐的网站
  • 网站综合排名信息查询文山知名网站建设
  • 随州哪里学做网站上传的网站打不开 index.asp
  • 做网站的属于什么专业?网站备案的要求是
  • 提高网站排名怎么做ie禁止访问网站
  • 怀化网站优化公司推荐wordpress文字转图插件
  • 为什么手机网站跳转页面上学网站开发有用么
  • 北海网站制作公司响应式网站建设哪家好
  • 广东省网站备案四川淘宝网站建设方案