这两周,加班,周末团建,朋友喊出去吃饭看电影……似乎好多好多事情,都能成为不看书的理由啊!但归根结底,还是自己懒惰了。
这次看的是计算机安全。我才加入项目时,就在改安全,直到今天,已经近一年了,还是没改完安全。办公桌周围熟悉的面孔倒是少了不少,我竟从刚进来时的萌新,变成了别人眼中有经验的人了!
没看之前,我也看过不少安全方面的东西,加密、SQL注入,要用占位符不能直接拼,前台不能写表名SQL语句(这个很坑,是前人有个大佬在前台封装了个好用的控件),响应和请求不能有敏感信息……
看看这本书里是怎么理解“安全”的吧!
安全,一直是我们希望拥有的东西,就像理财时我们希望能保本并且盈利一样,书中举了个例子:Alice和Bob是一对私下里保持秘密关系的人;他们当然希望相互之间的通信是安全的。
安全通信,需要的特性:机密性(报文需要加密)、报文完整性(发送的内容未被改变)、端点鉴别(和我通信的人,是我想通信的那个人吗?)、运行安全性(防火墙)。
入侵者可能做的操作:窃听(看到2人的报文)、修改2人之间的报文。
应对这个问题,做出的应对就是加密。和我工作里做的处理一样嘛。
这边提到了密码学原则。我知道的是,我们现在系统里用的是对称加密,这在之后肯定是需要改变的。
密码学就是,发出报文前加密,这样在传输过程中传的就是密文,接收方接受时先解密,再查看报文。这样就实现了传输过程的加密,接收人获取的信息则是密文,查不到有效信息。
所有密码算法,都是一种东西替换另一种的思想。然而加密算法是公开的……这就需要密钥了。
对称加密技术,块密码与流密码,块密码,把加密的报文处理为k比特的块,每块独立加密,为了加密一个块,采用一对一映射的方式。举了几个对称加密的函数例子,我们项目里用的正是AES啊!
然后,RSA,一堆公式,反正就知道他是个加密算法的标准就行了。
为确保报文完整性,需要用到数字签名与端点鉴别。
接收方需要知道,报文的发送源头确实是那个发送方,并且报文在中途没被改变。
密码散列函数:散列值是唯一的,入侵者不可能替换。
报文鉴别码:就是一个共享密钥,和报文一起生成个散列(这不就是hash码吗!我们发包时也这样验证,压缩包获取hash码,每个现场用密钥弄一下,对比下hash码,确保邮件发过去的内容是我们这边要发的那个。)
数字签名:就是给个不会重复的字符串?公钥与私钥的概念还是。
端点鉴别:人类世界,鉴别一个人的方式有许多,但在计算机世界却不一样。简单来说,应该就是生成个token值一起发给接收方,确保我是我。
来源:https://www.cnblogs.com/weixin-tt/p/11258321.html