当前位置: 首页 > 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.自定义…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...