分布式系统开发实战:安全性的基本概念

简介: 计算机系统中的安全性与可靠性密切相关。非正式地说,一个可靠的计算机系统是一个我们可以有理由信任其所提供的服务的系统。可靠性包括可用性、可信赖性、安全性和可维护性。但是,如果我们要信任一个计算机系统,还应该考虑机密性和完整性。考虑计算机系统中安全的另一种角度是我们试图保护该系统所提供的服务和数据不受到安全威胁,安全威胁包括以下4种。

网络异常,图片无法展示
|

安全性包含以下基本概念。

19.1.1 安全威胁、策略和机制

计算机系统中的安全性与可靠性密切相关。非正式地说,一个可靠的计算机系统是一个我们可以有理由信任其所提供的服务的系统。可靠性包括可用性、可信赖性、安全性和可维护性。但是,如果我们要信任一个计算机系统,还应该考虑机密性和完整性。考虑计算机系统中安全的另一种角度是我们试图保护该系统所提供的服务和数据不受到安全威胁,安全威胁包括以下4种。

  • ·窃听:指一个未经授权的用户获得了对一项服务或数据的访问权限。窃听的一个典型事例是两人之间的通信被其他人偷听。窃听还发生在非法复制数据时。
  • ·中断:指服务或数据变得难以获得、不能使用、被破坏等情况。从这个意义上说,服务拒绝攻击是一种安全威胁,它归为中断类,一些人正是通过它恶意地试图使其他人不能访问服务。中断的一个实例是文件被损坏或丢失时所出现的情况。
  • ·修改:包括对数据未经授权的改变或篡改一项服务以使其不再遵循其原始规范。修改的实例包括窃听后改变传输的数据、篡改数据库条目以及改变一个程序使其秘密记录其用户的活动。
  • ·伪造:指产生通常不存在的附加数据或活动的情况。例如,一个入侵者可能尝试向密码文件或数据库中添加数据,同样,有时可能通过重放先前发送过的消息来侵入一个系统。

仅仅声明系统应该能够保护其自身免受任何可能的安全威胁并不是实际建立一个安全系统的方式。首先需要的是安全需求的一个描述,也就是一个策略。安全策略准确地描述了系统中的实体能够采取的行为以及禁止采取的行动。实体包括用户、服务、数据、机器等。制订了安全策略之后,就可能集中考虑安全机制,策略通过该机制来实施。重要的机制如下。

  • ·加密。
  • ·身份验证。
  • ·授权。
  • ·审计。

加密是计算机的基础。加密将数据转换为一些攻击者不能理解的形式。身份验证用于检验用户、客户、服务器等所声明的身份。对一个客户进行身份验证之后,有必要检查是否授予客户执行该请求操作的权限。审计工具用于追踪各个客户的访问内容以及访问方式。

19.1.2 密码与数字签名

加密包括使用密钥对数据进行编码,从而使偷听者无法方便地阅读这些数据。经过加密的数据称为密文,原始的数据称为明文。从密文到明文的转换过程称为解密。

网络异常,图片无法展示
|

恺撒密码又叫循环移位密码,它的加密方法就是将明文中的每个字母用字母表中该字母后的第R个字母来替换,从而达到加密的目的。它的加密过程可以表示为下面的函数。

E(m)=(m+k)mod n (1)

其中,m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数。例如,对于明文字母H,其在字母表中的位置数为8,则按照式(1)计算出来的密文为L,计算过程如下。

E(8)=(8+4)mod 26=12 (2)

上面例子中,每个字母用其后面的第3个字母代替。

下面是一个C实现的恺撒密码程序。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *caesar(const char *str,int offset)
{
char *start,*ret_str;
start = ret_str = (char *) malloc(strlen(str) + 1);
for(;*str!='\0';str++,ret_str++)
{
if(*str>='A' && *str<='Z')
*ret_str = 'A' + (*str - 'A' + offset) % 26;
else if(*str>='a' && *str<='z')
*ret_str = 'a' + (*str - 'a' + offset) % 26;
else
*ret_str = *str;
}
*ret_str = '\0';
return (char *) start;
}
int main(void)
{
printf("%s\n","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
printf("%s\n",caesar("ABCDEFGHIJKLMNOPQRSTUVWXYZ",3));
return 0;
}
本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。
相关文章
|
4月前
|
人工智能 Kubernetes 数据可视化
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
本文回顾了一次关键词监测任务在容器集群中失效的全过程,分析了中转IP复用、调度节奏和异常处理等隐性风险,并提出通过解耦架构、动态IP分发和行为模拟优化采集策略,最终实现稳定高效的数据抓取与分析。
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
|
6月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
513 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
1月前
|
算法 NoSQL 关系型数据库
《聊聊分布式》分布式系统核心概念
分布式系统由多节点协同工作,突破单机瓶颈,提升可用性与扩展性。CAP定理指出一致性、可用性、分区容错性三者不可兼得,BASE理论通过基本可用、软状态、最终一致性实现工程平衡,共识算法如Raft保障数据一致与系统可靠。
|
6月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
224 12
|
4月前
|
数据采集 缓存 NoSQL
分布式新闻数据采集系统的同步效率优化实战
本文介绍了一个针对高频新闻站点的分布式爬虫系统优化方案。通过引入异步任务机制、本地缓存池、Redis pipeline 批量写入及身份池策略,系统采集效率提升近两倍,数据同步延迟显著降低,实现了分钟级热点追踪能力,为实时舆情监控与分析提供了高效、稳定的数据支持。
160 1
分布式新闻数据采集系统的同步效率优化实战
|
6月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
686 35
|
5月前
|
缓存 NoSQL 算法
高并发秒杀系统实战(Redis+Lua分布式锁防超卖与库存扣减优化)
秒杀系统面临瞬时高并发、资源竞争和数据一致性挑战。传统方案如数据库锁或应用层锁存在性能瓶颈或分布式问题,而基于Redis的分布式锁与Lua脚本原子操作成为高效解决方案。通过Redis的`SETNX`实现分布式锁,结合Lua脚本完成库存扣减,确保操作原子性并大幅提升性能(QPS从120提升至8,200)。此外,分段库存策略、多级限流及服务降级机制进一步优化系统稳定性。最佳实践包括分层防控、黄金扣减法则与容灾设计,强调根据业务特性灵活组合技术手段以应对高并发场景。
1576 7
|
6月前
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
649 4
|
6月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
335 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡

热门文章

最新文章