当前位置: 首页 > news >正文

【系统架构师】-论文-系统安全性与保密性设计

1、摘要:

        2018 年初,我所在的公司为一票务公司开发开票业务平台的建设。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以采用 B/S 架构服务用户,采用”平台+应用”的模式解决现有应用单机独立开票的模式。原来单机模式开票数据不准,存在多个设备开同一张票的现象,不便管理,另外非公司内部员工,通过盗用设备虚开发票,本文以平台安全体系架构为例,讨论了信息系统的安全性与保密性的设计。在该项目中,我结合实际需要,通过防止信息窃取、防止暴力破解、防止密码泄露等方面综合应用了各种技术手段以保障系统的安全性与保密性。目前,系统已稳定运行了一年时间,实践证明,些技术手段有效的提高了系统的安全性和保密性,顺利通过了集团的安全检测,运行至今,未发生安全事故。

2、正文:

        随着移动信息化技术的迅猛发展,我所在的甲方票务公司发现原来依靠依靠税盘单一验证方式开具发票存在许多问题,有同一张发票被多个设备开具的情况,同一个税号公司名称也各不相同,这些异常的发票在送往国税局验证时全部为无效发票,无效发票还要执行后续许多核对流程,很浪费时间,为此公司决定开发一个平台,需要开具发票的客户公司,只需要将税盘接入系统,我司平台验证登录用户信息后,即可进行后续的发票验证,发票扫描,发票开具操作,实现统一入口、统一认证、统一鉴权、统一管理的目的,因为发票涉及公司资金数据,对系统的敏感数据需要进行保密传输,对系统的安全等级提出了很高的要求,
        

        在项目分析阶段,我查阅了信息系统相关规范,发现信息系统需要具备如下5个基本要素:机密性 确保信息不爆露给末授权的实体或进程,完整性只有得到允许的人才能够修改数据,并能够判别数据是否被修改;可用性得到授权的实休在需要时可访问数据;可控性 可以控制授权范围内的信息流向和行为方式;可审查性 对出现安全问题提供调查的依据和手段

        为了让系统提从安全的服务 ISO7498-2 定义了5种可选的安全服务分别是一认证服务 确保某个实体身份的可靠性分两种类型,
1一种类型是认证实体本身的身份
2一种是证明某个信息是否来自于某个特定的实体,这种叫做数据源认证,数据签名就是这种访问控制 防止对任何资源的非授权访问,确保只有经过授权的实体才能访问受保护的资源三数据机密性服务 确保只有经过授权的实体才能理解受保护的信息
四数据完整性服务 防止对数据末授权的修改和破坏,
五 不可否认服务 防止对数据源以及数据提交的否认,它有两种可能,数据发送的不可否认性和数据接收的不可否认性

