HTTPS,SSL,加密解密杂谈

根据wikipedia上的定义,HTTPS其实就是把HTTP协议架在SSL/TLS协议之上。因此HTTPS的安全是依靠TLS协议来保障的。SSL协议是TLS协议的前身。它是一个早期由netscape公司开发的安全协议。 它的1.0版本没有公开发布过。在经历了SSL 2.0和3.0版本之后,IETF对其进行了标准化,此后称之为TLS协议。 TLS的1.0版本和SSL3.0的差别极其细微。 现在TLS已经发布了 1.0, 1.1 和 1.2三个版本。

HTTPS/TLS协议的主旨是在不安全的网络上建立安全的新到,主要防范的目标是“窃听”和“中间人攻击”。针对这两个目标,采取的有效手段是对数据加密传输,和身份认证。

为了进行身份认证,HTTPS使用了由国际电信联盟制定的X.509数字证书标准。因此依赖于证书认证机构(certificate authorities)对数字证书的认证。关于这一点,需要结合非对称加密相关的细节才能很好的理解。用户使用浏览器访问的站点需要下发自己的数字证书,由用户的浏览器对站点的证书进行认证。当认证失败的时候,大多数浏览器会弹出提示,用户可以选择离开或自行承担风险继续浏览。

TLS协议的原理是,在server和client之间传输的数据不是明文的,而是经过一种对称加密算法加密的。这个加密算法的密钥则通过一个非对称加密算法来交换。在数据交换之前需要有一个握手阶段。 握手阶段会交换双方支持的协议版本,加密算法,并最终确定本次数据传输会话中将要使用的协议版本号,加密算法等。此外在握手阶段还会使用非对称加密算法交换一个密钥,用于本次会话中数据传输时对数据做对称加密。 其结果是,对称加密的密钥是短期临时的(每个session重新生成),而非对称加密算法的公钥/私钥对则是长期的。这么做的原因是出于性能的考量。非对称加密算法通常加解密都非常消耗系统资源。这么一来就解决了数据安全传输的问题。剩下的问题就是身份认证。

TLS协议工作在HTTP协议的下层,TCP协议的上层。它会将所有的数据包进行加密然后再传输。
继续阅读“HTTPS,SSL,加密解密杂谈”

svn命令笔记

在远程svn服务器上创建一个目录:
svn mkdir https://svn_server_url/svn/path/dirname -m “some description”

从svn服务器上checkout下来一个目录。 会在当前目录下创建目录。
svn co https://svn_server_url/svn/path/dirname

查看当前目录下文件的状态。例如 svn服务器上不存在的文件,会以一个问号来表示。
svn st

将文件纳入到svn版本管理中。 可以用通配符。
svn add {filename}

提交
svn commit -m “some note”

更新当前目录
svn up

(全文完)