0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何从系统架构分析安全问题

西西 来源:OSCHINA 社区 作者:廖宗雄 2022-09-09 10:51 次阅读

作者 |京东云开发者-廖宗雄

在日常生产生活中,我们常说,“安全第一”、“安全无小事”。围绕着安全问题,在各行各业都有对各类常见安全问题的解决方案和突发安全问题的应急预案。在互联网、软件开发领域,我们日常工作中对各类常见的安全问题又有哪些常见的解决方案呢?在此,结合经典架构图做一个梳理。

8fc3e33a-2f75-11ed-ba43-dac502259ad0.jpg

经典架构图 下面,结合上述的经典架构图,对数据存储、微服务接口、外网数据传输及 APP 层可能出现的安全问题进行分析,并给出一些常见的应对措施。

1 数据存储

为了保证数据存储的安全,对于敏感数据在进行存储时,需要进行加密存储,同时,敏感数据建议在全公司进行收口管理,便于统一管理。对敏感数据进行加密存储时,常见的加密方式有可逆加密和不可逆加密,分别适用于不同的敏感数据。

1.1 可逆加密或对称加密

可逆加密,即通过对密文进行解密后,能把密文解密还原出明文。对称加密算法加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合,缺点是密钥的传输比较麻烦。比如:网络购物的收货地址、姓名、手机号等就适合用该加密方式,常用的对称加密算法有 DES、AES,下面以 AES 为例说明对称加密的过程。

902579ec-2f75-11ed-ba43-dac502259ad0.png

在该加解密中,对于秘钥 K 的生成需要加解密双方共同制定并妥善保管。通常,我们会把该秘钥 K 存储在需要使用加解密程序的进程内,便于在程序使用时直接进行使用。 1.2 不可逆加密 不可逆加密,即不需要解密出明文,如:用户的密码。不可逆加密常用的算法有 RES、MD5 等,在此以 MD5 为例进行说明。但大家都知道,MD5 算法是存在碰撞的,即不同的明文通过 MD5 加密后,存在相同的密文。因此,直接使用 MD5 对密码进行加密在生产上是不严谨的,通常还需要配合盐(salt)进行使用。对于盐的使用,也有一定的技巧,一种盐值是固定的,即所有的明文在进行加密时都使用相同的盐进行加密;另一种是结合具体的业务场景,用可变盐值,比如:就密码加密而言,可以把用户名的部分或全部作为盐值,和密码进行一起加密后存储。

9045238c-2f75-11ed-ba43-dac502259ad0.png

2 微服务接口微服务的安全,需要从请求鉴权和请求容量限制这 2 个方面来考虑。对于请求鉴权,可以设置请求 IP 黑名单的方式,对该 IP 的所有请求或全部放行或全部拒绝,该方式的粒度较粗。而如果要做得较细粒度一些,可以针对具体的 API 进行 token 鉴权,相比粗粒度该方式会控制得比较精准;

除了对请求鉴权外,在实际的生产中,还可以对请求容量进行限制,对请求容量进行限制时,可以按 QPS 进行限制,也可以对每天的最大请求次数进行限制。在 jsf 平台管理端,可以对具体的方法进行请求的 QPS 限流。 3 数据传输数据传输主要分为数据通过前端 APP 的请求,进入到服务网关前和进入服务网关后这俩部分,对于数据已经进入服务网关后,这属于机房内的数据传输,通常这类加密意义不大,对这类的数据传输的安全需要建立相应的内部安全机制及流程规范,通过制度措施来保证。而数据在进入服务网关前,对数据的安全传输有哪些可做的。在数据请求进入服务网关前,通常我们有基于 SSL 协议的传输加密以及现在普遍通用的 HTTPS 加密。

911b4174-2f75-11ed-ba43-dac502259ad0.jpg

HTTPS 也是 HTTP 和 SSL 协议的结合体,所以在数据传输中,SSL 协议扮演了至关重要的角色。那 SSL 协议的工作过程是怎么样的,他是怎么保证数据传输过程中的安全的呢?下面为大家解析一下 SSL 协议的工作过程。

914de674-2f75-11ed-ba43-dac502259ad0.png

SSL 客户端与 SSL 服务端验证的过程如下:

SSL 客户端向 SSL 服务端发送随机消息 ClientHello 的同时把自己支持的 SSL 版本、加密算法、秘钥交换算法、MAC 算法等信息一并发送;

