HTTP安全方面的进化史:
Basic Access Authorization;
Digest Access Authoriazation;
SSL
TLS
1、firefox 没携带“用户名+密码”去访问www.jxceo.com 服务器返回: 401 Unauthorized
2、firefox 在包头的可选字段Authorization携带“用户名+密码”再次访问www.jxceo.com,但是用户名和密码不对,服务器返回: 401 Unauthorized
(包头的Authorization字段是个可选字段,如果服务端的资源不需要进行认证,则服务端不会去看有没有Authorization信息;如果服务端的资源需要进行认证,则服务端会看该字段,如果该字段没填或填错了,服务端都会返回401 Unauthorized,表示为通过认证。)
(思考一个问题:这里的用户名和密码不是明文的方式传递的,那是什么呢? 一种可能是单向加密算法,然后服务端拿正确的用户名和密码也进行单向加密,然后比对两密文。这种方式有两问题,一个是明文到密文的映射关系不一定是一一映射,也就是说两个不同的明文可能被映射到同一个密文/明文碰撞/;另一个情况是黑客并不需要知道明文是什么,只需要捕获到密文。 另一种可能是可逆的加密,比如Base64,那么这种手段对于专业级黑客来讲跟明文毫无区别,只能拦住一些普通用户。因为Base64算法是公开的,而且算法是可逆的。
结论:进行Base64并不是出于安全因素考虑。)
3、wikipedia对Http Basic Auth的解释 (访问权限控制)
http://en.wikipedia.org/wiki/Basic_access_authentication
In the context of an HTTP transaction, the basic access authentication is a method designed to allow a web browser, or other client program, to provide credentials – in the form of a user name and password – when making a request.
(如果服务端的某个url资源被设置成了需要进行Basic Access Auth,那么客户端在进行请求的时,被要求在包头可选字段Authorization携带用户名和密码信息,以便服务端进行验证。)
Before transmission, the username and password are encoded as a sequence of base-64 characters.
(携带的“用户名和密码”信息,在传输前,被进行了Base64编码。也就是用户名和密码不是以明文的形式传输,而是进行了Base64编码。)
For example, the user name Aladdin and password open sesame would be combined as Aladdin:open sesame – which is equivalent to QWxhZGRpbjpvcGVuIHNlc2FtZQ== when encoded in Base64. Little effort is required to translate the encoded string back into the user name and password, and many popular security tools will decode the strings "on the fly".
(客户端进行Base64后,服务端接收到后需要解码,都很快,花不了多少代价。)
package com.eyesmore.art;
import org.apache.commons.codec.binary.Base64;
public class Base64Demo {
public static void main(String[] args) {
String userName = "Aladdin";
String password = "open sesame";
String authCombination = userName + ":" + password;
String authBase64 = new String(Base64.encodeBase64(authCombination.getBytes()));
System.out.println("authCombination = "+authCombination);
System.out.println("authBase64 = "+authBase64);
String authRecovery = new String(Base64.decodeBase64(authBase64.getBytes()));
System.out.println("authRecovery = "+authRecovery);
}
}
Wrongly, people believe that this base-64 encoding is done because of security, to prevent it from being read directly by a person. Encoding is done, instead, to avoid breaking the HTTP protocol data encoding because of bizarre (and more secure) passwords containing special HTTP characters, such as newlines.
(值得纠正的一点是:人们常常误认为之所以进行Base64编码的原因是出于安全因素的考虑,其实是为了防止密码中含有怪异的字符,这些字符和http的协议保留字符冲突,比如换行。)
The basic access authentication was originally defined by RFC 1945 (Hypertext Transfer Protocol – HTTP/1.0) although further information regarding security issues may be found in RFC 2616 (Hypertext Transfer Protocol – HTTP/1.1) and RFC 2617 (HTTP Authentication: Basic and Digest Access Authentication).
4、
- 大小: 10.3 KB
- 大小: 11.1 KB
分享到:
相关推荐
在本文中,我们将深入探讨如何使用POST方式通过HTTP基本认证访问API,并给出一个Java代码示例。 在HTTP请求中,当服务器要求客户端进行身份验证时,会返回一个401 Unauthorized状态码,同时在响应头中包含`...
WAS 提供了多种安全认证机制,包括基于基本认证、摘要认证、LTPA(Lightweight Third-Party Authentication)、Kerberos 和数字证书等。这些机制能够帮助我们构建一个强大的安全环境,保护数据不被未经授权的访问。 ...
本文将深入探讨CXF安全访问的一个重要方面:HTTP基本认证(Http Basic Auth)。这是一种简单但有效的身份验证机制,适用于对Web服务进行安全控制。 HTTP基本认证是基于HTTP协议的,它在请求头中包含一个Base64编码...
身份认证技术是网络安全的核心组成部分,它确保了只有经过验证的用户才能访问受保护的资源。在计算机网络中,身份认证是通过一系列验证过程来确定用户身份的过程,这些过程旨在确认用户的真实身份,以授权他们访问...
- 描述了客户端设备运行格尔安全认证网关所需的操作系统、浏览器版本等基本信息。 #### 7. 产品支持联系方式 - 提供了官方的技术支持热线、电子邮件等联系方式,以便用户在遇到问题时能够及时获得帮助。 #### 8. ...
接着,通过 CXF 的配置,将这个服务暴露为 SOAP 或 RESTful API,并启用基本认证,确保只有授权的客户端才能访问。 客户端则会通过 CXF 的动态代理或直接调用生成的客户端代码来调用服务。在发送请求前,客户端需要...
身份认证系统是网络安全的核心组成部分,其主要目的是确保只有合法用户能够访问受保护的网络资源和服务。身份认证技术的目的是在用户尝试访问系统时确认他们的身份,以防止未授权的访问和潜在的安全威胁。 1.1 前言...
以上就是海康威视OpenAPI安全认证库的基本介绍,通过这个库,Python开发者可以更便捷地集成海康威视的设备和服务,实现监控系统的自动化管理和控制。在实际项目开发中,需要注意的是,必须遵循海康威视的API使用政策...
在本文中,我们将深入探讨如何使用Apache CXF V3.2.4实现带有安全认证的Web服务调用。Apache CXF是一个开源框架,它允许开发者...通过理解这些基本步骤和安全概念,你可以有效地保护你的Web服务免受未经授权的访问。
身份认证与访问控制是网络安全领域中的关键组成部分,其主要目标是确保只有授权的用户能够访问特定的资源。身份认证是安全系统的第一道防线,它旨在鉴别用户身份,防止非法访问。认证过程通常涉及识别(确定身份)和...
Apache 认证访问是网络服务器安全措施的一种,用于保护网站内容免受未经授权的访问。在Linux环境中,Apache作为最流行的Web服务器,提供了多种方法来控制谁可以访问特定的网页或目录。以下是对Apache认证访问的详细...
- **作为访问控制服务的一种必要支持**:确保只有经过认证的用户才能访问受保护的资源。 - **提供数据起源认证**:确保数据的来源是可靠的。 - **对责任原则的支持**:在审计追踪过程中记录与某一活动相关的用户身份...
在实战运用中,Form认证可以与其他安全机制结合,如角色授权(Role-Based Authorization)来控制不同用户组的访问权限。例如,使用`<location>`元素在Web.config中针对特定路径设置授权规则,或者在代码中使用`...
1. **身份认证与访问控制**:确保只有授权的用户才能访问系统资源,采用多因素认证机制加强认证安全性。 2. **数据保护**:采取加密措施保护数据的安全性和隐私,特别是在传输过程中的数据保护尤为重要。 3. **安全...
《GBT22239-2008_信息安全技术_信息系统安全等级保护基本要求》是中华人民共和国国家标准化管理委员会发布的一项国家标准,旨在为我国的信息系统安全等级保护提供基础性的指导和技术规范。这一标准的出台,标志着...
华为网络设备MAC安全认证 MAC地址认证是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法,它不需要用户安装任何客户端软件,用户名和密码都是用户设备的MAC地址。网络接入设备在首次检测到用户的MAC...
在微服务架构中,安全认证和鉴权是至关重要的,因为它们确保了服务之间的通信以及用户访问的正确性和安全性。随着从单体应用向微服务的转变,传统的认证和鉴权机制面临着新的挑战。本文将探讨这些挑战以及相应的解决...
### 安全访问:如何在Elasticsearch中实现用户认证和授权 在当前的数据驱动时代,Elasticsearch作为一款高效且强大的数据处理与分析工具,其应用已经非常广泛。但随之而来的是对于数据安全性的需求越来越高。为了...
以下将详细阐述访问控制的基本概念: 1. 访问控制的定义:访问控制旨在管理和限制不同实体(主体)对信息资源(对象)的访问权限。主体可以是人、进程或设备,而对象则包含各种信息载体,如文件、目录、网络资源等...
学习访问控制技术与身份认证协议,不仅有助于理解网络安全的基本原理,还能为从事系统管理员、网络安全工程师、开发人员等相关职业提供必要的理论支持。通过深入学习,我们可以更好地理解和实施各种安全策略,保护...