IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

安全

共 391 篇文章

IT 2012-12-24 22:40:39 / 累计浏览 4,004

数论的应用-RSA公钥算法

这篇讲的是RSA公钥算法背后的数学之美。作者从伟大的数学家欧拉切入,引出了现代非对称加密的基石——RSA算法。文章首先点明了对称加密的局限,随后介绍了1976年公钥密码思想的诞生,以及1977年RSA算法的正式提出。 核心部分,文章深入浅出地拆解了RSA所依赖的数论工具:欧拉函数用于计算与某数互质的数的个数,而欧拉定理(费马小定理的推广)则为算法的数学正确性提供了保证。随后,文章分步展示了RSA密钥生成与加解密的全过程:如何选取两个大素数p和q来构造模数n,并由此推导出公钥e和私钥d;以及如何用公钥加密、私钥解密。 为了让理论落地,文中还用了一个具体数字例子(M=52, p=17, q=11, e=7, d=23)演示了整个加密解密流程,让抽象公式变得清晰可感。最终,文章回归数学原理,简要说明了为何这样构造能实现解密的正确性。 整篇文章将深奥的数论概念与实际的密码学应用串联起来,展现了从纯理论到关键技术的奇妙旅程,让你理解为什么这个看似无用的数学分支,最终能成为守护互联网安全的隐形卫士。

本机暂存
IT 2012-12-24 13:34:44 / 累计浏览 5,202

Mcrypt响应慢的一个原因

作者遇到一个棘手问题:一个新上线的PHP脚本在并发20个请求时,Apache响应时间急剧飙升,但服务器CPU、内存等各项指标却完全正常。脚本使用了Mcrypt扩展进行加密操作。 问题的根源藏在一个看似不起眼的函数调用里:`mcrypt_create_iv`。作者发现,当未显式指定参数时,该函数在Linux下默认使用`/dev/random`来生成初始化向量。而`/dev/random`的工作原理是依赖系统的中断事件来积累熵池(随机性来源)。在并发请求较多、但系统本身又不够繁忙、中断产生不足的情况下,进程就会阻塞等待足够的随机数可用,从而导致整体响应缓慢,这正是“服务器指标正常但响应慢”的诡异现象。 解决办法是,在调用时显式指定使用`/dev/urandom`作为随机源,即添加`MCRYPT_DEV_URANDOM`参数。因为`/dev/urandom`不依赖系统中断,能够持续提供随机数。修改后,高并发下的延迟问题立即消失。 作者也补充了背景:PHP之所以默认选择可能阻塞的`/dev/random`,是因为理论上`/dev/urandom`在极端情况下可能被预测,安全性在设计上有细微的取舍。这也提醒我们,在查阅官方文档时,下方的用户评论往往藏着解决实际“坑”的关键线索。

本机暂存
IT 2012-12-23 23:12:20 / 累计浏览 8,702

sshd+chrome+switchsharp翻墙

这篇讲的是如何在Linux系统下,通过SSH隧道结合Chrome浏览器的SwitchySharp插件,为团队成员快速搭建一条稳定的访问通道。作者从团队获得了一个付费SSH翻墙账号的背景出发,解决了此前免费账号质量不稳定、无法流畅访问Google、Twitter等网站的问题。 文章的核心方案分为三步。首先,利用`putty-tools`中的`plink`命令建立本地SOCKS代理,关键参数是`-D 127.0.0.1:7070`,并将其封装为可执行脚本`fan.sh`以便一键启动。其次,为Chrome浏览器安装代理切换插件`proxy-switchysharp`。最后,详细配置插件,设置代理类型为SOCKS5,并配置自动切换规则,例如通过正则`(google|facebook|twitter|youtube){1}`来区分哪些网址需要走代理。 完成上述配置后,只需运行脚本并启用SwitchySharp的“自动切换模式”,即可实现对目标站点的代理访问。整个过程清晰、可操作性强,为需要特定网络环境的开发者提供了一个轻量且有效的解决方案。

本机暂存
IT 2012-12-21 13:38:39 / 累计浏览 8,082

网址加密(URL加密)(RC4、PHP、密钥长度可变)

网址加密是一个常见需求,但作者发现网上很难找到现成的可用案例。他系统梳理了主流方案,指出Base64只是编码并非加密,且字符集不适合URL;自定义加密算法则违背了“安全寓于密钥”的现代密码学原则。 作者进一步对比了AES与RC4两种算法。AES虽然强大,但加密哪怕一个字节的结果也超过30字符,长度随输入增长过快,不适合加密长网址。而RC4在保证安全性和速度的同时,生成的密文长度要短得多,更适合URL场景。 最终,作者选择了RC4作为加密方案,并直接分享了PHP实现的完整类库与调用示例。他演示了如何通过密钥加密字符串并解密,让这份“缺失”的网址加密方案能直接用于实际项目。

