Docker化你的所有Web服务

不是为了别的,就是想试试能多大程度的使用Docker来部署常用的Web服务,以及为我们带来了什么好处。我所常用的Web服务包括: 启用了HTTPS的Web服务。包括主页,博客,以及某站镜像 Ghost搭建的博客服务 科学上网服务 1.启用了HTTPS的Web服务 该服务除了使用nginx搭建基于80和443的服务外,很重要的是要定期维护来自于Let's Encrypt的免费SSL证书。而使用Docker后,就可以利用Docker内置的自动renew来完成证书更新工作了。我所使用的镜像是linuxserver/letsencrypt,命令如下: docker run --name=letsencrypt -v /home/tl/nginx:/config -e URL=tonylee.name -e EMAIL=tony1016@gmail.com -e SUBDOMAINS=veesp,story,so -e VALIDATION=http -p 80:80 -p…

关于CBC中Padding Oracle攻击的再解读——如何攻破HTTPS

为什么说是再解读呢?目前关于Padding Oracle攻击的介绍,比较好的文章包括的内容,都取自于这篇外文。但是,该文在论述一个关键问题,即如何确认Padding位数时,并没有提及,这让许多较真的读者会有很大的疑惑。本人亦如此。因此,我想再把思路做个梳理 1.分组密码和填充 常用的对称加密算法,如DES和AES,在用密钥加密数据时,只能加密和密钥长度相同的数据。对于超长数据,我们需要将其切分成块。这就带来一个问题,可能最后一个块,无法和密钥“对齐”(当然,这也包括原始数据本来就比密钥短的情况)。这就需要一些数据去填充最后的几位。常用的填充算法即***PKCS#5***,在数据填充中,使用缺失的位数长度来统一填充,说起来麻烦,上图即可明白: 即缺5位,就用0x05填充;缺2位,就用0x02填充;如果刚刚好,还要扩展出一个块,全用0x08填充。 2.初始向量和CBC加解密过程 如果每一个块都用同一个密钥加密,很容易使用统计学原理去分析和破解密文(原理大致如同e字母在英文单词中出现的概率是非常高的,因此通过统计分析,大致可能猜出X代表了e),为此CBC加密过程引入了一个初始向量,…