为保护信息的安全我们也提出一些对应的安全机制
一:加密机制
二:数字签名
三: 访问控制机制
四:数据完整性机制
五:认证交换机制

        系统中运行的各公司敏感业务数据,其中不乏涉及决策层的商业信息,信息的保密尤为重要;从信息化系统的特点来看,通信方式的安全同样至关重要。针对以上情况,我首先选定了可以附加增强安全手段的多层分布式架构来提供安全与保密保障的基础可能。我根据架构特点,将安全保障方案分为物理层级和软件层级。在物理层级,我通过私有云提供的隔离手段,将各层之间通过防火墙进行了物理隔离,并在 DMZ 中只保留了必须的接入服务器,以最大程度的在物理层次上降低安全风险。在物理层级提供了足够的安全保障之后,系统主要的安全性和保密性设计集中在了软件层级的设计上,下面,我结合项目实际情况就软件方面所采取的防窃取、防破解、防泄露等技术手段进行详细说明。


        第一,通过 HTTPS、敏感数据加密、数据不落地的方式实现了通信数据的防窃取。平台作为信息化系统,决定了数据需要从内部网络流经互联网到达终端,在内部网络到外部网络部分,通过集团私有云提供的审计能力,可以提供足够的安全保障。但是数据需要在互联网上流转,这就要求数据流转的通道必须是安全的,同时敏感信息也必须是安全加密的。通道的安全,经过论证分析,最终我们采用了 HTTPS 作为通信方式。HTTPS技术通过在HTTP 协议附加SSL的方式实现其次对数据实行加密,数据加密即对明文按照某种加密算法进行处理,而形成难以理解的密文,按照加密密钥和解密密钥的异同。

        第二,通过验证码、生物特征识别、锁定账户等手段防止系统入口的暴力破解。用户必须登陆后才可以使用系统功能,密码的防暴力破解成为这方面的关键点。通过调查分析,单纯的使用账户、密码方式登陆系统,可能出现面对暴力破解时的泄露问题,为了解决这个问题,我在系统的认证环节引入了验证码技术和人脸识别技术。验证码技术可以提高登陆业务的复杂程度,加大针对密码的暴力破解的难度。同时也保证只有当前正在操作的用户和手机号都符合系统匹配条件才能进入,此为第一道关,而在正式开票时,需要再进行人脸识别技术通过其生物识别技术特点,保证只有具备开票职责的人员才能使用该功能,进一步满足安全的要求。同时,我在系统中采取了密码失败多次锁定账户一定时间的机制,具体为,用户密码或输入三次,系统自动锁定账户三十分钟,这三十分钟内,该账户无法登陆系统,这就进一步加大了破解账户密码的时间,基本上可以认为这些手段屏蔽了密码暴力破解的可能。最终我选择的方式是将这三种技术手段根据场景结合使用,用户初次登陆系统时采用普通密码方式,登陆成功后,强制对核心功能模块设置人脸识别技术,并将人脸信息存储于服务端,用户后续的登陆将只能使用密码+人脸识登陆,密码三次错误锁定账号的机制则贯穿两种登陆方式,既满足了系统的易用性,又提高了登陆的安全性。

        综合使用了如上的硬件和软件安全技术手段之后,平台于 2015 年末顺利通过了安全部门的安全检测正式上线,至今已稳定运行了接近 2 年时间,运行过程中未发生过一起安全事故。系统所采用的通信防窃取、防暴力破解、密码防泄露等技术手段发挥了重要的作用,获得了领导和同事的好评。但是在系统运行过程中,我也发现了技术手段存在的一些不足。首先是单纯的HTTPS通信并未将信道进行有效隔离,可以考虑增加VPN 或VPDN 的手段实现。其次是密码摘要的盐采用了用户账号,使得盐固化到了客户端,有一定的安全风险,可以采用客户端验密时先从服务端获取与账号不同的盐,再进行严验密的方式解决。以上这些问题将是我以后在安全架构设计上需要重点考虑的问题。

相关文章:

【系统架构师】-论文-系统安全性与保密性设计

1、摘要: 2018 年初,我所在的公司为一票务公司开发开票业务平台的建设。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以采用 B/S 架构服务用户,采用”平台应用”的模式解决现有应用单机独立开票的模…...

Cisco Catalyst 9000 9200 9300 9400 IOS software upgrade

1 背景 从Catalyst 3650 ,3850,Catalyst 9000开始, 更准确的说是IOS XE的交换机的系统镜像安装方式分为2种  Bundle mode  Install mode 这2种方工啥区别? Bundle mode 传统方式利用boot system flash:c9k.xx16.bin方式引导 Install mode 将bin文…...

Web Server项目实战2-Linux上的五种IO模型

上一节内容的补充:I/O多路复用是同步的,只有调用某些API才是异步的 Unix/Linux上的五种IO模型 a.阻塞 blocking 调用者调用了某个函数,等待这个函数返回,期间什么也不做,不停地去检查这个函数有没有返回&#xff0c…...

Docker | 基础指令

环境:centos8 参考: 安装 Docker | Docker 从入门到实践https://vuepress.mirror.docker-practice.com/install/ 安装Docker 卸载旧版本,安装依赖包,添加yum软件源,更新 yum 软件源缓存,安装 docker-ce…...

10款手机黑科技app,每款都好用到爆!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 1. 计划程序应用 —— Android Auto Text Android Auto Text(前身为 Do It Later)是一款简单易用的日程安排应用程序&am…...

tomcat请求数据解析过程

前面提到tomcat请求处理的io交互过程,现在开始看下经过io交互后tomcat是怎么处理请求数据的。首先到AbstractProtocol.java中的process方法,注意这个方法是在tomcat线程池分配的线程调用的。生成用来对请求字节流数据进行解析的Http11Processor。 public…...

《扑克牌游戏》

描述 有一个扑克牌游戏,游戏规则是不断地摸牌,尽可能地使手上的牌的点数接近于10,最完美的情况是总点数为10,不可以超过10,否则就爆了。输入10张牌的点数,(每张点数不超过10),请你输出用户应该抓…...

kali模块及字典介绍

1. 基本模块介绍 模块 类型 使用模式 功能 dmitry 信息收集 命令行 whois查询/子域名收集/端口扫描 dnmap 信息收集 命令行 用于组建分布式nmap,dnmap_server为服务端;dnmap_client为客户端 i…...