本机暂存
IT 2012-12-19 13:45:29 / 累计浏览 6,601

网站密码存储方案比较

这篇讲的是在GPU算力飞速发展的今天,网站该如何安全地存储用户密码。作者对比了几种主流的不可逆加密方案。 传统的一次MD5或加盐的两次MD5方案,虽然使用广泛,但面对如今动辄超CPU数十倍算力的GPU集群,暴力破解已成可能,安全性堪忧。 文章重点分析了两种更安全的现代方案:PBKDF2和bcrypt。PBKDF2(如Django 1.4默认的实现)通过成千上万次迭代的HMAC-SHA256运算,大幅增加暴力破解的时间成本。bcrypt则在实现上更为简洁,但需注意它不支持超过55字符的密码。 作者指出,两者各有拥趸,没有绝对的优劣,选择取决于具体场景。文中提供了Django和PHP的PBKDF2实现代码,方便读者直接参考。对于正在构建用户系统的开发者来说,这是一份清晰实用的方案选型指南。

本机暂存
IT 2012-12-19 13:39:15 / 累计浏览 6,421

md5到md5破解的一些科普

这篇讲的是如何正确理解MD5这一经典哈希函数及其“被破解”事件。文章作者从MD5的多对一映射本质出发,解释了为何它是“不可逆”的,进而引出了密码学中关键的“碰撞”概念。 核心对比在于“无弱碰撞”与“无强碰撞”的区别。作者用生动的生日悖论说明,找到一对碰撞(强碰撞)的复杂度约为O(sqrt(m)),远低于遍历的O(m),这为攻击提供了理论可能性。文章重点阐述了王小云教授的突破性贡献:她找到的算法能比生日攻击更快地构造出强碰撞,而非通过密文反推明文。这并不意味着MD5可以直接“解密”,而是破坏了它在验证文件完整性或数字签名时的可靠性基础。 后续提到的“预测大选”实验,正是利用了快速构造前缀碰撞的技术,以一种巧妙的方式展示了算法漏洞的实际应用。最终文章落脚于现实影响:尽管MD5在部分安全场景已弃用,但其漏洞提醒我们,从非官方渠道下载文件时,仅比对MD5值已不足以保证安全。

本机暂存
IT 2012-12-16 23:56:24 / 累计浏览 4,862

宽带网络运营商劫持网站的技术分析

这是一篇关于宽带运营商劫持用户网页流量的深度技术排查记录。作者从自家网络出现异常弹窗广告入手,发现无论访问大小网站,网页都会被远程注入 iframe,导致浏览器右下角弹出无关的 Flash 广告。 文章的核心在于技术分析过程。通过直接发送 HTTP 请求而非依赖浏览器缓存,作者捕获了被篡改的完整响应包,揭示了运营商如何用一个“空壳”页面加载原始网站并侧载第三方广告脚本。更进一步,作者通过 Whois 查询追踪到广告域名(istreamsche.com)指向北京集奥众和公司,并在联系客服时发现,连运营商自家技术人员的办公网络也未能幸免,将问题根源指向了上级运营商或高层决策。 面对这种普遍存在的“流量劫持”,文章给出了一个切实可行的用户端解决方案:通过浏览器插件(如 User Agent Switcher)清空或修改发送给网站的 User-Agent 标识。由于大部分网站不依赖此字段进行功能判断,该方法能有效绕过运营商的劫持规则,恢复干净的网页浏览。

本机暂存
IT 2012-12-16 23:46:00 / 累计浏览 4,281

跨越千年的RSA算法

作者从古希腊几何学中“可公度线段”的概念出发,讲述了数论中一系列精妙思想的演进。文章首先通过欧几里得求最大公度单位的直观例子,自然引出“辗转相除法”这一核心算法,并证明其效率。随后,以正方形边长与对角线不可公度的发现为例,揭示了无理数在古希腊时期就已出现的历史趣闻。 作者进而将话题转向数论中更深入的概念——互质与中国剩余定理。文中用生活中的公交车班次例子,生动解释了互质与最小公倍数的关系,并引出了《孙子算经》中的经典问题,展示了中国剩余定理的雏形与魅力。 这篇长文并非对教科书内容的简单复述,而是作者基于为《程序员》杂志撰写文章时积累的大量素材与个人思考,重新梳理的一条连贯知识脉络。他以牺牲部分严谨性为代价,力求用更直观、可读的方式,展现从古典数论走向现代公钥加密(如RSA算法)的奇妙旅程。

