`
youyu4
  • 浏览: 449899 次
社区版块
存档分类
最新评论

互联网安全性问题

 
阅读更多

互联网安全性问题

 

 

       谈到互联网安全,会想起中间人攻击,DNS劫持,代理服务器等,对于这么多的危险,怎么保证我们的系统真的足够安全呢?

 

 

 

一个有效的方法:End to End Encryption(端对端加密)

 

    怎么去理解端对端加密呢?核心有如下两点:

 

  • 客户端和服务端交换期间,数据是加密的
  • 既然加密,就用到加密的key,每个客户端使用到的加密key都应该不一样

 

解决方法:

 

  1. 模拟Https的加密流程,生成一个sessionKey,用于加密交互时的数据
  2. 这种方式经过骇客的评估,确实有效地防止被攻击

 

流程

 

  1. 前端请求后端拿到public key
  2. 前端生成一个16位的cKey(UUID),用public key加密,传给后端
  3. 后端拿到加密内容后,用private key解密,拿到cKey
  4. 后端又生成一个16位的sKey(UUID),然后两个key一起做异或,生成一个sessionKey
  5. 将cKey,sKey,sessionKey保存到DB,而且数据要进行加密的,并且有一个sessionId(UUID)作为唯一标识,sessionId不用加密
  6. 然后用cKey加密sKey和sessionId返回给前端,前端用自己的cKey解密,拿到sKey
  7. 然后前端做一次异或,生成一个sessionKey保存在App的runtime
  8. 每次请求的参数,以userId=1&name=AA这样的一个字符串用sessionKey进行加密,然后sessionId放在请求的header中,
  9. 后端拿到数据后,先根据sessionId找到数据库对应的sessionKey 和 IV,然后解密这两个值,然后再用这另个值来解密encData。

 

 

 

 

问题一:End to End Encryption 过程中,需要拿到后端的公匙,可不可以再改进?

 

问题关键:

 

  1. 现在服务端的public key、private key是固定的,放在服务器的一个安全机器上,能不能将其改成可变的?

 

解决思路:

 

  1. 每次用户需要生成sessionKey的时候,先用deviceId作为key,在redis中查查,看有没有对应吖pubic key、private key,如果有就拿出来用,如果没有就重新生成一对。
  2. 因为deviceId每台机器都不一样,所以生成的public key、private key是不一样的。

 

 

 

 

问题二:即使做好了加密,如果被人拦截到请求的所有数据,怕不怕被用来重复提交

 

问题关键:

 

  1. 这种敏感的请求,应该有个超时时间来记录什么时候无效
  2. 同时,不能重复使用

 

解决思路:

 

  1. 客户端发起请求时,生成一个timeStemp,这是当前提交的时间。
  2. 服务端拿到请求后,首先检查timeStemp,跟当前时间比较,看是否超过5分钟,如果超过就是无效的,如果不超过就是有效的。
  3. 那在这5分钟的时间内,怎么保证不会被重复请求呢?
  4. 使用redis做分布式锁,设置一个clientRef(16位UUID)作为key,在第一次请求时,看拿不拿得到redis的一个key。
  5. 如果拿得到,证明已经执行过了,可以直接抛异常。
  6. 如果拿不到,证明还没有执行过,那就执行请求。
  7. key的超时时间是5分钟,5分钟后自动删除,这样就可以补充这5分钟的空隙了。

 

 

 

问题三:如果跟第三方系统交互,要防止请求数据被中间人篡改了,怎么办?

 

关键问题:

 

  1. 怎么检查被篡改过?数字签名

 

解决思路:

 

  1. 先跟第三方约定数字签名的加密算法,如:SHA256
  2. 第三方请求过来时,生成timeStamp,clientRef,以及request json body一起组成一串字符串,用算法进行加密,名字叫signature(数字签名)
  3. 第三方请求中,header中,放timeStamp,clientRef,signature
  4. 我们服务端收到请求后,将timeStemp,clientRef,request json body,以相同的规则,组成字符串,再用算法进行加密
  5. 加密后的值和signature比较,看是否相等
  6. 如果相等就没问题,不相等就抛异常

 

如何改进:

 

  1. 可以从加密算法中改进,可以用Hash,对称加密,非对称加密(事先要把public key的证书给第三方)
  2. timeStamp,clientRef,signature,组成字符串的规则可以跟第三方约定好,保证不会那么容易被猜到

 

分享到:
评论

相关推荐

    (整理)文献检索 土木工程项目成本管理.doc

    (整理)文献检索 土木工程项目成本管理.doc

    (C++)利用keil编写51单片机收集温湿度的代码,并且利用QT实现一个简单的串口通信界面来接受单片机收集到的温湿度数据发送到PC端,其中下位机利用protues来实现.zip

    (C++)利用keil编写51单片机收集温湿度的代码,并且利用QT实现一个简单的串口通信界面来接受单片机收集到的温湿度数据发送到PC端,其中下位机利用protues来实现.zip

    HNUST嵌入式系统实验-2 数码管显示驱动设计

    实验二 数码管显示驱动设计

    双动子龙门模组sw16可编辑_三维3D设计图纸_三维3D设计图纸.zip

    双动子龙门模组sw16可编辑_三维3D设计图纸_三维3D设计图纸.zip

    基于Norrbin/Fossen模型与反步法/PID控制的USV路径跟踪及洋流扰动补偿Matlab实现

    内容概要:本文详细介绍了利用Norrbin/Fossen模型和反步法(PID)控制算法实现无人船(USV)路径跟踪的方法,特别是在存在洋流扰动的情况下。首先,文章解释了Norrbin模型用于描述船舶低频运动特性的优势,并展示了如何将洋流速度从惯性坐标系转换到船体坐标系。接着,讨论了LOS制导算法的改进,使其能够适应洋流影响。然后,阐述了反步法控制律的设计及其与PID控制的结合,强调了虚拟控制量的设计和参数调整的重要性。最后,通过Matlab/Simulink进行建模和仿真实验,验证了该方法的有效性,并提供了详细的代码实现和可视化结果。 适合人群:从事无人船控制系统研究和开发的技术人员,尤其是对路径跟踪和海洋环境扰动补偿感兴趣的工程师和研究人员。 使用场景及目标:适用于需要提高无人船在复杂海况下路径跟踪精度的应用场合,如海洋测绘、环境监测等。目标是通过引入先进的控制算法,减少洋流等外界因素对路径跟踪性能的影响,从而提高系统的鲁棒性和可靠性。 其他说明:文中提供的代码片段和仿真结果有助于读者理解和复现实验过程。同时,作者分享了许多实践经验,如参数调整技巧和常见错误避免,对于初学者非常有帮助。此外,文章还提出了未来的研究方向,如加入自适应观测器以进一步改善抗扰动性能。

    elasticsearch-analysis-ik-8.17.4.zip

    elasticsearch-analysis-ik-8.17.4.zip

    煤矿开挖区三维渗流仿真与应力场耦合计算的技术实现及应用

    内容概要:本文详细介绍了煤矿开挖区三维渗流仿真及其应力场耦合计算的关键技术和实现方法。首先,利用Python的pyvista库进行地质数据处理和三维可视化,确保模型结构完整。接着,采用FEniCS进行有限元求解,基于达西定律计算渗流场,并引入变渗透率模型处理渗透系数的变化。应力场计算则基于修正的Mohr-Coulomb准则,重点处理渗流-应力耦合项。通过ParaView进行可视化,展示了渗流路径和应力分布情况。文中还讨论了实际工程应用中的优化技巧,如并行计算、HDF5分块存储等。 适合人群:从事矿山工程、岩土力学、渗流力学研究的专业人士和技术人员。 使用场景及目标:适用于煤矿开采过程中对渗流场和应力场的预测和分析,帮助识别潜在的安全隐患,如突水风险点。通过仿真结果指导现场施工,提高安全性和经济效益。 其他说明:文中提供了多个Python代码片段,涵盖从模型构建到后处理的各个环节,有助于读者理解和复现相关技术细节。强调了理论与实际相结合的重要性,指出数值模型虽不能绝对精确,但能提供重要的参考依据。

    COMSOL 6.1中3258-3824Hz频段声波阵面调控:压力声学与固体力学模块耦合应用

    内容概要:本文详细介绍了如何利用COMSOL Multiphysics 6.1版本进行3258-3824Hz频段内的声波阵面调控。主要内容涵盖模型搭建、材料参数设置、扫频方法、耦合边界条件以及后处理技巧。文中强调了压力声学和固体力学模块之间的耦合重要性,并提供了具体的代码示例来指导用户完成各项任务。此外,还讨论了一些常见的陷阱及其解决方案,如网格划分、求解器选择等。 适合人群:从事声学工程、机械工程及相关领域的研究人员和技术人员,尤其是那些希望深入了解COMSOL软件在声波调控方面应用的人士。 使用场景及目标:适用于需要精确控制声波传播路径的研究项目,例如开发新型声学设备或改进现有产品的声学性能。通过掌握文中提到的技术手段,可以帮助用户更好地理解和预测不同条件下声波的行为特征。 其他说明:文中不仅提供了理论解释,还有大量实用的操作提示和代码片段,便于读者快速上手实践。同时,作者分享了许多个人经验和心得,有助于避免常见错误并提高工作效率。

    2017学年第二学期期末考试《土木工程制图》大作业.pdf

    2017学年第二学期期末考试《土木工程制图》大作业.pdf

    基于51单片机protues仿真的自动水龙头系统设计(仿真图、源代码、AD原理图、流程图)

    基于51单片机protues仿真的自动水龙头系统设计(仿真图、源代码、AD原理图、流程图) 自动水龙头设计 1、当人或物体靠近时,水龙头自动防水,而人或物体离开时水龙头自动关闭 2、采用红外传感器 3、使用电磁阀控制开关 4、设定延时,如果人或物体长时间没有离开,自动关闭水龙头; 5、仿真图、源代码、AD原理图、流程图;

    可调角度带式锯床sw23可编辑_三维3D设计图纸_三维3D设计图纸.zip

    可调角度带式锯床sw23可编辑_三维3D设计图纸_三维3D设计图纸.zip

    深度学习基于PyTorch的ResNet50模型实现:融合UniversalInvertedBottleneckBlock(通用倒置瓶颈块)

    内容概要:本文详细介绍了ResNet神经网络模型的构建与实现。首先定义了一个通用的倒置瓶颈块(UniversalInvertedBottleneckBlock),它包括三个卷积层和批标准化层,并引入了残差连接机制。接着基于此构建了Bottleneck模块,进一步扩展了倒置瓶颈块的功能,同样包含了跳跃连接来缓解梯度消失问题。最后,ResNet类整合了多个Bottleneck模块形成完整的网络结构,通过_make_layer方法按需创建不同深度的网络层。文中还提供了resnet50函数用于快速实例化预定义配置下的ResNet模型,并展示了如何创建模型实例、准备输入数据以及进行前向传播计算。 适合人群:对深度学习有一定了解,特别是熟悉PyTorch框架的开发者或研究人员;希望深入理解ResNet架构及其组件的工作原理的学习者。 使用场景及目标:①理解ResNet中倒置瓶颈结构的设计思想及其实现细节;②掌握如何利用PyTorch搭建复杂神经网络模型;③学习如何通过调整网络层数和参数设置来自定义适合特定任务需求的ResNet模型。 阅读建议:本文代码量较大,建议读者先熟悉PyTorch的基础操作,然后逐步阅读每个类和函数的定义,注意理解各部分之间的关系。可以尝试修改代码中的参数或者添加新的功能来进行实践练习。同时,可以通过查阅官方文档或相关资料加深对某些概念的理解。

    小学,初中,高中 沉浸式虚拟现实3DLED屏 VR未来智慧教室 建设方案书.docx

    小学,初中,高中 沉浸式虚拟现实3DLED屏 VR未来智慧教室 建设方案书.docx

    基于物理信息的Transformer高速公路车辆轨迹预测(PIT-IDM模型构建)

    内容概要:本文介绍了一种将物理信息融入Transformer模型用于高速公路车辆轨迹预测的新方法——PIT-IDM模型。该模型结合了Transformer强大的数据捕捉能力和IDM驾驶模型的物理约束特性,在每个时间步进行交替更新,确保预测结果既符合数据规律又遵守物理常识。文中详细描述了模型架构、关键组件如IDM参数估计器和自注意力机制的具体实现,以及训练策略和损失函数设计。实验结果显示,相较于传统的纯数据驱动模型,PIT-IDM在cut-in场景下的预测精度提高了23%,并且能够有效避免非物理性的离谱预测。 适合人群:对深度学习、自动驾驶技术和车辆轨迹预测感兴趣的科研人员和技术开发者。 使用场景及目标:适用于高速公路车辆轨迹预测的研究和应用开发,旨在提高预测准确性,尤其是在复杂交通状况下的短期预测性能。 其他说明:文中还讨论了一些具体的工程实现细节,如计算开销优化、数据预处理方法以及应对极端情况的解决方案。此外,作者指出该方法可以扩展应用于其他时序预测任务,如电力负荷预测和股票市场预测等。

    【计算机科学】递归与迭代的核心概念解析:函数调用机制、性能对比及应用场景分析

    内容概要:本文详细对比了递归与迭代两种编程方法,解释了它们在不同应用场景下的优缺点。文中通过多个选择题解析了递归基、递归参数等概念,强调了递归基的重要性,指出它是递归函数停止调用自身的条件。同时,通过实例展示了如何使用递归和迭代实现阶乘、斐波那契数列、数组求和等功能,并讨论了递归与迭代在内存占用、执行效率等方面的差异。此外,文章还探讨了递归和迭代在搜索算法(如广度优先搜索、深度优先搜索)、排序算法(如快速排序、归并排序)中的应用,指出了递归在处理树形结构和分治问题时的优势,以及迭代在处理有明确循环次数的任务时的高效性。 适合人群:具备一定编程基础的学习者,尤其是对递归和迭代概念存在疑惑的程序员。 使用场景及目标:①理解递归和迭代的基本概念及其在实际编程中的应用;②掌握递归基的作用,避免无限递归;③学会根据问题特点选择合适的算法实现方式,优化程序性能。 其他说明:本文不仅提供了理论知识,还通过具体的代码示例加深理解,建议读者在学习过程中动手实践,尝试将递归算法转换为迭代算法,以更好地掌握两者之间的转换技巧。

    Java开发环境搭建教程.zip

    java

    基于单片机protues仿真的厨房环境监测系统(仿真图、源代码、AD原理图、流程图)

    基于单片机protues仿真的厨房环境监测系统(仿真图、源代码、AD原理图、流程图) 基于单片机的厨房环境监测系统。 1、测量温湿度、烟雾浓度、co浓度,粉尘,然后超出范围响警报。 2、有0832、51单片机、mq2烟雾传感器、LCD1602液晶显示,灯光电路、按键电路、警报器电路。 3、都可调报警值。 4、传感器可用电位器代替。 5、厨房温湿度,烟雾,CO,粉尘; 6、仿真图、源代码、AD原理图、流程图;

    PEM电解槽CCM电化学仿真:基于Nafion 115膜的催化层优化及参数调整

    内容概要:本文详细介绍了PEM(质子交换膜)电解槽CCM(催化剂涂层膜)的电化学仿真过程,重点探讨了使用Nafion 115膜作为电解质时的关键参数设置及其对仿真结果的影响。文中通过具体的代码示例展示了如何调整催化层厚度、孔隙率、交换电流密度等参数,并讨论了不同参数组合对极化曲线、电流密度分布以及电解槽效率的具体影响。此外,文章还分享了一些实用技巧,如避免常见错误、优化边界条件设置等。 适合人群:从事燃料电池研究、电化学仿真领域的科研人员和技术开发者。 使用场景及目标:帮助研究人员更好地理解和优化PEM电解槽的工作性能,特别是在催化层设计和参数选择方面提供指导。通过调整关键参数,提高电解槽的效率和稳定性,为实际应用提供理论支持。 其他说明:文章不仅提供了详细的参数调整方法,还强调了仿真过程中需要注意的实际问题,如参数之间的相互影响、边界条件的正确设置等。同时,作者通过幽默风趣的语言使复杂的技术内容更加易懂。

    【LPSO-BP分类】基于改进莱维飞行和混沌映射的粒子群优化算法优化BP神经网络分类研究(Matlab代码实现)

    【LPSO-BP分类】基于改进莱维飞行和混沌映射的粒子群优化算法优化BP神经网络分类研究(Matlab代码实现)

    布料裁断机sw20可编辑_三维3D设计图纸_三维3D设计图纸.zip

    布料裁断机sw20可编辑_三维3D设计图纸_三维3D设计图纸.zip

Global site tag (gtag.js) - Google Analytics