交换排序、归并排序、计数排序

冒泡排序&#xff1a; void BubbleSort(int* a, int n) {//第一层循环是趟数&#xff0c;第二层是交换for (int i 0; i < n-2; i){int flag 0;for (int j 0; j < n - 2 - i; j){if (a[j] > a[j 1]){swap(&a[j], &a[j 1]);flag 1;}}if (flag 0){break;…...

怎么查看 iOS ipa包 mobileprovision 改动

查看 iOS .ipa 包中的 .mobileprovision 文件&#xff08;即配置文件或描述文件&#xff09;的改动&#xff0c;可以通过以下步骤进行&#xff1a; 重命名 .ipa 文件&#xff1a;将 .ipa 文件扩展名改为 .zip。例如&#xff0c;如果文件名为 MyApp.ipa&#xff0c;则重命名为 M…...

【Unitydemo制作】音游制作—控制器与特效

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…...

[程序员] 最近的感悟,错误处理占大头?

根据昨天分享的一个问题&#xff0c;想到的。 在代码里&#xff0c;异常处理的代码也算是占大头&#xff0c;扑面而来的就是发生错误时怎么处理的大片代码&#xff1b;而且出现问题的概率是绝对的占大头。所以&#xff0c;异常代码出现bug的概率也在不知不觉中增加&#xff01…...

vue3(一) - 结构认识

通过之前博客应该已经完成了vue脚手架的认识和创建&#xff08;地址&#xff09;&#xff0c;这节我们简单介绍一下需要使用的一些关键技术&#xff0c;后续在详细介绍 结构目录 创建脚手架时&#xff0c;我选择了TypeScript,store,route这三个选项 index.html入口 node_mo…...

数据库迁移——kettle开发01

背景&#xff1a;数据库的多种多样&#xff0c;在搭建项目之初&#xff0c;并没有详细考虑到数据库的建设&#xff0c;当增加配置不能满足业务场景需要时&#xff0c;这时候考虑到使用更高性能的数据库&#xff0c;如将MySQL更换为oracle数据库。或者在搭建新项目时&#xff0c…...

Netty: Netty中的组件

文章目录 一、EventLoop1、EventLoop2、EventLoopGroup&#xff08;1&#xff09;处理普通时间和定时任务&#xff08;2&#xff09;处理IO任务 二、Channel三、Future&Promise四、Handler&Pipeline五、ByteBuf 一、EventLoop 1、EventLoop EventLoop本质是一个单线程…...

Julia编程01:Julia语言介绍

在2020上半年&#xff0c;因为疫情无法返校&#xff0c;所以在家待了半年&#xff0c;期间学习一点了R语言、Python、Julia、linux和C语言&#xff0c;只是学习基础语法并没有项目练习&#xff0c;因此返校半年后差不多都不记得了&#xff0c;现在重新捡起Julia丰富下当时写的笔…...

二叉树顺序结构及链式结构

一.二叉树的顺序结构 1.定义&#xff1a;使用数组存储数据&#xff0c;一般使用数组只适合表示完全二叉树&#xff0c;此时不会有空间的浪费 注&#xff1a;二叉树的顺序存储在逻辑上是一颗二叉树&#xff0c;但是在物理上是一个数组&#xff0c;此时需要程序员自己想清楚调整…...

【Python】pandas连续变量分箱

路过了学校花店 荒野到海边 有一种浪漫的爱 是浪费时间 徘徊到繁华世界 才发现你背影 平凡得特别 绕过了城外边界 还是没告别 爱错过了太久 反而错得完美无缺 幸福兜了一个圈 &#x1f3b5; 林宥嘉《兜圈》 import pandas as pd import numpy as np from sklearn.model_selecti…...

Qt 打卡小程序总结

1.Qt::Alignment&#xff08;枚举类型&#xff09;用于指定控件或文本的对齐方式 Qt::AlignLeft&#xff1a;左对齐。Qt::AlignRight&#xff1a;右对齐。Qt::AlignHCenter&#xff1a;水平居中对齐。Qt::AlignTop&#xff1a;顶部对齐。Qt::AlignBottom&#xff1a;底部对齐。…...

【qt】标准项模型

标准项模型 一.使用标准型项模型1.应用场景2.界面拖放3.创建模型4.配套模型5.视图设置模型6.视图属性的设置 二.从文件中拿到数据1.文件对话框获取文件名2.创建文件对象并初始化3.打开文件对象4.创建文本流并初始化5.读取文本流6.关闭文件7.完整代码 三.为模型添加数据1.自定义…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...