SSL 服务端收到 SSL 客户端的请求后,确定本次通信采用的 SSL 版本及加密组件和 MAC 算法,并通过 ServerHello 发送给 SSL 客户端;

SSL 服务端将携带自己公钥信息的数字证书通过 Certificate 发送给 SSL 客户端;

SSL 服务端通过 ServerHelloDone 消息通知 SSL 客户端版本和加密组件协商结束,开始进行秘钥交换;

SSL 客户端验证 SSL 服务端发送的证书合法后,利用证书中的公钥加密随机数生成 ClientKeyExchange 发送给 SSL 服务端;

SSL 客户端发送 ChangeCipherSpec 消息,通知 SSL 服务端后续将用协商好的秘钥及加密组件和 MAC 值;

SSL 客户端计算已交互的握手消息的 hash 值,利用协商好的秘钥和加密组件加密 hash 值,并通过 Finished 消息发送给 SSL 服务端,SSL 服务端用相同的方法计算已交互的 hash 值,并与 Finished 消息进行对比,二者相同且 MAC 值相同,则秘钥和加密组件协商成功;

同样地,SSL 服务端也通过 ChangeCipherSpec 消息通知客户端后续报文将采用协商好的秘钥及加密组件和 MAC 算法;

SSL 服务端端计算已交互的握手消息的 hash 值,利用协商好的秘钥和加密组件加密 hash 值,并通过 Finished 消息发送给 SSL 客户,SSL 客户端用相同的方法计算已交互的 hash 值,并与 Finished 消息进行对比,二者相同且 MAC 值相同,则秘钥和加密组件协商成功;

通过上面的这个交互过程,我们可以看出,在使用 SSL 的过程中,除了客户端(浏览器)跟服务器之间的通讯外,其他的任何第三方想要获取到协商的秘钥是比较困难的。即使有比较厉害的人获取到了,基于目前用户在某个网站上的时效性,会影响我们对应秘钥的时效性,因此,造成的破坏性也比较有限。

4 APP在 APP 层的安全问题,需要结合服务端一并来解决,在这主要介绍验证码这种形式。验证码作为一种人机识别手段,其主要作用是区分正常人操作还是机器的操作,拦截恶意行为。当前互联网中,大多数系统为了更好地提供服务,通常都需要用户进行注册。注册后,用户每次在使用系统时需要进行登录,登录过程中,为了防止系统非法使用,通常都需要用户进行登录操作,登录过程中,常用的验证方式主要通过验证码进行验证,当前比较常用的验证码有以下几种类型。

4.1 短信验证码 目前用得比较广泛的一种验证码形式,输入有效的手机号后,系统给手机号发送相应的短信验证码完成验证。

4.2 语音验证码 通过输入有效的手机号,系统给手机号拨打电话后,用语音播报的方式完成验证码的验证。

4.3 图片验证码 较传统的验证码验证方式,由系统给出验证码在页面显示,在进行页面提交时,验证码一并提交到系统后台验证。

4.4 语义验证码 比较新颖的一种验证码形式,但是该种方式相比较而言对用户不是特别友好,需要慎用。 除了上述的几种目前常用的验证码外,还有文本验证码、拼图验证码、问题类验证码等,在此就不再一一列举,大家如果感兴趣可以自己去搜索、学习。 这主要从系统的架构上,分析了日常工作中我们所接触到的比较常见的一些安全问题及其应对措施,在实际工作的安全问题远不止这里提到的内容。希望在日常工作中,我们大家都绷紧安全的神经,时刻关注自己工作中的各类潜在的安全问题,争取把安全问题消灭在系统发布前。

5 参考文献

SSL 是如何加密传输的数据的:

[技术每日说] - SSL 是如何加密传输的数据的! 名词解释:

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL 通过互相认证、使用数字签名确保完整性、使用加密确保私密性,从而实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL 记录协议和 SSL 握手协议。