本机暂存
IT 2012-12-11 22:00:01 / 累计浏览 6,926

浅谈php web安全

这篇笔记从一位PHP开发者的实践出发,系统总结了Web安全开发中那些容易被忽略却至关重要的要点。作者强调,安全意识是开发者必备的素养,不能因项目内部或认为用户“善良”而放松警惕。 文章从基础的PHP安全配置讲起,比如关闭错误提示以避免信息泄露、禁用`register_globals`等危险功能。核心部分则深入数据验证,指出必须对用户输入进行严格校验,包括类型、长度和危险字符,并特别提醒了表单元素后端验证、字段名避免暴露等常见疏漏。 在防注入环节,作者详细演示了如何判断SQL注入漏洞,并列举了多种常见攻击手法,如万能密码、通过`union`语句猜解表结构等。针对防御,提供了从使用`intval()`处理数字参数,到结合`addslashes`等函数进行过滤的代码示例。此外,文章还简要涵盖了XSS、CSRF以及防盗链等其他常见Web攻击的防护思路。 整篇文章并非高深的理论,而是一份扎实的“避坑指南”,旨在帮助PHP开发者在编码阶段就植入安全基因,从根源上减少漏洞。

本机暂存
IT 2012-12-08 23:00:21 / 累计浏览 4,840

一个登陆认证系统

从代理项目《狂刃》的登录认证需求出发,作者描述了一个在时间压力下临时设计的简化认证协议。该协议基于HTTP,旨在为非Web应用在不安全信道上建立认证流程。核心设计包含游戏服务器(G)、认证平台(E)和客户端(C)三方交互:G生成一次性盐值(salt),C用用户密码对盐值进行加密签名后发送给E验证;E验证通过后,用相同算法生成发给G的认证令牌,最终由C转发给G完成双向确认。这种设计让G和E无需保持通信,只需预共享密码,降低了服务器状态管理的复杂度。 文章的重点落在实际部署中的一次“拍脑袋”引发的事故。合作方在未通知的情况下,使用作者用Lua快速编写的调试用认证服务器,对600人进行了压力测试。初期认证大面积失败,排查发现根因在于服务器的网络配置:该服务器配有电信和网通双线IP,而作者最初将服务绑定地址(bind address)默认设为127.0.0.1,合作方在部署时仅将其改为了服务器的其中一个IP,导致部分客户端无法连接。最终将绑定地址改为0.0.0.0才解决了问题。这个意外插曲揭示了一个常见陷阱:内部开发用的快速工具一旦被外部环境直接使用,其默认配置或简化实现可能成为隐形炸弹,即使核心逻辑(如作者后续补上的并发处理)经受住了压力,但外围配置的疏漏同样会导致生产事故。

本机暂存
IT 2012-11-27 13:44:15 / 累计浏览 5,808

国内团购网前端严重安全漏洞– 以满座网为案例分析

这篇讲的是作者以满座网为例,深入剖析了一个典型的前端安全漏洞。文章从日常技术排查出发,演示了如何利用浏览器开发工具(Firebug)和简单的jQuery命令,绕过团购页面对商品购买数量的前端限制。 作者发现,尽管网站前端代码设置了最多999件的购买上限,但这一限制仅存在于客户端。通过修改本地参数,理论上可以提交极大数量的订单。这个漏洞的根源在于“前端不信任后端,后端不信任前端”这一基本安全原则被忽视。仅依赖前端进行关键业务逻辑校验(如数量、价格),而缺乏后端的有效复核,为系统留下了风险。 案例的警示意义很直接:在Web 2.0时代,JavaScript和Ajax的便利不应以牺牲安全性为代价。对于涉及交易的系统,任何关键数据都必须在服务端进行严格校验。文章也借此提醒开发者,构建可靠的应用需要将安全成本纳入整体规划,不能心存侥幸。

本机暂存
IT 2012-11-05 22:15:20 / 累计浏览 7,445

一种抵御 DDoS 攻击的 IP 追踪技术

