开源
MSL:可扩展的安全消息传递框架
来源:元经纪     阅读:455
网站管理员
发布于 2023-04-01 06:45
查看主页

概述

消息安全层 (MSL) 是一种可扩展且灵活的安全消息传递框架,可用于在两个或多个通信实体之间传输数据。数据也可能与特定用户相关联,并在需要时被视为机密或不可重放。

文档

MSL 框架提供了框架及其实现要求的完整描述。配置指南介绍了一些常见的客户端和服务器 MSL 配置。框架文档和配置指南由外部安全公司审查。没有发现任何问题。

应用程序必须实现和使用的一组公共接口和类记录在Public Javadoc中。所有代码的文档,包括内部类和私有方法,都可以在完整的Javadoc中找到。

如有问题和支持,请直接联系Wesley Miaw。错误和功能请求应提交到Issue Tracker中。

第三方库

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

Java MSL 代码库需要org.jsonBouncy Castle库。单元测试需要JUnit 4Hamcrest。集成测试需要TestNG

JavaScript MSL 代码库包括 lib/ 目录中的一些第三方库,最著名的是Clarinet解析器和jsrsasign

C++ MSL 代码库需要OpenSSL并在 lib/ 目录中包含一些第三方库:Chromium NumericsRapidJSONRSA ConverterUTF-8 with CPP in a Portable Way。单元测试还包括测试 lib/ 目录中的一些第三方库:Google MockGoogle Test

所有第三方库均受其各自许可协议的约束。

入门

要构建使用 MSL 进行通信的应用程序,您必须通读并理解MSL 框架。这是必要的,因为与其他安全协议和库不同,您必须选择如何保护您的通信并验证您的实体和用户。配置指南可以帮助您做出这些决定。

MSL 堆栈的应用程序接口是MslControl. 单个 MSL 网络的应用程序配置是MslContext. 您的应用程序可能参与多个 MSL 网络,因此有多个实例,但只应使用MslContext一个。MslControl特定于消息的配置,例如该消息的用户或安全属性,在 的各个实例中指定MessageContext

JAVA

IntelliJ IDEA用户应将 Java MSL 代码导入为 Gradle 项目。

Eclipse用户应该使用 Gradle IDE(在 Eclipse Marketplace 中可用)和 Web 工具平台(包含在 Eclipse IDE 中供 Java EE 开发人员使用)将 Java MSL 代码导入为 Gradle 项目。

在examples/simple/src/main/java/server/下提供了一个示例服务器。Eclipse Gradle 插件会将此项目导入为可以部署到 Tomcat 服务器上的 Web 项目。IntelliJ 用户必须手动配置运行配置以将项目工件部署到/msl-example-server. 示例服务器是一个 J2EE servlet,它将响应来自示例 JavaScript 客户端的请求。示例服务器 MSL 配置特定于此服务器,不应用于配置您的应用程序,但它可以用作这样做的基础。

集成测试在integ-tests/src/main/java/下提供。integ-tests这些测试可以使用Gradle target运行test。Eclipse Gradle 插件会将此项目导入为可以部署到 Tomcat 服务器上的 Web 项目。IntelliJ 用户必须手动配置运行配置以将项目工件部署到/msl-test-server.

examples/mslcli/src/main/java/下提供了命令行客户端和服务器。命令行客户端可以配置为与任何 MSL 服务器一起工作。命令行服务器是一个示例 MSL 服务器,必须从命令行运行。有关详细信息,请参阅示例/mslcli/readme.txt 。

您可能需要安装Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files才能使用超过特定大小的加密密钥。

JavaScript

JavaScript MSL 代码库采用支持最新Web Crypto API规范的 JavaScript 执行环境。如果您使用的是 Web 浏览器,则可能需要启用实验性功能或功能标志才能启用 Web Crypto。

  • Chrome 浏览器 37+ 对于早期版本:chrome://flags/#enable-experimental-web-platform-features 在 Linux 上,必须单独安装 libnss 3.16.2+。
  • 边缘
  • Firefox 34+ 对于早期版本:about:config dom.webcrypto.enabled
  • 浏览器 11+
  • 野生动物园 8+

您的浏览器可能不支持所有 Web Crypto API 算法、密钥大小和功能。如果您遇到 Web 加密操作问题,请查看您的浏览器版本的发行说明,以确定它是否支持您尝试执行的操作。

要在 JavaScript 应用程序中包含 JavaScript MSL 堆栈,您必须包含 MSL 配置所需的所有 MSL JavaScript 源文件。可以在src/test/javascript/msltests.html中找到所需源文件的示例列表。

在src/examples/simple/src/main/javascript/client/下提供了一个示例客户端。示例客户端是一个网页,它将向示例 Java 服务器发送请求。示例客户端 MSL 配置特定于此客户端,不应用于配置您的应用程序,但它可以用作执行此操作的基础。

C++

C++ MSL 代码库需要 C++11 和 CMake。

代码库已在以下环境下构建和测试:

  • 适用于 Mac 操作系统的 Xcode 8 和 Homebrew(gcc6、openssl)。 编译器标志:-std=c++0x -DGTEST_DONT_DEFINE_FAIL=1 -DRAPIDJSON_HAS_STDSTRING=1.
  • 适用于 iOS 的 Xcode 8。 编译器标志:-std=gnu++11 -DGTEST_DONT_DEFINE_FAIL=1 -DRAPIDJSON_HAS_STDSTRING=1

[/hidecontent]

 

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
塑料行业数字化营销:互联网时代的市场拓展
夏泳:加快推进“5G+北斗”行业应用
推动社交媒体规范化 构建健康网络生态
秘鲁驻华大使:华为为秘鲁的数字化转型作出了积极努力
“超级光盘”是这样诞生的

首页

分类

定制方案

消息

我的