存档

2013年9月 的存档

Nginx rewrite对post数据的影响

2013年9月26日 1 条评论

一、rewrite 对post影响
昨天有个同事跟我咨询他的post请求,rewrite 之后,post的数据没有传过去。遂跟他要了下配置,示意如下:

{
servername bar.com
 location /abc {
 rewrite ^ http://foo.com/abc;
}
}

看到配置就不难理解了,原因是如果rewrite 后面的参数是以http开头,那么实际就是会redirect,给客户端返回临时重定向302,这时客户端会收到302后对foo.com发起get请求(通过firebug跟踪可见)。所以之前的post请求的数据就不复存在了。上面这种情况应该使用反向代理proxy_pass。
阅读全文…

[HTTPS]-进阶-SSL session resumption

2013年9月26日 没有评论

一 说明
二 抓包验证
三 nginx配置
四 多台前端入口思考

一 说明
从上篇文章中可以了解到,整个SSL 握手的CPU(计算premasterkey和相关keyblock)和网络开销(下发证书)都非常巨大,为了减少这种性能消耗,SSL 提供了一种session resumption机制。如果客户端与服务器已经通信一次,它就可以跳整个握手段而直接行据输。握手中最耗的部分就是确立 Pre_master Secret。而经resumption的握手允新的连接使用上一次握手中确立的Pre_master_secret。就避免了公用密钥加密所需的的计算。
客户端与服务器第一次行交互,它建一个新的连接和一个新的session。如果服务器准备session resumption,就会在ServerHello 消息中给客户端一个SessionID,并把会话过程中的Master secret(保存这个后就不用在计算Pre_master_secret了,起到了减小cpu开销的作用)保存起供以后引用。客户端再次初始化一条与服务器的连接,它就会在其ClientHello 消息中使用之前的SessionID。而服务器查找cache,匹配到后通过在其ServerHello 中使用相同的SessionID同意session resumption。服务器和客户端就会跳余下的握手部分,而使用保存的Master secret生所有的加密密。
阅读全文…

[HTTPS]-工作流程

2013年9月26日 没有评论

工作流程(握手流程)
一、 抓包:服务端ssldump 客户端wireshark
二、 流程详细说明
三、 一些说明

一 抓包
1.1 SSL Handshake 介绍
SSL握手过程即完成身份认证和建立加密通道的过程,分为四种。
Full Handshake : 全流程握手,C/S双方从无到有建立SSL连接;
Resum session Handshake : C/S双方曾经建立过连接,但中途断了,SSL会话信息还有保留,只需要执行部分握手流程就可建立SSL连接;
Server Re-negotiation Handshake : 已经建立了SSL连接,但server端为了某些原因(比如安全性)要求重新对密钥进行协商,也只需要执行部分握手流程;
Client Re-negotiation Handshake : 已经建立SSL连接,但client端为了某些原因要求重新协商,只需执行部分握手流程。
阅读全文…

分类: 技术笔记 标签:

[HTTPS]-基础-密码学入门

2013年9月26日 没有评论

一 密码学概论
一般的数据加密模型:
01
图中秘钥K是一串秘密的字符串(或比特串)
加密公式 Y=Ek(X)
密文Y 等于明文X通过以K为参数的加密函数的运算后得到的值。
解密公式 X=Dk(Ek(X) )
通过运算以K为参数的解密函数,得到明文。
这里我们假设密钥K是一样的,实际上可以是一样的,也可以是不一样的(即使是不一样,这两个密钥也存在某种相关性)
在数据传输中间会有入侵者,窃听和篡改,我们加密的目的就是让这些入侵者都无功而返,但是这是一个动态的过程,没有永恒的安全,只有相对的安全,所以密码学是一个持续发展的。
阅读全文…

分类: 技术笔记 标签:

浅析Linux磁盘与文件系统(EXT2)

2013年9月23日 没有评论

一 磁盘简介

首先说明一下硬盘的物理组成:
圆形的磁盘,主要记录资料;
机械手臂,与机械手臂上的磁头;
主轴马达,可以转动磁盘,让机械手臂的磁头在磁盘上读写资料。

磁盘的组成:
磁区(Sector)为最小物理存储单元,每个磁区512 bytes;
将磁区组成一个圆,那就是磁柱(Cylinder),磁柱是分区(partition)的最小单位;
第一个磁区最重要,里面有:(1)主要开机区(Master boot record, MBR)及分区表(partition table),其中MBR占 446bytes,而 partition table占64bytes。

磁盘分区:
告诉操作系统 我这个磁盘在此分区可以存取的区域由A 磁柱到B磁柱之简单区块。也就是说,磁盘分区就是指定分区的起始与结束磁柱。
那么指定分区的磁柱范围记录在哪里?就是第一个磁区的分割表中,但是分割表仅有64bytes,因此最多只能记录4笔分区记录,这四笔记录为三个(primary) 一个(extended) 分区,其中扩展分区可以再划分出逻辑分区(logical),只有主分区和逻辑分区才能被格式化
阅读全文…