这篇文章来自作者2008年的一个备忘录,他决定将这个关于 DDoS 攻击防御的早期想法电子化。文章探讨了一个在 IP 协议基础上的扩展技术,即“差分确定性数据包标记”,旨在帮助服务器在遭受 DDoS 攻击时识别攻击流量并定位来源。 他提出的方案核心在于,让网络边缘的接入路由器对经过的数据包 IP 头进行标记。利用一个关键假设——正常流量源 IP 与路由器接口 IP 通常仅在末尾若干位不同,路由器可以仅标记这些不同的位,而不是冗长的完整路径信息。算法中甚至用上了 IP 头里闲置的 IDENTIFICATION 字段来承载这些标记。 这一改进带来了几个实际好处:大部分正常数据包仅需一个包就能完成回溯,极大减轻了路由器计算负担,同时也避免了正常 IP 分片受到标记操作的影响。 当然,作者自己也坦言,这个想法创新有限,且需要在运营商全网部署,工程实现难度极高,因此当年并未发表。但它清晰地展示了一个从实际网络假设出发、优化现有协议以解决特定安全问题的技术思考过程。

本机暂存
IT 2012-10-22 23:26:36 / 累计浏览 5,182

大佬与大话 之 阿里:绝不和360合作

这篇讲的是中国互联网史上一段颇有戏剧性的商业关系转折。作者从2006年阿里一封措辞激烈的公告切入——公告宣称旗下所有业务将“永远不和周鸿祎投资的公司合作”,起因是360安全卫士对阿里系产品“3721插件”的致命打击。然而五年后,淘宝却低调地与360展开了产品推广合作,让当年的“永远”二字显得有些尴尬。 文章没有止步于复述这段“打脸”历史,而是深入剖析了阿里态度转变背后的战略考量。作者排除了短期广告收入、交易安全需求等表面解释,将视角拉高到当时的电商竞争格局。他指出,随着腾讯以巨大的用户优势强势介入电商领域,阿里真正需要防范的是腾讯。而360恰好与腾讯交恶,拥有的浏览器和客户端流量不容小觑。 “敌人的敌人,可以争取成为朋友。”作者最终将阿里与360的破冰,比作中美建交初期的试探性合作。这个比喻精准地点明了商业世界中永恒的利益驱动:过去的恩怨在更大的战略威胁面前,往往需要被重新衡量。文章揭示了一个现实——在巨头博弈中,没有绝对的永恒盟友或敌人,只有不断变化的权衡与布局。

本机暂存
IT 2012-10-22 21:57:48 / 累计浏览 6,322

WordPress安全建议

这篇指南从WordPress高达50%的市场占有率出发,直接点明了一个现实:网站越受欢迎,越容易成为黑客的目标。它并非空谈理论,而是针对站长们普遍关心的安全问题,提供了一套从基础到进阶的实操建议。 核心方案围绕几个关键点展开:首先是加固访问入口,强烈建议摒弃默认的admin用户名,并搭配高强度随机密码。其次是保持系统更新与备份,强调每周检查版本更新,并使用插件或脚本定期备份数据库与文件,这是安全底线。 文章的重点在于推荐了几款实用的安全插件,如WordPress Firewall 2用于拦截常见攻击,BulletProof Security通过.htaccess强化防御,以及Better WP Security来隐藏常见漏洞。此外,它还提到了使用官方主题市场、配置CDN与SSL证书等辅助手段。 总的来说,文章汇集了一系列具体、可落地的安全配置方法和工具推荐。它清晰地传达了一个观点:虽然没有绝对的安全,但通过这一系列扎实的加固措施,能大幅度降低WordPress网站被入侵的风险。

本机暂存
IT 2012-09-20 13:56:43 / 累计浏览 5,883

anti spam杂谈

这篇讲的是邮件系统的垃圾过滤与论坛防灌水技术的内在联系。作者从一个比较有趣的角度切入,把这两个看似不同场景下的反垃圾实践放在一起对比讨论。 文章重点从技术层面展开,没有延伸到运营或法律等其他维度。你可以看到,邮件反垃圾主要依赖发件人信誉、内容特征(比如关键词、链接分析)和机器学习模型的动态学习,目标是在海量邮件中高精度识别并过滤垃圾邮件。而论坛防灌水更侧重于实时性,常用验证码、发帖频率限制、行为模式分析(比如短时间内重复发帖)等手段,更强调拦截的即时效果。 尽管目标一致(都是对抗垃圾信息),但两者在技术路径上各有侧重:邮件系统更注重长期、批量的模型准确率,而论坛则需要平衡用户体验与即时防护。这种对比能帮助读者理解,反垃圾策略如何根据不同的应用环境和攻击模式进行适配。

本机暂存
IT 2012-09-20 13:45:06 / 累计浏览 2,681

周鸿祎的战争

