每一个可以努力的日子,都是一份厚礼。
信息安全
应用密码学:加密,解密,数字签名,证书……
VPS 防止 SSH 暴力登录尝试攻击
2012 8月 22nd
VPS 屏蔽扫描网站的 IP
2012 8月 17th
前段时间博客经常性地无法访问,网站宕机。SSH 上去看进程,发现大量 php-fpm 占用系统资源,查看服务器的 Nginx 日志,就知道发生了什么事情。个别 IP “友情”为我的站点扫描漏洞,瞬时并发连接很大。我知道大家也没什么恶意,只是用黑客工具比较兴奋,拿 www.lovelucy.info 练练手而已嘛。但是博主很穷,小站搭建在一个配置并不高的免费 VPS 上,折腾不起,压力很大,结果一不小心让各位搞成 DoS 拒绝服务攻击了,真是惭愧。
又一次运维,恶意 js 脚本注入访问伪随机域名
2012 7月 8th
我们的服务器又出入侵事故了。有客户的 html 网页底部被插入了一段 js 脚本,导致访客打开网页时被杀毒软件警告网站上有恶意代码。在黑链 SEO 中这是常见的手法,但奇特的地方就在于我们这次捕获到的代码,会根据当前的时间戳生成一个(伪)随机域名,然后定时访问。看上去目的并非是 SEO。
记一次运维,一个 Linux 木马
2012 4月 22nd
上个月数据中心的多台服务器接连被人挂马,又有客户的网站被 DDOS,公司的运维整个都处于一种被打了鸡血的亢奋状态,连我手上的项目都被部门老大停了,调去帮运维。第一次见到 Linux 下面的木马,突然想起来,还是值得记录一下。
FlySSH领翔网络优惠码
2012 1月 3rd
Nginx配置SSL证书部署HTTPS网站
2011 10月 1st
RSA读取密钥——使用openssl编程
2011 1月 4th
RSA是基于数论中大素数的乘积难分解理论上的非对称加密法。在此密码术中,使用公钥(public key)和私钥(private key)两个不同的密钥:公钥用于加密,它是向所有人公开的;私钥用于解密,只有密文的接收者持有。
举例:小红希望安全地发送一条消息给小明,消息明文为m,小明的公钥为K+,小明的私钥为K-。通信过程为,小红使用K+加密m,成为密文K+(m),传送给小明,小明收到后使用K-解密这个密文得到原始消息明文,即m = K-(K+(m))。
具体的密钥生成算法如下。随机选择两个大素数p和q(比如每个都是1024 bit),计算n = pq, n’ = (p-1)(q-1). 选择一个e (e小于n) 与n’互质。计算d使得ed = 1 mod n’.则公钥为(n, e),私钥为(n, d). 注意p和q都应该保密。
加密过程为c = m^e mod n
解密过程为m = c^d mod n
以上为原理简介。下面是openssl API编程应用读取密钥文件的示例源代码: 更多 >
DSA签名与验证——使用openssl编程
2011 1月 4th
和手写签名一样,数字签名可以为我们验证文档的作者、签名的时间,从而鉴明消息的内容是真实可靠的。它的目的和MAC类似,只是使用的是公钥加密体系。
和RSA加密解密过程相反,在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性。这个方法完全可以基于RSA来实现,但是在DSA中,我们会更有效率地做这件事情。 更多 >
MD5哈希散列生成摘要——使用openssl编程
2011 1月 3rd
取任意长度的消息,生成一个固定长度的散列值,或者叫做摘要。哈希函数的实现都是公开的,它广泛应用于文件完整性检测、数字签名中。登录密码也有用到哈希函数,一般网站在数据库中不是直接存储的用户密码,而是密码的哈希值,这样即使数据库暴露,攻击者仍然是不知道密码的明文的。
这要求Hash函数拥有以下特性:一是单向性,即不可逆性,我们无法从哈希值反过来得到原文。二是冲突碰撞抵御能力,即找到两个不同的消息原文,他们的哈希值相同,这在计算上不可行。
实际上,MD5已经不再安全。在2005年,我国山东大学王小云教授成功破解MD5算法,使得使用普通电脑在数小时内即可找到哈希碰撞,这在国际密码学领域引发地震。 更多 >