HTTPS:(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版(HTTP+SSL)。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。

作者:廖宗雄

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    10906

    浏览量

    100745
  • MAC地址
    +关注

    关注

    1

    文章

    43

    浏览量

    11670
  • 数据存储
    +关注

    关注

    5

    文章

    895

    浏览量

    50584
  • https
    +关注

    关注

    0

    文章

    48

    浏览量

    5844

原文标题:从系统架构分析安全问题及应对措施

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式系统安全问题:今天的问题,而不是明天的

    系统,例如,速度表,以及自适应刹车控制器等。有些甚至还能够完全远程控制正在行驶的车辆。 图1.多种对车辆的攻击源能够危害CAN总线,并扩展到其他系统。在个人层面上,Vamosi介绍了安全专家Jay
    发表于 12-02 13:35

    能量收集系统安全问题

    。本文着眼于能量收集源、由此产生的能量预算和如何影响加密体系,节点的加密到网关,和控制器的选择。一个关键的挑战是,这些系统需要使用最安全的技术,这也采取最处理能力。不再是它适合的传感器或致动器节点
    发表于 02-26 11:28

    直击物联网安全问题:机智云与斗象科技建物联网安全实验室

    的研究成果和物联网安全态势报告,解决当下物联网安全问题频出但具体统计分析不足的现状,并给出有效解决办法。 双方还将共同建立物联网行业、物联网设备及系统
    发表于 12-30 14:25

    关于异步fifo的安全问题

    关于异步fifo的安全问题:1. 虽然异步fifo可以提供多个握手信号,但真正影响安全性能的就两个:2. 一个是读时钟域的空信号rdrempty3. 另一个是写时钟域的满信号wrfull4. 这是
    发表于 03-05 10:40

    物联网面临的安全问题

    作者:朱红儒 齐旻鹏来源:中国移动通信有限公司研究院物联网面对的安全问题根据物联网自身的特点,物联网除了面对移动通信网络的传统网络安全问题之外,还存在着一些与已有移动网络安全不同的特殊安全问题
    发表于 07-19 06:56

    固件漏洞安全问题的解决办法

    缩短至6周。    固件漏洞正逐年增加,安全问题该如何解决?  Sentry系统架构  Sentry解决方案使用了针对非FPGA用户的基于RISC-V的软件设计,用户可直接使用。而在有需求时,用户只需
    发表于 09-07 17:16

    手机电池和充电器的安全问题分析

    推荐这篇满满干货的三万五千字的科普长文,这篇科普长文醍醐灌顶地系统地告诉你手机电池和充电器安全的基本知识。本文和目前许多讲述手机电池和充电器安全的小视频、小文章最大的不同是:本文自始至终都在有意识地引导读者运用高中所学的物理、化
    发表于 11-04 06:07

    示波器接地线的相关安全问题怎么解决?

    本文介绍了示波器接地线的相关安全问题以及解决方法。
    发表于 05-06 07:17

    关于TCP/IP门禁系统有哪些安全问题?有什么解决办法?

    关于TCP/IP门禁系统有哪些安全问题?有什么解决办法?
    发表于 05-31 06:04

    Arm的平台安全架构(PSA)干货

    Arm的平台安全架构(PSA)干货,导语:在互联网飞速发展过程中,安全问题始终贯穿其中。在这场安全保卫战中,科技公司肩上的责任早已不再局限于提供产品与服务那么简单。对于端到云的整个产
    发表于 07-27 07:04

    基于分级安全的OpenHarmony架构设计

    的思路。 01►分级安全架构 付天福首先介绍了OpenHarmony分级安全架构设计的初衷和相关概念。为什么选择分级安全系统理论作为OpenHarmony
    发表于 08-04 10:39

    与P2P技术相关的信息安全问题

    与P2P 技术相关的信息安全问题关键词: P2P 安全 防御体系,IPSec 测试 即时通信 知识产权 网络 计算机IEEE 网络安全 局域网 VPN摘要 本文分析了和P2P 技术相关
    发表于 02-06 17:10 12次下载

    RFID系统数据安全问题怎样来解决

    分析了RFID系统前端数据采集系统的数据安全问题,对可能的攻击进行了论述和分类。
    发表于 11-14 15:12 3929次阅读
    RFID<b class='flag-5'>系统</b>数据<b class='flag-5'>安全问题</b>怎样来解决

    基于云的RFID系统架构安全分析

    系统,已经成为近年来RFID系统安全研究领域的热点之一。首先对基于云的RFID系统的逻辑架构进行了介绍,阐述了每个层次的安全问题,并在
    的头像 发表于 12-01 17:40 590次阅读

    物联网安全问题分析

    一、物联网的安全问题 物联网的安全问题是多方面的,包括传统的网络安全问题、计算系统安全问题和物联网感知过程中的特殊
    的头像 发表于 12-25 11:26 3546次阅读