这篇讲的是周鸿祎在科技行业中的经典战役——3Q大战。作者从360与腾讯的激烈竞争出发,详细回顾了这场引发全网关注的软件冲突。事件背景是2010年,360推出隐私保护器指控腾讯QQ窥探用户隐私,腾讯则强制用户卸载360软件,导致用户电脑出现兼容性问题,甚至蓝屏死机,数亿用户被迫在两者间二选一。 文章核心观点指出,周鸿祎以“用户利益”为旗帜,巧妙利用舆论战,将技术竞争转化为公众事件。他通过社交媒体和媒体采访,不断放大腾讯的“垄断”行为,最终迫使腾讯在工信部的介入下妥协,双方恢复兼容。作者分析发现,这场战争不仅是产品之争,更是商业模式和用户心智的较量:360

本机暂存
IT 2012-09-19 23:36:23 / 累计浏览 5,460

个人数据安全 (2):保护即时通讯隐私

这篇讲的是如何保护即时通讯的隐私,作者从“我们每天的聊天真的安全吗”这个疑问出发。文章指出,即便使用了主流通讯工具,聊天记录仍可能因设备失窃、云端同步或服务商访问而泄露,而且我们发出的“消息发给谁、何时在线”这类元数据,也常被忽视地收集和分析。 作者的核心方案是分层次加固:首先,推荐采用经过独立审计的端到端加密协议(如Signal协议),确保只有通信双方能解密内容;其次,深入探讨了如何对抗元数据泄露,例如通过洋葱路由或使用能最小化元数据收集的App;最后,文章没有停留在工具推荐,而是提供了具体的设备设置指南,比如关闭云备份、启用应用锁、管理密钥与安全号码验证等实操步骤。 这篇文章的结论很明确:隐私保护不是单一开关,而是涵盖工具选择、设置习惯和安全意识的多层防御体系。它没有停留在理论层面,而是给了读者一份从聊天软件到手机系统都可逐步落实的检查清单,帮助我们在数字交流中守住私密空间。

本机暂存
IT 2012-09-19 23:35:49 / 累计浏览 4,700

个人数据安全 (1):用GnuPG保护个人隐私数据

这篇是个人数据安全系列的开篇,作者从构建一套实用的隐私保护体系出发,选择GnuPG这个经典开源工具作为起点。文章没有停留在理论层面,而是详细演示了如何用GnuPG为文件加密、实现邮件安全签名与加密,并解释了其背后的非对称加密原理。核心操作流程包括生成密钥对、公钥分享与私钥保护,作者还特别强调了密钥管理中“信任”与“撤销”的实际意义,给出了避免密钥泄露的具体建议。 对于想动手的读者,文中清晰区分了对称加密与非对称加密的适用场景,并指出GnuPG在跨平台文件传输、敏感通信中的核心价值。系列后续计划覆盖更多数据安全环节,而这第一篇扎实地铺好了技术基础——它不只告诉你一个工具怎么用,更勾勒出个人主动管理数据安全的基本逻辑框架。

本机暂存
IT 2012-09-16 23:16:43 / 累计浏览 12,622

慎用国内云存储,提防数据被保留。

作者从一次愉快的个人使用体验出发,分享了对国内云存储服务安全性的深度反思。他最初被酷盘(Kanbox)在UI设计和文件同步功能上的便捷性所吸引,但随着使用深入,文章笔锋一转,揭示了国内云服务普遍存在的“数据保留”隐患。 核心观点直指一个关键但常被忽略的条款:根据国内法律法规要求,服务商可能依法留存用户上传的数据。这意味着,即便内容私密,也可能被平台长期存储甚至审查。这对于程序员备份代码、创作者保存作品或个人存放敏感文件,都构成了潜在风险。 文章并未给出替代方案,而是通过自身经历敲响警钟。它启发读者重新审视“免费”与“便利”背后的数据所有权问题,在选择云服务时,除了功能与成本,更需将服务商的运营环境与隐私政策置于考量核心。

本机暂存
IT 2012-09-03 23:14:24 / 累计浏览 5,443

神探tcpdump第六招

这篇讲的是tcpdump过滤表达式的实战技巧,作为系列文章的第六篇,作者这次思路非常直接——用例子说话。 文章精选了 `man tcpdump` 手册中的经典示例,逐个拆解。它不从复杂的语法规则讲起,而是告诉你“想抓取特定主机的HTTP流量,表达式怎么写”、“如何过滤TCP标志位”这类具体问题。每个例子都对应一个真实分析场景,直观展示了如何快速构建出有效的过滤器来定位目标数据包。 比起啃文档,这种从应用反推语法的方式更容易上手。读者能很快明白,一个好的过滤表达式是如何像精准的渔网,从海量网络包中只捞出自己关心的“鱼”。对于需要频繁进行网络抓包和问题定位的工程师来说,这套“例子库”提供了可立即套用的模板。

本机暂存