所有软件都可以被破解吗,为什么开发者不阻止破解版的产生?
首先软件是100%可以破解的。大不了我使用穷举法,列出所有的可能!
在20世纪,没有互联网的时候!软件采用光盘在不可复制扇区写入代码,再给你一个密码。光盘安装时,会根据这个代码产生对应密码,也就是软件公司给你的那个。破解 *** ,采用绕过密码这一关,也就是破解版!
2.20世纪末,互联网开始诞生!一般软件采用 *** 注册,电脑使用。例如Photoshop8.0,你安装好以后,机器会随机产生一个25位数字,只需要发给网站,网站就会通过计算产生一个新的25位数字发给你。这样你就可以使用了。这个生成过程后来被人发明了破译计算软件,叫“解码器”,进行了破解。
3.21世纪的软件 *** 码!21世纪由于 *** 发达,绝大部分软件随时随地要和 *** 连接。于是通过手机号申请唯一的密码。每次启动软件,便要识别地址,手机号等信息!当密码在多个机器或者多地使用时,便自动作废。我们的爱奇艺会员便是这种密码!由于这是一对几绑定密码,而且随时联网,已经很难长期 *** 。破解也就无从谈起!
三个时代,从无法对付破解软件,到现在 *** 软件,没办法破解。 历史 在不断进步!
首先肯定一下,所有的软件都可以被破解,无非是破解的代价不同而已。就算是IOS,也是一样可以被破解,被越狱的,Windows就更不说了,专业版的正版Windows在国内真的不多。
为什么开发者不阻止破解版的产生?
因为阻止不了。
爆破是一种简单的破解方式,我们可以通过反向工程,将软件的可执行文件破解后重新编译,达到破解的目的。
例如:我们有一个软件,每次输入注册码以后都会到一个网站去验证,如果验证通过会返回一个指令,软件得到这个指令以后,也相当于注册成功。我们在重新编译以后,可以修改这个地址,改到一个我们自己搭建的破解地址去,不过输入什么呢,我们都返回一个成功的指令,这样就可以达到破解的目的了。
当然,我们还可以修改验证的处理逻辑,例如如果用户输入错误的注册码,就验证通过,这样也可以达到破解的目的。
还有就是通过自己编写注册机来破解,所有的软件验证都有一个固定的逻辑算法,我们只要了解这个算法以后,就可以根据验证码的生成逻辑,写出一个注册机并生成正确的注册码,通过使用这个注册码来完成注册。
而破解的方式还有很多,对于不同的软件会有不同的破解方式。对于开发者来说,自然是不愿意自己的软件被破解了,所以也曾经增加了很多的反破解手段,不过这些手段都会有漏洞,因为这些反破解手段本身其实也是一个软件,只要是软甲就可以被破解。
所有软件都可以被破解吗,为什么开发者不阻止破解版的产生?
这个问题分这样几个方面来回答。
之一、所有的软件都可以破解,无非是破解的难度与价值大小,决定了破解者的多少。
这个问题有点类似锁和开锁。只要有一定的技术和功夫,可以说几乎所有的锁都能不用钥匙打开。
第二、为什么开发者不阻止破解版的产生。
举一个例子。前些年,微软的BOSS说过,我知道中国人喜欢偷(软件盗版),即便是这样,我还是希望他们偷我们的软件。
这句话说明这样一个道理,在某种程度上,多数软件的开发者,反而喜欢有人破解自己的产品,有人使用自己的盗版产品。
为什么这样呢?
其实这样有两个效果。
之一个效果,盗版软件大量流行,可以打击其竞争对手。如果对于盗版打击过于严厉,没人使用盗版,那么他们竞争对手的产品很可能会乘虚而入,占领市场。例如windows,如果盖茨们严厉打击盗版,那么很可能国产的操作系统很可能会借机得到发展。如果放任盗版,其中一个最重要的作用,就是使广大用户形成习惯,堵死国产系统发展的机会。
第二个效果是,他们又有了一条新的生财之道。
例如,现在使用操作系统的电脑,绝大多数是可以联网的,盖茨们很容易知道,哪些机器使用盗版系统。如果是一些不大不小的公司胆敢使用盗版,那么他们会收集证据,然后给这些公司发律师函,你们使用盗版的证据已经收集完毕,要么缴纳某某万元给我们购买许可,要么到法院做被告。这种情况,可以说大概率是输官司赔款,并且数字非常大。很多软件公司虽然盗版不赚钱,但是用这种方式,可以大发其财。
软件升级与破解是矛与盾的关系。具体分析如下:
开发者们对自己开发的软件进行保护是很常见的行为,但是应该没有开发者会觉得自己的软件无法被破解。
首先你得明白,开发软件的首要目的肯定不是“保护软件不被破解”,这只是作者为了自己的合法权益不被侵犯所做的无奈之举,为了保护软件外加大量安全保护代码得不偿失,然后开发出来的软件全都变成类似 *** 防火墙的东西。
所有的加密方式都是不能完全保证安全的,但Cracker破解软件会考虑“效费比”,比如说我破解这个软件挺麻烦的,可能需要我连续工作一周,但这个软件只卖十块钱,一般不会考虑浪费这个时间进行破解。
另外,破解软件会破坏软件的完整性,导致某些功能出现异常甚至无法使用,作者只需要保护核心功能,对破解后的这些功能进行曲解(比如对保存文件进行全程加密),破解这种软件需要Cracker在当前领域具有开发者同等技术水平才有可能做到。
又要跑题了,但这很重要。曾有人将黑客Hacker和破解者Cracker进行对比,其实他们之间的区别非常大。黑客专注于 *** 传输技术和操作系统,破解者专注于编译技术和低级语言;黑客行为不一定是为利,但破解行为肯定是为利;黑客行为可以有友方和敌方,但破解行为破坏所有人的利益(盗版横行将严重制约软件业发展,比如Windows盗版满天飞,去开发另一套系统的人想靠卖系统收回成本基本是痴人说梦)。
最后总结一下。WPS领头人求伯君曾说过: 有人盗版他的软件说明软件得到了认同。开发者不可能不考虑盗版的问题,但首先得有人用你的软件,它才会有其价值。软件保护和软件破解是一对矛与盾,敌人的存在能够让我们时刻保持警惕。
程序由调试模式,就是单步。运行中的程序也可以被捕获,进入调试模式。只要找到一些关键的判断点,让程序转向就可以破解了。
并不是所有的软件都可以被破解,只能说所有的程序代码、数据库都在本地的软件可以被破解。
比如:“云电脑”、“云手机”。所有的程序代码、数据库都是放在服务器端,本地手机或电脑只有一个负责登录的客户端。
“云电脑”、“云手机”可以将本地的操作指令传输到服务器端的电脑或手机上,所有的程序执行过程均在服务器端的电脑或手机上完成,再通过 *** 将图像实时的传输回本地,由于现在网速快、延迟低,感觉就像真的在本地操作。
云端软件或系统,所有的代码、数据库、执行过程都是在服务器端,就连登录时账户和密码的验证过程都需要和服务器端的数据库比对。所以这种软件或系统被破解的可能性几乎为零,就算会被攻破也只可能是通过黑客技术或账户、密码、IP地址等敏感信息遭到泄露。
为什么说本地的软件、系统都可以被破解?
建一栋房子可以要几个月,但如果要拆掉它可能只需要一瞬间。本地的软件、系统也是一样的道理,破解的过程是一个取巧的过程,并不需要知道所有的代码是怎么写的,操作原理是怎样的,怎么执行的,执行逻辑又是什么,只要找到执行权限认证和授权的代码段就可以了。
可以让软件一开始执行就跳转到软件的主界面,绕过输入用户名和密码、验证用户名和密码的过程。
也可以让软件的用户名和密码验证模块不管验证成功还是失败都跳转到软件主界面。
经常会去“看雪”论坛逛的小伙伴就知道有各种软件破解的工具和思路。软件破解很早就已经形成了一门学科,并且有一个高大上的名称“软件逆向工程”。
软件逆向工程
软件逆向工程是指从可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技术,对软件的结构、流程、算法、代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行 *** 及相关文档等。
软件开发出来也会有防篡改技术用于制止专用软件进行逆向工程及再工程。实际应用中出现了两类逆向工程:一种是软件的源代码可用,但是更高层次的部门几乎没有描述文档或描述文档不再适用或丢失。另一种是软件没有可用的源代码,任何能找到它的源代码的努力都被为逆向工程。所以不要把软件逆向工程看成是一种很灰暗的学科,它只是经常被用在投机取巧的人身上罢了。
软件的逆向工程可以使用“净室技术”来避免侵犯版权。在有一些国家软件逆向工程只要遵守版权行业释义法律的合理使用规定,都是受保护的。比如:
上面只是提供的软件破解的基本思路,让大家更好的理解为什么本地的软件和系统可以被破解。软件逆向工程并没有想象中的那么简单,这门学科需要具备基本的编程能力,掌握外壳原理和技巧,并且对操作系统的知识比较了解。总之就是涉及的知识比较多,学习的东西也会比较多,要熟练掌握这门学科需要花费很长的周期。
在逆向工程下,软件的加密技术和注册机制也在不断进化
最早的时候,软件只要购买了发行磁盘或光盘就可以使用正版软件。但由于盗版光碟的盛行,演化成了需要输入一串激活密钥才能激活正版权限。很快算号程序就出现了,于是就有了在线验证。
但不管软件的加壳/加密机制多么强悍、注册机制多么完善,只要软件的代码在本地,就一定会被破解,只是时间的长短。
以上个人浅见,欢迎批评指正。
都是值不值得问题。如果现在花100天可以做软件功能,再花5天时间可以使得它不好被破解。那我可能会做。如果说再花5天让它几乎不可破解。我可能选择不做了。因为可能这部分的价值几乎没有。
如果,我是叫巨硬,到一个国家推广软件,这个国家还有个叫UPS的东西和我的软件很像,我现在想的是先搞死他,甚至不在意我的推广人员自己吧推广费用吞了。那这时候我不但不做反破解,可能还会主动扶持这些推广人员。
水至清则无鱼,盗版毕竟是有风险的,新手或许都会去找破解版,但是功能等肯定使用起来不够流畅,真正需要的专业用户,还是愿意花钱买点正版的。
一个软件出来,破解版也是一种营销宣传手段,要是直接就收费了,哪里有用户去下载体验使用呢
的确,所有软件都可能被破解,包括支付宝和微信这种国民应用程序。
分析: 黑客破解软件一方面是为了展示技术,向开发者炫技,另一方面是为了获取利益。2019年天猫双十一24小时遭受住了22亿次恶意攻击,是否意味着天猫就是铜墙铁壁毫无漏洞?非也。像这种级别的应用程序都会配备专业的安全团队,从技术上就过滤掉了绝大部分的“菜鸟黑客”,顶级黑客毕竟是少数,一般不屑于干这种事,同时也兼顾法律的威慑力,国民级应用程序被黑可不是小事,谁都不能保证自己全身而退。有句话是“满瓶水不荡,半瓶水起波浪”,可以这样说,双十一攻击天猫的那些黑客基本都是“半瓶水”水平,天猫能经受住考验虽然不易,但也不足为奇。
一般的应用软件就不用说了,开发者大部分心思都花在功能研究上了,安全方面都是尽力而为,如果想做的更好,就要建立专门的安全团队,但这样会增加很多开发成本,即便如此也不能保证软件零漏洞。所以在黑客眼里,大部分软件无异于在“裸奔”。
总结: 很多软件在网上出现破解版,是因为一部分人版权意识不够强,抱着侥幸心理干着非法的事。不是开发者不阻止,是 *** 成本较高,软件开发者基本都是睁一只眼闭一只眼。破解软件是软件行业发展的“绊脚石”,有免费的用谁还掏钱买正版?开发者挣不到钱谁还会用心开发软件?这是一个死循环。不过随着人们的版权意识在逐步提高,加上我国版权监管工作的不断完善,这种情况会得到极大地改善,我们普通人要做的是支持正版就对了。
黑客是怎样练成的?
如果你想成为一名优秀的黑客,下面是12种必备条件
1. 学习UNIX/LINUX
UNIX/LINUX是一种安全性更高的开源操作系统,最早由ATT实验室开发,并在安全界里广泛使用。不懂UNIX/LINUX,不可能成为一名黑客。
2. C语言编程
UNIX/LINUX这种操作系统就是用C语言写的,是最强大的计算机语言,于上世纪70年由丹尼斯•瑞切开发。想成为一名黑客,必须掌握C语言。学习黑客可以搜索 吾爱白帽子 带你入门黑客技术
3. 学习使用多种编程语言
对于一名黑客而言,要学习使用不只一种编程语言。比如Python、JAVA、C++等。网上有很多免费的电子书、学习指南,关键在于你的坚持和努力。
4. 学习了解 *** 知识
这 是另一个必不可少的基础条件,学习 *** 知识,理解 *** 的构成。懂得不同类型 *** 之间的差异之处,清晰的了解TCP/IP和UDP协议。这都是在系统中寻找 漏洞的必不可少的技能。理解局域网、广域网,VPN和防火墙的重要性,精通Wireshark和NMAP这样的 *** 扫描和数据包分析工具等。
5. 学习使用多种操作系统
除了Windows以外,还有UNIX/LINUX,Mac等不同类型和版本的操作系统,而每种操作系统都有自己的漏洞,黑客需要了解这些系统,才能发现其中的漏洞。
6. 学习密码技术
作为一名优秀的黑客,密码技术也是不可或缺的。加密与解密都是重要的黑客技能,它在各种信息系统安全技术,如身份验证和数据完整和保密等方面,都有着极为广泛的应用。最常见的加密形式就是各种进入系统的口令,而入侵系统时则需要破解这些口令,即解密。
7. 学习更多的入侵技术
阅读各种教程和入侵领域专家写的电子文档。身为一名黑客,要不停的学习各种入侵技巧,因为安全始终都在变化,系统时刻都在更新。
8. 大量的实验
在了解一些新的概念之后,要坐下来实践这些概念。用一台性能良好的计算机建立起你自己的实验室,强大的CPU,大容量的内存等。不断地进行测试,直到熟练掌握。
9. 编写漏洞利用程序
通过扫描系统或 *** 找到漏洞后,试着自己编写漏洞查找及利用的程序。
10. 参与开源安全项目
开源安全项目可以帮助你测试和打磨你的黑客技术。这并不是一件容易的事,一些机构,如Mozilla、Apache等,会提供开源项目。参与这些项目,即使你的贡献很小,也会给你带来很大的价值。
11. 永远不要停止学习
学习永远都是成功的关键。不断的学习和实践将使你成为更好的黑客。保持对安全的关注,时刻为自己充电,学习和了解最新的入侵技术。
12. 加入黑客圈子
对一名黑客来说,最重要的是加入社区或论坛。不仅可以交换和分享彼此的经验和知识,还能够建立起团队。
我被黑客设置了密码怎么破解
你好!给你5种解除开机密码的 *** ,希望能给你帮助!
*** 一
在开机时,按下F8进入”带命令提示符的安全”模式
输入”NET USER+用户名+123456/ADD”可把某用户的密码强行设置为”123456″
*** 二
如用户忘记登入密码可按下列 *** 解决
1.在计算机启动时按〔F8〕及选〔Safe Mode With Command Prompt〕
2.选〔Administrator〕后便会跳出〔Command Prompt〕的窗口
3.用〔Net〕的命令增加一个用户,例:增加一个用户名为alanhkg888,命令语法如下:net user alanhkg888/add 4.将新增用户提升至Administrator的权力,例:提升刚才增加用户alanhkg888的权力,命令语法如下
net localgroup administrators alanhkg888/add 5.完成上列步骤后重新启动计算机,在启动画面上便增加了一个用户alanhkg888了,选alanhkg888进入
6.登入后在〔控制台〕→〔使用者账户〕→选忘记密码的用户,然后选〔移除密码〕后〔等出〕
7.在登入画面中选原来的用户便可不需密码情况下等入(因已移除了)
8.删除刚才新增的用户,在〔控制台〕→〔使用者账户〕→选〔alanhkg888〕,然后选〔移除账户〕便可
*不适用于忘记安装时所设定〔administrator〕的密码
*** 三
1、重新启动Windows XP,在启动画面出现后的瞬间,按F8,选择”带命令行的安全模式”运行。
2、运行过程停止时,系统列出了超级用户administrator和本地用户owner的选择菜单,鼠标点击administrator,进入命令行模式。
3、键入命令:”net user owner 123456/add”,强制性将OWNER用户的口令更改为”123456″。若想在此添加某一用户(如:用户名为abcdef,口令为123456) 的话,请键入”net user abcdef 123456/add”,添加后可用”net localgroup administrators abcdef/add”命令将用户提升为系统管理组administrators用户,具有超级权限。
4.DOS下删windows\system32\config里面的SAM档就可以了
5.开机后按键盘的Delete键进入BIOS界面。找到User Password选项,其默认为关闭状态。启动并输入用户密码(1~8位,英文或者数字)。计算机提示请再输入一遍以确认密码无误,保存退出后重新启动机器,这时就会在开机时出现密码菜单
*** 四
如果是FAT32,进入DOS,删除c:winntsystem32configsam*.*就可以了。登陆只要输入administrator不输密码即可。然后创建一个新的。要是NTFS则无效
另外如果你的系统没有加过微软的输入法补丁的话也可以利用输入法的漏洞去做一个管理员权限账号,
具体 *** 如下:
开机后,Win2000自启动,出现登录窗口,显示用户名,并要求输入密码(当然这时你不会有密码)。
这时请将输入焦点置于用户名一项,用Ctrl+Shift切换输入法(随便选上一种,只要能出现输入法工具条的就行)。在出现的输入法提示工具条上单击右键,选择帮助,会弹出一个帮助窗口。接下来你需要在这个窗口里找到一个(绿色带下划线)超级链接,并用SHIFT+鼠标左键单击,打开它会弹出一个IE窗口,请在窗口地址栏里输入c:,到这步你应该很清楚怎么做了。只要点击标准按键的”向上”,会发现你可以进入”控制面板”了,进入后你可以直奔”用户和密码”接下发生的事只有你自己知道了。
*** 五
我们知道在安装Windows XP过程中,首先是以”administrator”默认登录,然后会要求创建一个新账户,以便进入Windows XP时使用此新建账户登录,而且在Windows XP的登录接口中也只会出现创建的这个用户账号,不会出现”administrator”,但实际上该”administrator”账号还是存在的,并且密码为空。
详解加密技术概念、加密 *** 以及应用
随着 *** 技术的发展, *** 安全也就成为当今 *** 社会 的焦点中的焦点,几乎没有人不在谈论 *** 上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日 *** 社会 的人们感觉到谈网色变,无所适从。
但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等 *** 安全了再上网的念头,因为或许 *** 不能有这么一日,就象“矛”与“盾”, *** 与病毒、黑客永远是一对共存体。
现代的电脑加密技术就是适应了 *** 安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在 *** 中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑 *** 中还是近几年的 历史 。下面我们就详细介绍一下加密技术的方方面面,希望能为那些对加密技术还一知半解的朋友提供一个详细了解的机会!
一、加密的由来
加密作为保障数据安全的一种方式,它不是现在才有的,它产生的 历史 相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是更先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些 *** 来保护他们的书面信息。
近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。
二、加密的概念
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
三、加密的理由
当今 *** 社会 选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在 *** 上传输。而且这种不安全性是互联网存在基础——TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。
加密在 *** 上的作用就是防止有用或私有化信息在 *** 上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。
通过 *** 进行登录时,所键入的密码以明文的形式被传输到服务器,而 *** 上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。
还有如果你公司在进行着某个招标项目的投标工作,工作人员通过电子邮件的方式把他们单位的标书发给招标单位,如果此时有另一位竞争对手从 *** 上窃取到你公司的标书,从中知道你公司投标的标的,那后果将是怎样,相信不用多说聪明的你也明白。
这样的例子实在是太多了,解决上述难题的方案就是加密,加密后的口令即使被黑客获得也是不可读的,加密后的标书没有收件人的私钥也就无法解开,标书成为一大堆无任何实际意义的乱码。总之无论是单位还是个人在某种意义上来说加密也成为当今 *** 社会 进行文件或邮件安全传输的时代象征!
数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。
类似数字签名技术的还有一种身份认证技术,有些站点提供入站FTP和WWW服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的FTP服务,或开发小组把他们的Web网页上载到用户的WWW服务器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。
在这里需要强调一点的就是,文件加密其实不只用于电子邮件或 *** 上的文件传输,其实也可应用静态的文件保护,如PIP软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息。
四、两种加密 ***
加密技术通常分为两大类:“对称式”和“非对称式”。
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国 *** 所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密 *** 如果是在 *** 上传输加密文件就很难把密钥告诉对方,不管用什么 *** 都有可能被别窃听到。而非对称式的加密 *** 有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
五、加密技术中的摘要函数(MAD、MAD和MAD)
摘要是一种防止改动的 *** ,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质,如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响。总之,摘要算法从给定的文本块中产生一个数字签名(fingerprint或message digest),数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容和进行身份认证。摘要算法的数字签名原理在很多加密算法中都被使用,如SO/KEY和PIP(pretty good privacy)。
现在流行的摘要函数有MAD和MAD,但要记住客户机和服务器必须使用相同的算法,无论是MAD还是MAD,MAD客户机不能和MAD服务器交互。
MAD摘要算法的设计是出于利用32位RISC结构来更大其吞吐量,而不需要大量的替换表(substitution table)来考虑的。
MAD算法是以消息给予的长度作为输入,产生一个128位的"指纹"或"消息化"。要产生两个具有相同消息化的文字块或者产生任何具有预先给定"指纹"的消息,都被认为在计算上是不可能的。
MAD摘要算法是个数据认证标准。MAD的设计思想是要找出速度更快,比MAD更安全的一种算法,MAD的设计者通过使MAD在计算上慢下来,以及对这些计算做了一些基础性的改动来解决安全性这一问题,是MAD算法的一个扩展。
六、密钥的管理
密钥既然要求保密,这就涉及到密钥的管理问题,管理不好,密钥同样可能被无意识地泄露,并不是有了密钥就高枕无忧,任何保密也只是相对的,是有时效的。要管理好密钥我们还要注意以下几个方面:
1、密钥的使用要注意时效和次数
如果用户可以一次又一次地使用同样密钥与别人交换信息,那么密钥也同其它任何密码一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期的保密性,很难保证长期以来不被泄露。如果某人偶然地知道了用户的密钥,那么用户曾经和另一个人交换的每一条消息都不再是保密的了。另外使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。
因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。
2、多密钥的管理
假设在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000人或更多,这种办法就显然过于愚蠢了,管理密钥将是一件可怕的事情。
Kerberos提供了一种解决这个较好方案,它是由MIT发明的,使保密密钥的管理和分发变得十分容易,但这种 *** 本身还存在一定的缺点。为能在因特网上提供一个实用的解决方案,Kerberos建立了一个安全的、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。
假设用户甲想要和用户乙进行秘密通信,则用户甲先和KDC通信,用只有用户甲和KDC知道的密钥进行加密 ,用户甲告诉KDC他想和用户乙进行通信,KDC会为用户甲和用户乙之间的会话随机选择一个对话密钥,并生成一个标签,这个标签由KDC和用户乙之间的密钥进行加密,并在用户甲启动和用户乙对话时,用户甲会把这个标签交给用户乙。这个标签的作用是让用户甲确信和他交谈的是用户乙,而不是冒充者。因为这个标签是由只有用户乙和KDC知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,只有用户乙收到后才能够进行解密,从而确定了与用户甲对话的人就是用户乙。
当KDC生成标签和随机会话密码,就会把它们用只有用户甲和KDC知道的密钥进行加密,然后把标签和会话钥传给用户甲,加密的结果可以确保只有用户甲能得到这个信息,只有用户甲能利用这个会话密钥和用户乙进行通话。同理,KDC会把会话密码用只有KDC和用户乙知道的密钥加密,并把会话密钥给用户乙。
用户甲会启动一个和用户乙的会话,并用得到的会话密钥加密自己和用户乙的会话,还要把KDC传给它的标签传给用户乙以确定用户乙的身份,然后用户甲和用户乙之间就可以用会话密钥进行安全的会话了,而且为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解了。同时由于密钥是一次性由系统自动产生的,则用户不必记那么多密钥了,方便了人们的通信。
七、数据加密的标准
随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。
另一种非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Prblic key) ,另一个不告诉任何人,称为"私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。
假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。
甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。
八、加密技术的应用
加密技术的应用是多方面的,但最为广泛的还是在电子商务和VPN上的应用,下面就分别简叙。
1、在电子商务方面的应用
电子商务(E-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用卡会被人盗用。在过去,用户为了防止信用卡的号码被窃取到,一般是通过 *** 订货,然后使用用户的信用卡进行付款。现在人们开始用RSA(一种公开/私有密钥)的加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。
许多人都知道NETSCAPE公司是Internet商业中领先技术的提供者,该公司提供了一种基于RSA和保密密钥的应用于因特网的技术,被称为安全插座层(Secure Sockets Layer,SSL)。
也许很多人知道Socket,它是一个编程界面,并不提供任何安全措施,而SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。
SSL3.0用一种电子证书(electric certificate)来实行身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密 *** ,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个Session Key,然后客户用服务器端的公钥将Session Key进行加密,再传给服务器端,在双方都知道Session Key后,传输的数据都是以Session Key进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关申请,以得到公证。
基于SSL3.0提供的安全保障,用户就可以自由订购商品并且给出信用卡号了,也可以在网上和合作伙伴交流商业信息并且让供应商把订单和收货单从网上发过来,这样可以节省大量的纸张,为公司节省大量的 *** 、传真费用。在过去,电子信息交换(Electric Data Interchange,EDI)、信息交易(information transaction)和金融交易(financial transaction)都是在专用 *** 上完成的,使用专用网的费用大大高于互联网。正是这样巨大的诱惑,才使人们开始发展因特网上的电子商务,但不要忘记数据加密。
2、加密技术在VPN中的应用
现在,越多越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网LAN(Local Area Network),但在当今的 *** 社会 人们的要求不仅如此,用户希望将这些LAN连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。
事实上,很多公司都已经这样做了,但他们一般使用租用专用线路来连结这些局域网 ,他们考虑的就是 *** 的安全问题。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual Private Network ,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户湍连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。
黑客攻击web,窃取信息(或破解加密流通数据)的手段有哪些,请列举并简要说明原理
SQL注入(工具注入和手工注入),暴库,xss,旁注,ddos攻击,cc攻击