首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术

2、系列文章本文是IM通讯安全知识系列文章第11篇,此系列总目录如下:《即时通讯安全篇(一):正确地理解和使用Android端加密算法》《即时通讯安全篇(二):探讨组合加密算法IM应用》《即时通讯安全篇...6.2 使用ECDH算法替换DH算法DH 算法是以离散对数数学难题为基础,随着计算机计算能力逐步增强,我们要不停地使用更大数以增加破解难度,目前业界普遍认为至少需要使用 2048 位 DH 算法才具备更好安全性...在此我们引入 ECDH 算法替换 DH 算法。ECDH 密钥协商算法是 ECC 算法和 DH 密钥交换原理结合使用。ECC 是建立基于椭圆曲线离散对数问题上密码体制。...而 Signal Protocol 群组聊天设计与二人聊天又有所不同,由于群聊保密性要求相对低一些,只采用了 KDF 链棘轮+公钥签名来进行加密通讯以保障加密前向安全。...每个群组,每个成员还要存储其它成员 KDF 链和签名公钥,如果群组成员过多,加解密运算量非常大,会影响发送和接收速度,同时密钥管理数据库也会非常大,读取效率也会降低。

1.7K30

DotNet SSL TLS证书问题分析排障

而在非正常服务器上抓包,报错(因为测试过程,没有保存抓包数据,只记录了报错关键字): Level: Fatal, Description: HandShake Failure 一般来说,这种错误是因为加密套件不匹配造成...,发送Server Hello时使用加密套件(Cipher Suite)是:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 而非正常服务器响应是:TLS 1.2 Alert...TLS 1.2支持37种加密套件,但建议使用以下种类: #Nginx设置 AESGCM+ECDH ARIAGCM+ECDH CHACHA20+ECDH 而在非正常服务器上抓包,报错(因为测试过程...,发送Server Hello时使用加密套件(Cipher Suite)是:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 而非正常服务器响应是:TLS 1.2 Alert...TLS 1.2支持37种加密套件,但建议使用以下种类: #Nginx设置 AESGCM+ECDH ARIAGCM+ECDH CHACHA20+ECDH

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

开发语言大爆炸时代,究竟谁主沉浮?

当这个系列本来打算是写人物,而且是写我们身边那些优秀开发者,然而当第一篇文章,写是关于我们长沙.NET社区优秀开发者邹琼俊,发表博客园之后,有一位也是昔日.NET 开发者、今天优秀Java工程师给我留言...然而,后来这些优秀开发者,哪怕他们出版了不少书籍,现在都不再以.NET 开发作为主要语言方向,而是使用Java进行开发。(当然,他们转语言是几年前,那个时候还没.NetCore这个好东西。)....NET体系语言学习过程,他们表现出来才华,既成就了自己,也成就了他人。除此之外,通过.NET体系语言学习,一通而百通,也让他们学习其他语言过程更加便捷。...尤其是一开始接触C#这种设计优雅语言,更是如此,C#学习过程,让他们从C#开发者转到Java 开发者过程,往往并不需要花费太大精力就可以轻松上手,游刃有余,下笔如有神。...名额有限啊,哈哈,你还不来

36020

TLS协议分析 (五) handshake协议 证书与密钥交换

