远程登录
远程登录使用ssh服务,其配置文件为/etc/ssh/sshd_config
密钥认证机制
每次连接都需要输入用户名密码太麻烦,ssh服务还支持一种安全认证机制,即密钥认证,其有一个公钥,任何人都能看到,用于加密;还有一个私钥,只有拥有者才能看到,用于解密
linux系统的启动过程大体上可分为五步:内核的引导、运行init、系统初始化、建立终端、用户登录系统
开机首先是BIOS开机自检,按照BIOS中设置的启动设备来启动,然后由启动设备上的grub程序开始引导linux,当引导程序成功完成引导任务后,linux接管CPU的控制权开始执行linux的核心映像代码
init进程是系统所有进程的起点,init程序会读取/etc/inittab配置文件
接下来会执行/etc/rc.d/rc.sysinit,来完成一些系统初始化的工作,主要有:激活交换分区,检查磁盘,加载硬件模块以及其他一些优先执行任务
TCP是面向连接的,面向流的,提供了高可靠性服务,客户端和服务器端都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用优化方法(Nagle算法),将多次间隔较少且数据量小的数据,合并成一个大的数据块,然后进行封包,这样做虽然提高了效率,但是接收端就难以分辨出完整的数据包了,因为面向流的通信是无消息保护边界的,所以需要在接收端处理消息边界问题,也就是粘包和拆包问题
Netty使用ChannelHandler来进行数据处理,且可以连接每个ChannelHandler。ChannelPipeline和ChannelHandler机制类似于Servlet和Filter过滤器链,将Channel的数据管道抽象为ChannelPipeline,消息在ChannelPipeline中流动和传递,交给ChannelHandler进行处理。
ChannelPipeline持有ChannelHandler实例的链表,提供了一种高级的截取过滤器模式,可以通过新增和删除来实现不同的业务逻辑定制,而不需要对已有的ChannelHandler进行修改。让用户可以在ChannelPipeline中完全控制一个事件及如何处理ChannelHandler与ChannelPipeline的交互。
1 | final AbstractChannelHandlerContext head; |
从明文生成密文的步骤,称为加密算法。从密文翻译为明文,称为解密算法。
而在加密、解密时需要密钥。对称加密就是指在加密和解密时使用同一密钥;非对称加密就是在加密和解密时使用不同的密钥。
对称加密又称私钥加密,为了保证通信安全,使用双方都认可的加密算法和密钥,使用该密钥加密和解密(仅需要一个密钥即可),其他人可以访问信道,可以看到加密数据,但是因为没有密钥,所以看不到原始数据,只要能保证密钥安全,就可以一直安全的通信
如DES、AES、3DES(三重DES)、RC-5、IDEA等
非对称加密又称为公钥加密,使用两个密钥,一个私密的,一个公开的。这两个密钥之间存在一些特殊的数学关系,使得密钥具备一些有用的特性,使用公钥加密数据,使用私钥来进行解密。解决了对称加密算法密钥分配问题,提高了算法的安全性。
只有数据不大的时候才使用非对称加密,因为效率比较低
如DH、RSA、DSA、ECC等
注意:在使用非对称算法进行认证时,是相反的操作,使用发送者A的私钥进行签名,然后接受者B使用发送者A的公钥来进行解密