本文章同时发布於:
大家好,这几天较有时间,终於可以好好的思考文章 XD。由於最近周遭的朋友对安全性演算法这个词时常感到高深莫测,这次就来介绍安全性演算法的应用吧!
安全性演算法是相当复杂的,但事实上他的应用概念
是很直觉的,我们不妨直接以应用来了解,演算法采用网路大家常用的 library 即可。
所以这几篇文章会以实际应用来讲解,不琢磨演算法细节。
P.S. 我是从演算法图监这本书来了解安全性演算法的,因为安全性演算法的目标都一样,所以文章内容虽然都是我内化的,但可能会许多雷同,请多多包涵 XD。
这些演算法到底要保护什麽事情,就是保护传送
这个动作会产生的 4 个问题:
而这些问题可以透过以下 3 个方法来解决:
是怎麽解决的呢?以下会以小明
、线上早餐店阿姨
与在他们对话间做坏事的坏蛋
来讲解。
答:
偷取传输过程中的资料
假设小明
要线上付款早餐店款项,理想如下图:
❗ 但如果有坏蛋
从中拦截封包,就可以取得小明
的付款密码:
怎麽防范?
将传送的资料加密,这样就算坏蛋偷走了也不知道资料内容
只要小明
与早餐店阿姨
有协议好一个双方才知道的加解密方法,而坏蛋
不知道,就可以如以下模式运作:
答:
无法确认传输对象的身份
假设小明
要购买一杯大冰奶,理想如下图:
❗ 但如果有坏蛋
也声称自己是小明
,就可以谎报资料:
怎麽防范?
传输人员在资料上产生一笔独一无二的代码供另一端验证
此代码可以是讯息识别码
或数位签章
,因为这两种技术都可以让资料产生独一无二的代码,小明
会透过金钥与资料一起产生此代码,早餐店阿姨
只需再接收到资料时再用金钥与资料一起产生代码,比对代码是否相同即可判断是不是小明
传的:
答:
修改传输的资料
假设小明
要购买一杯大冰奶,理想如下图:
❗ 但如果坏蛋
窜改了小明
的订单,小明
就会收到不预期的回应:
怎麽防范?
与电子欺骗的解决方法相同,传输人员在资料上产生一笔独一无二的代码供另一端验证
此代码可以是讯息识别码
或数位签章
,因为这两种技术都可以让资料产生独一无二的代码,小明
会透过金钥与资料一起产生此代码,早餐店阿姨
只需再接收到资料时再用金钥与资料一起产生代码,比对代码是否相同即可判断是不是小明
传的:
答:
无法证明传输方有做过这件事
❗ 假设小明
心怀不轨,买了一杯大冰奶却不想付钱,他可以这样做:
怎麽防范?
要求传输人员在资料上产生一笔独一无二的代码供另一端验证
此代码为数位签章
,不可为讯息识别码
,虽然两者都可产生独一无二的代码,但讯息识别码
是双方
共同约定好的金钥来产生代码,而数位签章
是小明
用个人金钥
产生代码,只有数位签章
才可证明是小明
一位产生的,用讯息是别码
会有可能是双方任一端产生的。
小明
得透过个人金钥
与资料一起产生此代码,如果小明赖帐,早餐店阿姨
只需拿此代码去跟小明讨帐即可:
有了以上慨念後,在针对任何传输安全性的问题,你可以透过此表来思考到底要用何种技术解决:
窃听 | 电子欺骗 | 窜改 | 抵赖 | |
---|---|---|---|---|
加密 | v | |||
讯息识别码 | v | v | ||
数位签章 | v | v | v |
丢弃
并不是这些演算法保护的目标
<<: [DAY15]跟 Vue.js 认识的30天 - Vue 动态模组(Dynamic Components)
>>: 【这些年我似是非懂的 Javascript】那些年我睡掉的物件导向 #浅谈 #Part 3
this&Object Prototype Ch3 Object 我的天,真的太久没翻你,试...
前言:本篇目的为简要纪录函式内的变数种类与功能、参数赋予及厘清Callback function的运...
DFS与BFS的追踪 图一 DFS(深度追踪) 说明: 以图一为例,当起点设为0时,会不断往下深入,...
这是个工具半残时,debug会很惨烈的故事Orz 既上次想要搬迁到host来用qemu-user加快...
前言 本章节,延续上一章节有关於SSH连线的介绍,继续介绍SSH之以金钥为基础的验证与设定介绍。 产...