外媒解读Web安全核心PKI的四大致命问题

简介:

Web安全的立足根基在于复杂的PKI部署体系,但实际生活中得到正确部署的比例却非常有限,而且这一切都将随着摩尔定律的滚滚洪流灰飞烟灭。

我个人算是PKI(即公共密钥基础设施)的忠实拥护者。我热爱数学与密码学之美,也热爱它广泛的用途与适用场景。

过去二十多年当中,我曾经为众多私营及上市公司安装过PKI。原先那曾是我个人工作中的重要组成部分,但最近一段时间我发现这已经成了工作的全部内容。企业对于安全的要求已经达到前所未有的高度,而且越来越多的客户要么首次安装自己的PKI、要么打算对现有PKI进行升级以实现更理想的安全性与弹性。

但坦白地讲——而且作为一名经验丰富的从业者,大家可能会惊讶于我的结论——PKI可能已经无法帮助大家解决最主要的安全问题了。此外,PKI甚至很有可能在未来彻底被历史所淘汰。

下面我们来看PKI不再合适作为安全解决方案的四大核心理由:

1. PKI拥有太多活动组件

复杂性始终是理想计算机安全体系的最大天敌。活动组件越多,我们的业务体系就越可能存在安全漏洞,实现流程也会更加复杂。需要强调的是,即使是经过妥善设置的PKI,其活动组件数量也远超绝大多数计算机安全防御方案。

大家首先需要一套离线根证书机构(简称CA)。它必须切实离线,否则很容易受到攻击。接下来,大家需要两套或者更多CA来执行具体的证书分发工作。大家的CA需要受到HSM机制(即硬件安全模块)的保护,而这类硬件正好是PKI核心私有密钥的主要保护者。通常情况下,以上必要方案的总体成本会轻松突破10万美元。

另外,大家还需要两个甚至更多网站来存储CA自身的证书及CRL(即证书吊销列表)。在网络环境下,我们通常需要两个内部站点再加上两个外部站点实现配合。就目前的情况看,大部分PKI设计者都建议使用两台或者更多OCSP(即在线证书状态协议)服务器,其负责减少往来于客户端与CA服务器之间的CRL流量。

大多数PKI还包含有两台或者更多SCEP(即简单计算机注册协议)服务器,这样网络与移动设备也能够同样获得证书。此外PKI方案还涉及数十种其它组件,包括对象识别器以及签名等等。设计师与管理员需要了解每条密钥能够拥有怎样的长度,并考虑其可以在每款应用程序当中使用多长时间。

在以上工作结束之后,管理员还需要找到可行的办法为计算机及用户分发证书。他们该如何进行注册以获取证书?需要利用哪些因素来证明他们的身份?由谁来核准这些证书?证书要如何分发?每一款应用程序、设备以及操作系统都需要以彼此不同的方式加以处理。

而这种夸张的复杂性不仅意味着用户会被弄得一头雾水,就连大部分PKI管理员自己往往也弄不清状况。在我过去二十年的从业经历中,大概有5%的PKI并没能得到正确设置,而且大部分存在着多种错误。这些错误中相当比例属于关键性错误——而如果企业利用PKI作为安全策略的构建基础,那么问题就更为严重了。

2.即使PKI得到完美设置,效果仍然不够理想

更糟糕的是,即使大家已经对PKI进行了完美设置——其中不存在任何错误,它的实际效果仍然未必与预期相符……甚至根本不起作用!好吧,这么说也许有些偏激,但我要强调的是,用户以及应用程序往往倾向于忽略各类PKI错误。

大家都很清楚,浏览器地址栏左端的小锁头图标代表着该网站连接受到PKI的安全保护。

但是PKI离谱的复杂性意味着很多网站及应用程序当中都存在着PKI错误,这有可能导致小锁头图标消失或者处于未锁定状态。多数情况下浏览器会提醒大家当前网站的数字证书无效,并建议用户不要访问该网站。

但人们的通常反应是什么?忽略警告,继续访问该网站。

在检测到证书错误时,大多数应用程序都将无法正常“打开”。这种处理方式绝对必要。但如果浏览器也在发现PKI错误时强制阻止用户的访问,那么整个互联网体系将变得令人无法容忍。

3. PKI并不能解决最严峻的各类安全问题

尽管存在着第一点与第二点中的诸多状况,我仍然热爱PKI。如果用户、设备以及应用程序能够重视其警告内容,那么PKI的实际效果还是相当不错的。不过PKI目前面临的最大问题并非来自其自身。具体来讲,PKI能够解决的大部分问题并不是当下攻击者们的主要侵袭手段。

