2021-2022-1 20211428《信息安全专业导论》第12周学习总结
作业信息
班级:2021-2022-1信息安全专业导论
作业要求
作业目的:
- 计算机网络
- 网络拓扑
- 云计算
- 网络安全
- Web
- HTML,CSS,Javascript
- XML
作业正文
教材学习内容总结
计算机科学导论
第十七章:
1.各级安全
信息安全:用于确保正确访问数据的技术与政策。
保密性:确保数据被保护,免受未经授权的访问。
完整性:确保数据只被合适的机制修改。
可用性:授权用户以合法目的访问信息的程度。
风险分析:确定关键数据风险的性质和可能。
2.阻止未授权访问
用户认证:验证计算机或软件系统中特定用户凭据的过程。
鉴别凭证:用户访问计算机时提供的用于识别自身的信息。
智能卡:具有嵌入式内存芯片的卡,用于识别用户,进行访问控制。
生物特征:用人的生物特征识别用户并进行访问控制。
密码标准:创建密码时遵守的一套准则。
密码管理软件:以安全的方式帮助你管理密码等敏感数据的程序。
验证码:一种软件机制,用来验证一个网络表单是由一个人提交的,而不是一个自动化的程序。
指纹分析:将扫描指纹与用户指纹的存储副本进行比较,用于用户身份验证的技术。
3.恶意代码
恶意代码:一种计算机程序,尝试绕过正当的授权保护执行未许可的功能。
病毒:能够自我复制的恶意程序,通常嵌入在其他代码中。
蠕虫:一种独立的恶意程序,目标通常是网络资源。
特洛伊木马:伪装成善意资源的恶意程序。
逻辑炸弹:一种恶意程序,被设置为在某些特定系统事件发生时执行。
杀毒软件:为检测,删除和防止恶意软件而设计的软件。
密码猜测:通过系统地尝试来判断用户密码,从而获取对计算机系统的访问的企图。
网络钓鱼:利用网页伪装成受信任系统的一部分,从而诱使用户暴露安全信息。
欺骗:恶意用户伪装成许可用户对计算机系统进行的攻击。
后门:程序的一个问题,知道它的任何人都可以利用它对计算机系统进行特殊的或未经许可的访问。
缓存溢出:计算机程序的一个缺陷,会导致系统崩溃,并让用户具有更高的访问权限。
中间人:一种安全攻击,即通过获取关键数据截取网络通信消息。
4.密码学
密码学:与编码信息有关的研究领域。
加密:将明文转换为密文的过程。
解密:将密文转换为明文的过程。
密码:一种用于加密和解密文本的算法。
替换密码:将一个字符替换成另一个字符的密码。
凯撒密码:将字符移动字母表中的一定数量位置的替换密码。
转换密码:将消息中的字符重新排列的密码。
路径密码:将消息放到网络中并按照特定方式进行遍历的转换密码。
密码分析:解密不知道密码或加密密钥的消息的过程。
公开密钥密码:一种加密方法,其中每个用户都有两个相关的密钥,一个是公开的,一个是私有的。
数字签名:附加在消息中的数据,利用消息本身和发送者的私有密钥以确保消息的真实性。
数字证书:发送者认证的用于最小化恶意伪造的公开密钥的表示。
5.保护你的在线信息
安全策略:描述约束或行为的书面声明,包括其用户提供的信息。
GPS:一种利用卫星来精确定位任何GPS(全球定位系统)接收器的系统。
wiki:允许多个用户对内容进行编辑和修改的网站。
教材中的问题及解决过程:
都有什么加密解密的方法:
1.Base64位加密(可加密解密)
最简单的加密方式,没有密钥,这种方式只要让别人拿到你的密文,就可以直接解密,只能用来迷惑,一般情况下不单独使用,因为真的并没有什么卵用~可以和其他加密方式混合起来,作为一层外部包装。
import base64
data = “abc”
加密
m = Base64.encodestring(data)
print m #得到一个base64的值
解密
date = Base64.decodestring(m)
2.MD5加密(加密不可逆)
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。(小贴士:为啥MD5加密算法不可逆呢~ 按道理来说有加密方式,就会有解密方式呀?因为MD5加密是有种有损的加密方式,比如一段数据为’123’,我在加密的时候,遇到1和3都直接当做是a,加密后变成了’a2a’,所以解密的时候就出现了4种组合’323’‘121’‘123’‘321’,数据一多,自然找不到原始的数据了,当然这种方式加密的密文也不需要解密,需要的时候直接发送原始密文就好了~只是看不到密文原本的内容)
import hashlib
import base64
data1 = “abc”
data2 = ‘def’
hash = hashlib.md5()
多个文件多次加密
hash.update(data1)
hash.update(data2)
value = hash.digest()
print repr(value) #得到一个二进制的字符串
print hash.hexdigest() #得到一个十六进制的字符串
print base64.encodestring(value) #得到base64的值
3.sha1加密(加密不可逆)
SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,加密后的数据长度更长。它对长度小于264的输入,产生长度为160bit的散列值。比MD5多32位。因此,比MD5更加安全,但SHA1的运算速度就比MD5要慢了。使用方法和MD5其实是一样的~
import hashlib
单个文件一次加密
value = hashlib.sha1(‘This is a sha1 test!’).hexdigest()
print value #得到一个十六进制的字符串
4.AES加密(需要密钥才能解密)
AES加密为对称密钥加密,加密和解密都是用同一个解密规则,AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为"状态(state)",因为密钥和加密块要在矩阵上多次的迭代,置换,组合,所以对加密快和密钥的字节数都有一定的要求,AES密钥长度的最少支持为128、192、256,加密块分组长度128位。这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。
from Crypto.Cipher import AES
密钥必须是16,24,32位的
key = ‘1234567890123456’
data = ‘abc’
BS = 16
加密函数,如果text不足16位就补足为16位,
pad = lambda s: s + (BS-len(s) % BS) * chr(BS - len(s) % BS)
加密
cipher = AES.new(key)
encrypted = cipher.encrypt(pad(m))
解密
cipher = AES.new(key)
encrypted = cipher.decrypt(pad(m))
5.RSA加密(公钥加密,私钥解密)
它是目前最重要的加密算法!计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。甲乙双方通讯,乙方生成公钥和私钥,甲方获取公钥,并对信息加密(公钥是公开的,任何人都可以获取),甲方用公钥对信息进行加密,此时加密后的信息只有私钥才可以破解,所以只要私钥不泄漏,就能保证信息的安全性。
import rsa
先生成一对密钥,然后保存.pem格式文件,当然也可以直接使用
(pubkey, privkey) = rsa.newkeys(1024)
pub = pubkey.save_pkcs1()
pubfile = open(‘public.pem’,‘w+’)
pubfile.write(pub)
pubfile.close()
pri = privkey.save_pkcs1()
prifile = open(‘private.pem’,‘w+’)
prifile.write(pri)
prifile.close()
load公钥和密钥
message = ‘hello’
with open(‘public.pem’) as publickfile:
p = publickfile.read()
pubkey = rsa.PublicKey.load_pkcs1§
with open(‘private.pem’) as privatefile:
p = privatefile.read()
privkey = rsa.PrivateKey.load_pkcs1§
用公钥加密、再用私钥解密
crypto = rsa.encrypt(message, pubkey)
message = rsa.decrypt(crypto, privkey)
print message
sign 用私钥签名认证、再用公钥验证签名
signature = rsa.sign(message, privkey, ‘SHA-1’)
rsa.verify(‘hello’, signature, pubkey)
总结上周考试错题
无
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 18/20 | |
第二周 | 200/400 | 2/4 | 18/36 | |
第三周 | 100/500 | 1/5 | 16/52 | |
第四周 | 100/600 | 1/6 | 16/68 | |
第五周 | 50/650 | 3/9 | 17/85 | |
第六周 | 100/750 | 2/10 | 16/101 | |
第七周 | 100/850 | 3/13 | 18/119 | |
第八周 | 200/1050 | 2/15 | 16/135 | |
第九周 | 200/1250 | 2/17 | 17/152 | |
第十周 | 400/1650 | 2/19 | 21/173 | |
第十一周 | 100/1750 | 3/20 | 18/191 | |
第十二周 | 100/1850 | 3/23 | 17/208 |