这种用法没有前向安全性,因此 TLS 1.3被废弃了 ECDH_ECDSA / ECDH_RSA 能做 ECDH 用途公钥;公钥必须使用 客户端支持ec曲线和点格式。...名字 DH_DSS, DH_RSA, ECDH_ECDSA, 和 ECDH_RSA 只是历史原因,这几个名字后半部分中指定算法,并不会被使用,即DH_DSSDSS并不会被使用,DH_RSA并不会使用...TLS实际部署,我们一般只使用这4种:ECDHE_RSA, DHE_RSA, ECDHE_ECDSA,RSA 其中RSA密钥协商(也可以叫密钥传输)算法,由于没有前向安全性,TLS 1.3里面已经被废除了...但是,我们基本不会用到这种功能,因为一般部署都是使用 NamedCurve,即参数已经预先选定,各种密码学库普遍都支持一组曲线,其中目前用最广secp256r1 (还被称为 P256,或 prime256v1...opensslRSA blinding,参见:http://linux.die.net/man/3/rsa_blinding_on 5.9.(2).

1.5K20

C#.NET 契约

C#/.NET 契约 发布于 2017-12-20 15:04 更新于 2018-04-25 09:11...} 有些静态代码检查工具也许可以根据这里参数判断代码块来认定为此处参数不能为 null,但这种判断代码无处不在,静态检查工具如何能够有效地捕获每一处检查呢?难道我们真的要去翻阅文档?...我朋友林德熙 使用 Resharper 特性 一文中有这些契约对编写代码更详细效果描述和截图。...实际应用 事实上 GitHub 使用各种契约都有,不过以 ReSharper Annotations 和 System.Diagnostics.Contracts 居多;C#8.0 可空引用类型等到...---- 参考资料 Code Contracts - Microsoft Docs .NET 4.0 契约式编程 - Angel Lucifer - 博客园 C# 参数验证方式演变 -.net-

89010

2023年底了,聊聊.NET现状

最近,知乎上新出现了一些关于C#/.NET问答,它们是:2023年C#找工作行情如何?2023年了,能说一说C#目前情况?2023年选Java还是Golang还是C#?...2023年5月了,最近在探索跨平台方案,QT和C#怎么选?2023年Java卷飞情况下,可以转C#?2023年选C#还是Java?.......那么,C#/.NET目前行情到底如何了?...net core性能和托管特性是真的强大,这是一种cpp上看不到强大,几乎成为了性能强大,稳定性要求高相关工控机上不二选择我现在在做隧道及公路相关工控软件开发,这种软件是很难测试实验室内只能保证东西转起来...笔者本人见过40岁.NET老程序员,论开发经验,公司内部碾压90%以上开发人员。...我们正在经历,还有将要经历,前人或许早有解决方案了。人生苦短,不可能每件事都要等经历了,才悟出一些本质。完全可以从前人经历,找到解决方案。平时有空,多读书,特别是历史和经典书籍。

2.4K140

NullReferenceException,就不应该存在!

2017-11-29 16:08 如果要你说出 .NET 三个异常,NullReferenceException 一定会成为其中一个;如果说出 .NET 一个异常,NullReferenceException...它让这么多人印象深刻,是因为它在项目中实在是太常见了,常见到每一个 C#/.NET 入门者必然会遇到。 然而,这个异常本不应该存在!...可是这是真的?说真的一定是因为用 Visual Studio 调试了,Visual Studio 告诉了我们异常发生在哪一句,哪个字段为 null。...然而从真实用户或其他日志那里收集回来数据是没有也不可能有这些信息。...C# 8.0 极有可能为我们带来“可空引用类型”或者“非空引用类型”;如果真的带来了,这将比 JetBrains.Annotations 拥有更大强制性,帮助我们避免出现意外 null 引用,帮助我们可能为

1.1K10

分析与总结常见勒索软件加密算法

CTB_Locker勒索软件加密过程可以粗略地理解为3层加密,第一层是运用内置样本公钥通过ECDH算法加密随机生成 ECDH密钥: ?...关于.net框架更多相关信息,可以wiki上找到: .net framework : 截止至笔者书写此章节是,Jigsaw勒索软件出现了2个版本,本小节分析Jigsaw 勒索软件为第一个版本...粗略地,TeslaCrypt勒索软件同样采用三层加密方法,第一层使用样本内置ECDH公钥加密随机生成 ECDH 密钥。第二层使用随机生成ECDH密钥加密随机生成AES密钥: ?...使用三层加密算法,ECDH+ECDH+AES等,如2.2章节所述勒索软件等。 5....一旦勒索软件作者完全掌握了正确地使用这些加解密算法时,按目前计算水平来看,想还原这些被加密文件可以认为是不可能。所以,针对于勒索软件问题,笔者建议是以防范为主。

3.2K70

分层 Blazor 组件

ASP.NET Core ,可以通过名为标记帮助器新语言项目,实现前所未有的表达水平。标记帮助器是 C# 类,旨在通过分析给定标记树,将它转换为有效 HTML5。...可能会在创建复杂定制 HTML 区块时面对所有分支,都是代码中进行处理;而且开发人员文本文件编写所有内容都是纯文本标记。使用标记帮助器,代码片段数明显减少。...如果不使用级联参数功能,必须在任何需要位置显式注入复杂分层组件任何共享值。... Toggle 组件,Id 级联值用于设置数据目标属性值。 Bootstrap 行话,对话框切换按钮数据目标属性标识,要在用户单击切换按钮时弹出 DIV ID。...请注意,可使用经典 ASP.NET MVC 标记帮助器或 HTML 帮助器,纯 ASP.NET Core 实现相同效果。 可以从 bit.ly/2FdGZat 获取本文源代码。

8.3K10

unity c#面试_spring面试题及答案

有人说.net只能在 windows上面跑,Mono能跨平台,是.net扩展,这说法肯定是不正确C#(.Net)自诞生那天起就为了超越JAVA(应该黑丝2003年,.NET一出就硬抄了JAVA所有的特性...你现在只要知道来自欧洲标准就可以了 由于微软不开源,加上.NET体积比较大,所以开源程序员都希望找到一种可以用C#或者其他书写,却是极度简化版.NET,结果当年欧洲某小国某程序员秘密组织找到了微软内核...描述MeshRender和SkinnedMeshRender关系与不同 Render就是对象3D世界绘制 SkinnedMeshRender都提示未来可能被放弃了,面试官这份题真的很旧了,拜托换一下...Prefab实例化时候用到,主要用于经常会用到物体做成一个集合方便反复使用移动环境,由于Prefab一般体积比较大,常需要实例化,拆分成合适大小AssetBundle,离线下载比较恰当 26...,机会没在这上面踩坑过就是了) gameObject.SetActive(true);//运行时可反复设置 而Awake()是实例化时触发,不可能实例化多次 GameObject.Instatiate

1.3K20

【5min+】 巨大争议?C# 8 接口

它所包含了.net体系可能会涉及到方方面面,比如C#小细节,AspnetCore,微服务.net知识等等。 5min+不是超过5分钟意思,"+"是知识增加。...这就让它和 C# 另外一种事物行成了鲜明对比,是的,抽象类。不知道大家有没有各种面试遇到过这样提问:“接口能有任何访问修饰符?”,“接口和抽象类区别是什么?”...于时,我抱着怀疑态度在网上到处搜索答案。最后C# 官方团队笔记我看到了这样一句话: ?...那么我们真的需要在接口中提供默认实现?那什么情况下我需要这样做?毕竟咱们使用C# 这么多年,就算接口没有提供默认实现也能设计出很好系统来。...因此OOP世界,如果咱们细心来建模的话,我们会把表示行为共性抽象为一个接口:比如鸟会飞,咱们可以抽象一个IFly接口。

53710

NodeJS加密算法(一)

真的了解NodeJS加密模块crypto?本文通过cryptoapi深入了解加密算法 安全加密 当发送方A向接收方B发送数据时,需要考虑问题有: 数据安全性。...OpenSSL推荐使用 pbkdf2 来替换 EVP_BytesToKey ,因此创建 Cipher 类时,建议使用 crypto.pbkdf2 来派生 key 和 iv ,并使用 createCipheriv...可以使用 Cipher 类 update 方法写入纯文本数据,数据输入完成后通过 final 方法返回加密后数据。...所以加密和解密较大内容过程需要分块进行。推荐使用node-rsa库。 非对称密钥概览 ? 密钥配送 密钥配送问题:如何安全地把密钥给到接受者?...交换双方可以不共享任何秘密情况下协商出一个密钥。与 Diffie-Hellman 相比ECDH具有ECC高强度、短密钥长度、计算速度快等优点。

2.2K10

C#系列之编程语言好坏撕逼大战

基本上我很多朋友也转其他语言,理由很简单,因为很多公司不用.NET,那为什么不用呢?因为领导觉得.NET不行,所以要换,问题来了,为什么是“觉得.NET不行"?有数据能说话?还是拍脑袋?...你们就算骗经费也稍微搞点高大上东西行吗?受不了这帮人,特别是某倪姓院士,脑残典范!...另外monotouch在国外很流行,用C#可以开发所有移动平台App,Xamarin也是C#,一次开发适应所有平台,虽然这些国内还不流行,但是未来10年C#和.net真的会如同搂住所说一统天下 是最近开源...Anders Hejlsbergborland原本就开发过jbuilder,所以开发新语言借用大量语法很正常。 说c#抄java是因为c#使用了和java类似的技术,使用中间代码。...另外monotouch在国外很流行,用C#可以开发所有移动平台App,Xamarin也是C#,一次开发适应所有平台,虽然这些国内还不流行,但是未来10年C#和.net真的会如同搂住所说一统天下 是最近开源

2.3K70

C#一句很简单而又很经典代码

一、知识点 二、问题 如果以上四个问题,你很自信,那么以下,您就不要看了,因为我想说东西真的很简单。 如果你开始怀疑自己,可以继续向下看。你自己到底真的理解??? 再看下面这段代码有没有问题?...所以C#语法在对于这种情况,帮我们做了一个处理,如果写了这样代码,直接给出编译报错。C#还是很智能。就是如果我们错误进行一个无意义操作,会直接给出提示。这里给C#语法赞一个。...四、杂谈 这一段代码虽然好像很简单,但是真的很深,楼主工作三年。记得曾经有一次去网易二面,被一个大佬问到这个问题,懵逼了,就乱猜吧,一开始说,那个枚举值x只是get,没有set。...现在想想,能出这个问题大佬,真的很强,一道很简单问题,但是考察东西真的很多很多。...推荐阅读: 一个简单高效低内存.NET操作Excel开源框架 - MiniExcel 推荐一个基于 .NET 开发开源工作流项目 推荐一个使用 .NET 和 Angular 开发在线任务管理工具

9610

C# 8.0 可空引用类型,不止是加个问号哦!你还有很多种不同可空玩法

但是如果你真的把你原有的旧项目迁移到可空类型时候,你就会发现情况远比你想象当中复杂,因为你写代码可能只部分情况下可空,部分情况下不可空;或者传入空时才可为空,传入非空时则不可为空。...---- C# 8.0 可空特性 开始迁移你项目之前,你可能需要了解如何开启项目的可空类型支持: C# 8.0 如何在项目中开启可空引用类型支持 - walterlv 可空引用类型是 C# 8.0...但你是否好奇,即使古老 .NET Framework 4.5 或者 .NET Standard 2.0 开发时候,你也可以编译出支持可空信息程序集出来。...看下图,早期版本 .NET 框架,可空特性实际上是被编译到程序集里面,作为 internal Attribute 类型了。 所以,放心使用可空类型吧!旧版本框架也是可以用。...早期 .NET Framework 或者早期版本 .NET Core 中使用 本文第一小节里面,我们说 Nullable 是编译到目标程序集中,所以不需要引用什么特别的程序集就能够使用到可空引用特性

67420

JAVA和C#,武当和少林之争!

把COM,WFC安到Java头上那不是QJ Java?那样开发出来东西还能算是Java程序?Java还能Write once and run anywhere?...[cchere.net 西西河 Highway] .NET,以及VB.NET, C#都是全新(当然还有其他语言),在这一轮设计,微软全面借鉴了C++,Java以及他们自己搞VJ++,应该说还是比较成功...1.0/1.1有些仓促,2.0,微软则下了不少力气,.NET总体上有了全面进步。大体说来有这么几点。 1)第一流Generics。彻头彻尾全新设计,非常出色。...毕竟使用.NETWindows上更得心应手一些,不论是访问Office文件,开发Windows Services,使用COM+ Infrastructure,联手IIS编写Web App/Web Service...理论上看C#比VB.NET要强一点点,比如C#可以Unsafe Block里面使用Pointer,而VB就压根没有Pointer概念。但是实际应用,两者几乎是一样,难分伯仲。

2.7K100

C#:昨天,今天和明天:和 Anders Hejlsberg 座谈,第二部分

微软 Visual Stuido .NET 产品经理 Tony Goodhew 一次访谈说过,微软研究表明越来越多的人倾向于在编程中使用2种或者更多语言来工作。...上面的转换是立即执行,如同 foreach 循环转换成:从while 循环中获得一个数字一样。这个小小改进非常有利于你更高层次上思考问题。你明白我意思? Osborn:明白。...我知道我刚才是泛化说明,你也可以使用 STL 来作基于模板编程。标准模板库有他伟大地方。我只是说,从更广泛背景上看C++写出应用程序和用 VB 和 C# 写出程序是应用于不同目的。...Hejlsberg: 首先,我非常高兴我们2.0里面加入了泛型编程。你现在看我们做C# 3.0 里面的很多东西都是泛型起作用。...现在我们抛开表面看本质,Java 和 C# 泛型实现机制是截然不同。我认为最大不同在于:.NET平台下泛型不只是一个语言特色。泛型根植于 CLR 和 .NET 类型系统。

85431

等待与希望,.NET Core 发展壮大

不得不说.net core2.0继承了微软家产品简单易用特点,我一个 空荡荡linux服务器执行了6行命令,一个完整.net core程序就跑了起来, 根本不需要像使用传统linux技术一样配各种环境...我是微软脑残粉,可能对微软评价无法令人信服,但客观讲,我可以很自信说, 在编程体验上, 市面上任何技术都不可能和.net技术正面刚。 比C#用起来爽语言有?...比visual studio用起来爽开发环境有? 要是能找出来算你本事大。很多人说,只要能把问题解决好了,使用什么技术和开发环境又有什么差别。...不过.net core出来后就不一样了,跨平台,支持所有主流系统, 加上无敌编程体验,我心动了, 我仿佛觉得我又能重回.net怀抱,又能使用visual studio写C#代码了,我失去幸福即将回到我身边了...这就是希望,看重编程体验程序员希望,虽然希望实现没有进度条可以参考,然而我们本来就是希望与等待过生活,这总比看着只能在windows上跑.net绝望好。

59080
领券