大多数攻击活动指向的是未安装修复补丁的软件,其次则是社交工程类木马。在大部分网络环境中,这两类因素造成了大约99%的成功攻击案例,而PKI对于解决此类问题完全束手无策。

如果大家无法在自己的网络体系上解决这两个问题,那么PKI根本帮不上什么忙。我就曾经向客户提供过这样的建议:“拥有完美PKI设置但仍然遭受攻击的客户比例,跟没能正确设置PKI但同样遭受攻击的客户几乎一样多。”这并不是PKI的错,毕竟如果用户不解决那么更大的问题,PKI完全是有心无力。

4.终有一天,PKI将彻底失去作用

这才是最重要的一点。终有一天,所有受到PKI保护的机密信息都会遭到泄露。没错,大家没看错,都会泄露。

终有一天,包含大量质数的密钥内容不再难以破解。公共密钥加密机制之所以能够起效,正是由于数学计算难度的存在。但当计算设备随着时间推移而愈发强大之后,加密机制将不再值得信赖。

举例来说,量子计算作出的最大承诺——无论其最终目标是什么——就是能够立即解开PKI保护之下的机密信息。也许在不久或者更远的未来,我们可以利用量子计算机轻松查看受保护内容。而当这一天来到时,大部分公共加密机制都将土崩瓦解。

任何拥有量子计算机的攻击者都能窥探到他的人机密。而且与大家担心的一样,世界上规模最庞大的间谍组织已经掌握着大量加密信息,因此在量子计算设备走向成熟(部分原型机甚至已经存在于实验室当中)后,他们将能够破解具体内容并将其公诸于众。

据称,当量子计算机成为现实之后,惟一可行的加密机制就是使用量子密码。到时候一切将成为钱的问题——没错,就是钱的问题。大家需要投入大量资金来购置足够的量子加密计算设置实现量子级别的信息保护。目前几乎任何一种设备,无论其价格多么低廉、体积多么小巧,都能够运行现存的全部加密算法及程序。而量子计算的出现将彻底改变这一切。

我们将再次进入第二次世界大战的时代,那时只有部分政府才能够控制足够的计算资源,进而挖掘到其他人保存在计算设备中的秘密。而其他人则只能“身如柳絮随风飘”,直到量子加密机制便宜到“飞入寻常百姓家”。


作者:核子可乐


来源:51CTO


相关文章
|
24天前
|
安全 Ubuntu 应用服务中间件
Web服务器安全最佳实践
【8月更文第28天】随着互联网的发展,Web服务器成为了企业和组织的重要组成部分。然而,这也使得它们成为黑客和恶意软件的目标。为了确保数据的安全性和系统的稳定性,采取适当的安全措施至关重要。本文将探讨一系列保护Web服务器的最佳策略和技术,并提供一些实用的代码示例。
46 1
|
1天前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
9 3
|
8天前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
29 6
|
9天前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
14 5
|
21天前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
40 1
|
10天前
|
存储 安全 JavaScript
Web安全-XSS漏洞
Web安全-XSS漏洞
11 0
|
20天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
29 0
|
20天前
|
开发者 安全 SQL
JSF安全卫士:打造铜墙铁壁,抵御Web攻击的钢铁防线!
【8月更文挑战第31天】在构建Web应用时,安全性至关重要。JavaServer Faces (JSF)作为流行的Java Web框架,需防范如XSS、CSRF及SQL注入等攻击。本文详细介绍了如何在JSF应用中实施安全措施,包括严格验证用户输入、使用安全编码实践、实施内容安全策略(CSP)及使用CSRF tokens等。通过示例代码和最佳实践,帮助开发者构建更安全的应用,保护用户数据和系统资源。
34 0
|
20天前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
42 0
|
21天前
|
存储 SQL 安全
【绝密攻略】Flask应用如何抵御黑客入侵?七大安全技巧助你构建固若金汤的Web防线!
【8月更文挑战第31天】安全性是Web应用开发中的关键部分。Flask作为一款轻量级且高度可定制的框架,虽灵活但需开发者确保应用安全。本文介绍如何通过具体措施加固Flask应用,包括更新依赖项、启用CSRF保护、使用HTTPS、安全存储密码、防止SQL注入及清理用户输入等。通过示例代码展示如何在实际开发中应用这些策略,帮助提升应用安全性,为用户提供更可靠的服务。
42 0