千家信息网

如何用Carlifornium实现使用PSK算法的DTLS协议

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何用Carlifornium实现使用PSK算法的DTLS协议,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Carlifornium是E
千家信息网最后更新 2026年11月01日如何用Carlifornium实现使用PSK算法的DTLS协议

如何用Carlifornium实现使用PSK算法的DTLS协议,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Carlifornium是Eclipse上的一个CoAP+DTLS框架,CoAP和DTLS是啥就先不说了,上代码。

//指定公私钥文件信息private static final char[] KEY_STORE_PASSWORD = "123456".toCharArray();private static final String KEY_STORE_LOCATION = "demo2.jks";private static final char[] TRUST_STORE_PASSWORD = "123456".toCharArray();private static final String TRUST_STORE_LOCATION = "demo2.jks";......//加载公私钥文件SslContextUtil.Credentials clientCredentials = SslContextUtil.loadCredentials(SslContextUtil.CLASSPATH_SCHEME + KEY_STORE_LOCATION, "demo2", KEY_STORE_PASSWORD,KEY_STORE_PASSWORD);Certificate[] trustedCertificates = SslContextUtil.loadTrustedCertificates(SslContextUtil.CLASSPATH_SCHEME + TRUST_STORE_LOCATION, "demo2", TRUST_STORE_PASSWORD);DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder();//指定PSK密钥builder.setPskStore(new StaticPskStore("Client_identity", "secretPSK".getBytes()));builder.setIdentity(clientCredentials.getPrivateKey(), clientCredentials.getCertificateChain(),CertificateType.RAW_PUBLIC_KEY, CertificateType.X_509);builder.setTrustStore(trustedCertificates);builder.setRpkTrustAll();builder.setConnectionThreadCount(1);dtlsConnector = new DTLSConnector(builder.build());

这里的demo2.jks,是用jdk的keytool生成的,我是偷懒了,用的同样的公私钥,KEY_STORE_LOCATION 应该是自己的密钥

keytool -genkey -alias demo2 -keypass 123456 -keyalg EC -keysize 256 -validity 3650 -keystore demo2.jks -storepass 123456

keytool生成的pass要与代码中的password一致, alias的名称也要一致。

客户端代码

DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder();//指定PSK的密钥,字符串secretPSK就是密钥builder.setPskStore(new StaticPskStore("Client_identity", "secretPSK".getBytes()));builder.setConnectionThreadCount(1);//指定用PSK密钥,不然会自动查找ECDHE的公私钥builder.setSupportedCipherSuites("TLS_PSK_WITH_AES_128_GCM_SHA256");dtlsConnector = new DTLSConnector(builder.build());

交互过程抓包大约是这样:

在Server Hello 里能看到使用的是我们指定的PSK算法。

如果两边的配置密钥错误,能看到数据失败:

pom.xml中的依赖如下

                        org.eclipse.californium                californium-core                2.3.0                                org.eclipse.californium                scandium                2.3.0                                org.slf4j                slf4j-api                1.7.30                                org.apache.logging.log4j                log4j-api                2.13.3                                org.apache.logging.log4j                log4j-core                2.13.3                                org.apache.logging.log4j                log4j-slf4j-impl                2.13.3        

看完上述内容,你们掌握如何用Carlifornium实现使用PSK算法的DTLS协议的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

密钥 公私 算法 一致 代码 内容 文件 方法 更多 问题 生成 束手无策 为此 上代 信息 原因 名称 字符 字符串 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 新华互联网科技学院 上海互联网科技有限公司 互联网与未来科技 互联网科技博客 四川狮子座互联网科技 国外互联网科技网站 卓越科技互联网 招聘 佳云科技和互联网广告 互联网经济与金融科技 浙江互联网科技研学营 洛阳昕诺飞互联网科技有限公司 内蒙古九一互联网科技 佛山市拉法互联网科技有限公司 深圳无忧互联网科技 互联网科技股为什么大涨 济南小医互联网科技有限公司招聘 数字科技和互联网金融哪个好 承德科技产业互联网平台 北京瑞云互联网科技有限公司 广州为想互联网科技有限公司 互联网通讯科技 深圳互联网科技公司 互联网科技的未来发展 互联网5g黑科技有哪些 江苏互联网智能科技产品出厂价 互联网科技平台产品运营 玉溪新华互联网科技怎么选 黑龙江互联网科技公司 北京瑞云互联网科技有限公司
0