【计算机系统】TLS传输层安全协议与加密Transport Layer Security and Cryptography(computer science)

要保证一个secure communication,必须满足以下三点:

1.private communication,两边的交流是私密的

2. integrity checks,确保数据是正确的且没有被改动过

3.authentication,确认双方的身份信息是正确的

Transport layer security(TLS)也叫做secure socket layer(SSL),是HTTPS的基础。允许客户机,服务器应用程序可以探测到安全风险,包括消息篡改(message tampering),消息拦截(message interception),消息伪造(message forgery)

服务器如何知道请求的是TLS协议?HTTPS用的是443端口,而不是80

TLS是transport layer protocol吗?不是,应该是算application protocol,但是在HTTP之下:

Presentation layer (6)

– Responsible for encryption, and data formatting (e.g., CR/LF vs LF)

• Session layer (5)

– Authentication, restoration of interrupted sessions

TLS是如何“握手”的


cipher suites指的是支持的加密算法。在hello阶段主要是双方确认支持的加密算法以及certificate(用来authenticaiton),在key exchange阶段

的key用来之后的加密(encrytion and decryption)。

Cryptography(加密学)包含了key,encryption和decrption

key是什么?是任何已知的信息

encryption可以把原数据(plain text)转换成乱码(cipher text),decryption把乱码转换成原数据

cipher指的是一种算法,可以理解为数学里的function,输入一段数据,通过计算输出另一段数据

世界上没有绝对的加密,总可以被brute force attack(暴力破解),我们的任务是让暴力破解的时间越久越好

有两种cryptography,symmetric(same key) 和asymmetric(public key crypto)

Symmetric Cryptography(对称加密)

即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

现代用的最多的是AES (Advanced Encryption Standard),AES 把数据分割成blocks然后去加密(encrypt)每个block。 AES 有不同的模式

– ECB, CBC, CTR, etc.

– Determines how each block is treated, and/or linked

ECB(electronic codebook):最简单的加密模式,可以并行化。需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。本方法的缺点在于不提供随机性,同样的明文块会被加密成相同的密文块;因此,它不能很好的隐藏数据模式。在某些场合,这种方法不能提供严格的数据保密性,因此并不推荐用于密码协议中。


下面的例子显示了ECB在密文中显示明文的模式的程度:该图像的一个位图版本(左图)通过ECB模式可能会被加密成中图,而非ECB模式通常会将其加密成右图。


CBC – Cipher Block Chaining 密码块链接:每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。



它的主要缺点在于加密过程是串行的,无法被并行化.

注意在加密时,明文中的微小改变会导致其后的全部密文块发生改变,而在解密时,从两个邻接的密文块中即可得到一个明文块。因此,解密过程可以被并行化,而解密时,密文中一位的改变只会导致其对应的明文块完全改变和下一个明文块中对应位发生改变,不会影响到其它明文的内容。

Asymmetric Cryptography(public key)非对称加密

非对称加密有公钥和私钥两种密钥,其中,公钥是公开的,不需要保密,私钥由个人持有,必须妥善保管和注意保密。加密和解密使用两种不同的密钥,是它得名的原因。RSA是非对称的一种加密方法


Diffie-Hellman Key Exchange (Symmetric)

它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥加密通讯内容。它是很多认证协议的基础,并且被用来提供传输层安全协议(TSL)的短暂模式中的前向安全性



Cipher Suite:加密格式

他是一个加密算法,密匙交换机制和参数的组合

Examples

– TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x0033)

– TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)

Public Key Signatures公开密钥认

是把加密和解密反过来,不是用public key来加密,而是用public key 解密。key holder用private key加密一个文件,然后如果任何人能用public key解密的话,说明这份文件是key holder 签的

但是如果文件太大怎么办?可以加密文件的hashcode

hash的特性

– Easy and fast to calculate

– Infeasible to reverse (important caveats here)

– Extremely unlikely two slightly different documents produce the same hash

salt(加盐值)

为啥需要salt?当所有网站都用一个sha,用户在所有网站都用一个密码,那一个网站被黑了,所有网站都gg。Salt 可以是任意字母、数字、或是字母或数字的组合,但必须是随机产生的,每个用户的 Salt 都不一样,用户注册的时候,数据库中存入的不是明文密码,也不是简单的对明文密码进行散列,而是 MD5( 明文密码 + Salt)。当用户登陆的时候,同样用这种算法就行验证。由于加了 Salt,即便数据库泄露了,但是由于密码都是加了 Salt 之后的散列,坏人们的数据字典已经无法直接匹配,明文密码被破解出来的概率也大大降低。


电子证书(Digital Certificate/Public key certificate)

是用于公开密钥基础建设的电子文件,用来证明公开密钥拥有者的身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)(Certificate Authority (CA))对这份文件的数字签名,以保证这个文件的整体内容正确无误。拥有者凭着此文件,可向计算机系统或其他用户表明身份,从而对方获得信任并授权访问或使用某些敏感的计算机服务。如果你信任签发的机构(一般来说是是根据浏览器的信任列表),就可以信任证书上的密钥,凭公钥加密与拥有者进行可靠的通信。


TLS有缺陷,Local TLS

建立本地的认证机构(CA)来安装证书,本地代理和杀毒软件就是用了此原理

Local proxy can intercept TLS connections

– Acts as a MITM

– Dynamically issues fake certificate using local CA

– Virtually invisible to the user

• Common practice for Anti-Virus/Web protection software

– Avast, Kaspersky, ESET

– Necessary to monitor and analyse TLS traffic

TLS有缺陷,在服务器端会用TLS代理来防止DDOS攻击


Key size密钥大小

要足够大以至于不被暴力破解,非对称加密会比对称加密大RSA – 2048 bits, AES – 128 bits

随机性

在加密里随机性很重要

– Key Generation

– Initialization vector (IV) generation for ciphers

– Padding

Randomness must never be reused or discoverable随机性必须保证不会被重复使用和被发现

生成好的随机性很难

而解密时

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容