一、SSH
1.密码学基础
1.1 密码学分类
- 密码学与密码
密码学(Cryptology)是研究信息系统安全保密的科学;
密码(cipher)是指逐个字符或者逐位地进行变换,它不涉及信息的语言结构; - 密码编码学与编码
密码编码学(Cryptography)主要研究对信息进行编码,实现对信息的隐藏;
编码(code)则是指用一个词或符号来代替另一个词; - 密码分析学
密码分析学(Cryptanalytics)主要研究加密消息的破译或消息的伪造;
1.2 保密通信系统
消息与加密
明文与密文
1.3 密码学提供的三个功能
- 鉴别:消息的接收者应该能够确认消息的来源–>入侵者不可能伪装成他人;
- 完整性:消息的接收者应该能够验证在传送过程中的消息没有被修改–>入侵者不可能用假消息代替合法消息;
- 抗抵赖性:发送消息者事后不可能虚假地否认他发送的消息
1.4 算法与密钥
现代密码学要求密码算法公开,密钥保密;密钥用K表示,K可以是很多数值里的任意值
1.4.1 对称加密算法原理
- 密钥K的可能值的范围叫做密钥空间,加密和解密运算都使用这个密钥,即运算都依赖于密钥,并用K作为下标表示,
- 加/解密函数表达为:
- 流程
- 对称加密算法介绍
- 对称密码体制的加密密钥和解密密钥是相同的;
- 对称密码技术相比于非对称密码技术最明显的优势是:速度快,一般适用于对大量的数据进行加密和解密;
- 对称密码技术包括:DES、AES、3DES
1.4.2 非对称加密算法原理
- 有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下,
- 加密和解密的函数表达式为:
- 流程
- 非对称加密算法介绍
- 公开密钥加密(public-key cryptography)也称为非对称(密钥)加密,该思想最早由Ralph C.Merkle在1974年提出;
- 之后在1976年,WhitfieldDiffie(迪菲)与MartinHellman(赫尔曼)两位学者在现代密码学的奠基论文首次公开提出了公钥密码体制的概念;
- 公钥密码体制中的密钥分为加密密钥与解密密钥,这两个密钥是数学相关的,用加密密钥加密后所得的信息,只能用该用户的解密密钥才能解密;
- 如果知道了其中一个,并不能计算出另外一个;
- 因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质;
- 公开的密钥称为公钥(PK),不公开的密钥称为私钥(SK);
- 常见的公钥加密算法有RSA、ElGamal、背包算法、Rabin(RSA的特例)、Diffie-Hellman密钥交换协议中的公钥加密算法、椭圆曲线加密算法(EllipticCurveCryptography,ECC);
- 使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来),ElGamal是另一种常用的非对称加密算法;
- RSA简述
是第一个既能用于数据加密也能用于数字签名的算法;
RSA算法易于理解和操作,虽然其安全性一直未能得到理论上的证明, 但是它经历了各种攻击,至今未被完全攻破;所以,实际上是安全的;
目前只有短的RSA密钥才可能被强力方式解破;比起DES和其它对称算法来说,RSA要慢得多;速度慢一直是RSA的缺陷,一般来说只用于少量数据加密;
事实上RSA一般用于数字签名和对工作密钥的加密,对数据的加密一般采用速度更快的对称密码算法;
1.5 消息摘要与数字签名
1.5.1 基础
-
使用高强度的密码技术可以保证数据的机密性;
-
消息摘要
然而,密码算法的运行速度较慢,如果数据的价值(比如卫星拍摄的视频或图像,声音等大数据)不值得用密码技术对其进行保护,而只需保证其完整性时,人们迫切需要一种技术能实现高速的完整性鉴别;
-
数字签名
同时,为了防止发送信息的一方否认曾经发送信息,也需要一种技术来鉴别信息确实发送自某个密钥持有者;
1.5.2 消息摘要
-
消息摘要的目的是将消息鉴别与数据保密分开,其基本设想是:发送者用明文发送消息,并在消息后面附上一个标签,允许接收者利用这个标签来鉴别消息的真伪;
-
用于鉴别消息的标签必须满足以下两个条件
- 第一,能够验证消息的完整性,即能辨别消息是否被修改;
如何辨别消息是否被修改?- 为了辨别消息是否被修改,可以将一个散列函数作用到一个任意长的消息m上,生成一个固定长度的散列值H(m),这个散列值称为该消息的数字指纹,也称消息摘要(messagedigest,MD);
- 消息的发送者对发送的消息计算一个消息摘要M1,和消息一起发给接收者;
- 接收者对收到的消息也计算一个消息摘要M2,如果M2等于M1,则验证了消息的完整性,否则就证明了消息被篡改了;
- 目前使用最多的两种散列函数是MD5和SHA序列函数;
- 第二,标签不可能被伪造
如何保证标签不可能被修改- 为了保证标签不可能被伪造,发送方可以用密码技术对消息摘要M1进行加密保护,得到加密后的消息摘要C,接收方对C进行解密恢复M1,再与消息摘要M2比较,从而判断消息的完整性。加密后的消息摘要也称为消息鉴别标签;
- 第一,能够验证消息的完整性,即能辨别消息是否被修改;
1.5.3 数字签名
数字签名(Digital Signature)是指用户用自己的私钥对原始数据的消息摘要进行加密所得的数据,即加密的摘要;
- 原理图
- 信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得消息摘要M1,并与原始数据产生的消息摘要M2对照,便可确信原始信息是否被篡改。这样就保证了消息来源的真实性和数据传输的完整性;
- 为了保密消息,通常将公钥密码技术和对称密码技术结合起来使用
- 在发送方A随机生成一个对称密码算法的密钥K,然后用K对消息加密得到密文C并生成密文的数字摘要M,接着用A的私钥对K和M签名,将密文C和签名发送给接收方B;
- 接收方B进行相反的操作,就可以实现信息的保密传输及完整性验证;
2.ssh概要
2.1 摘要
SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一族协议,其目的是要在非安全网络上提供安全的远程登录和其他安全网络服务。如需要SSH的详细信息请参考www.ssh.com(SSH Communications Security Corporation的网站)和www.openssh.org(开放源码的OpenSSH组织的