1)传输层协议:
TCP(面向连接),UDP(面向无连接),SCTP(流控协议)
2)port(端口):传输层协议都会提供端口,
端口(port)是标记进程的地址,进程向内核注册才能使用某端口(独占)
任何一个进程占领某个端口之后,其他进程进不能使用了;
3)同一主机上的进程间通信:
IPC,message qoeue(消息队列),shm(共享内存),semerphor
4)不同主机间的进程通信:
通过套接字方式来实现(socket)
cip:port<-- -->sip:port(客户端ip和端口到服务端ip和端口)
5)监听模式:LINTEN(ip:port),
无论有没有人访问,它都要打开自己的进程,并监听在某个ip:port上,随时等待客户端请求;
为某些众所周知的应用,事先分配好一个固定的端口(比如http的80端口)
6)SSL :Secure Socket Layer
http-->ssl-->https
http协议一但调用了ssl就变成了https,从而能够完成安全通信
1.介绍
★ SSL 也就是Secure Socket Layer 叫做安全套接字协议,是一种应用层协议,主要用于数据传输的加密。OpeenSSL是SSL协议开源形式,是广泛使用的商业及SSL工具,同时OpeenSSL也是一种命令行工具;
★ 在计算机网络中,我们知道跨主机之间的进程通信是通过套接字方式实现的,服务器监听在某个TCP Socket之上(IP:Port),客户端在本地打开一个随机的Socket,然后通过TCP/IP协议,将请求通过交换机、路由器层层转发到目标服务器上,然后服务器可以判断出客户端请求的资源,进而转交到应用层相关服务上,服务端应用进程从磁盘上获得相应的资源信息,然后封装成相应的网络数据包格式以同样的方式层层传输给客户端对应的端口上。
★ 无论数据从应用层向下传输还是从下层到应用层传输,每个层次中的协议都仅仅是对数据进行封装解封装,而里面的数据本身并没有发生变化,所以,数据在发送过程当中是什么还是什么,也就是明文发送的,没有加密,任何人只要获取到了相关的数据包就能通过其他方法获知其中的铭文内容;因此就需要有一种加密机制能够保护互联网数据在传输过程中的隐秘性了;
★ NIST(美国国家标准与技术研究院)定义的安全属性:
·保密性:数据保密性,隐私性
·完整性(不可篡改):数据完整性,系统完整性
·可用性
★ 攻击类型:
·威胁保密性的攻击:窃听、通信量分析 ;
·威胁完整性攻击:篡改,伪装,重放,否认;
·威胁可用性的攻击:拒绝服务(Dos)
★ 解决方案:
·安全机制:
加密解密;
数字签名;
访问控制;
数据完整性;
认证交换;
流量填充;
路由控制;
公证
·安全服务:用于抵御攻击的服务
认证服务;
访问控制服务;
数据保密性服务:连接保密性、无连接保密性、选择域保密性、流量保密性
数据完整性服务;
不可否认性服务;
★ 设计原则:
·使用成熟的安全系统
·以小人之心度输入数据
·外部系统是不安全的
·最小授权
·减少外部接口
·缺省使用安全模式
·安全不是似是而非
·从STRIDE思考
·在入口处检查
·从管理上保护好你的系统
★ 安全算法
·常用安全技术
认证
授权
安全通信
审计
·密码算法和协议:
对称加密
公钥加密
单向加密
认证协议
★ Linux系统:OpenSSL, gpg(pgp协议的实现)
2.常见的加密算法和协议
★ 对称加密:加密和解密使用同一个密钥
·DES:Data Encryption Standard,56bits
·3DES:
·AES:Advanced (128, 192, 256bits)
·Blowfish,Twofish
·IDEA,RC6,CAST5
★ 特性:
·加密、解密使用同一个密钥,效率高;
·将原始数据分割成固定大小的块,逐个进行加密;
★ 缺陷:
·密钥过多;
·密钥分发;
·数据来源无法确认
2)非对称加密(公钥加密)
★ 非对称加密采用公钥加密,同时还需要另一个秘钥来解密,也就是私钥;两者统称为密钥对。
·公钥:从私钥中提取产生,公开给所有人;public key
·私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key
★ 特点:
用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
★ 功能: