GithubHelp home page GithubHelp logo

clouddeepteam / amazeui Goto Github PK

View Code? Open in Web Editor NEW
13.5K 844.0 2.5K 23.21 MB

Zero Trust Network Hiding Protocol (NHP) Open Source Implementation. OpenNHP Docs: https://opennhp.org/

Home Page: https://opennhp.org/

License: Apache License 2.0

Makefile 1.30% Go 93.53% C 1.76% Batchfile 0.70% Shell 1.87% HTML 0.84%
cybersecurity zero-trust zero-trust-network-access zero-trust-security

amazeui's Introduction

en zh-cn de ja fr es

OpenNHP Logo

OpenNHP: Zero Trust Network-infrastructure Hiding Protocol

Build Status Version License


Challenge: AI transforms the Internet as a "Dark Forest"

The rapid advancement of AI technologies, particularly large language models (LLMs), is significantly reshaping the cybersecurity landscape. The rise of Autonomous Vulnerability Exploitation (AVE) represents a major leap in the AI era, streamlining the exploitation of vulnerabilities, as highlighted in this research paper. This development dramatically increases the risk for any exposed network services, echoing the Dark Forest Hypothesis of the Internet. AI-powered tools are continuously scanning the digital environment, swiftly identifying and exploiting weaknesses. Consequently, the Internet is evolving into a "Dark Forest," where visibility equates to vulnerability.

Vulnerability Risks

Gartner research predicts a rapid increase in AI-driven cyberattacks. This shifting paradigm calls for a reevaluation of traditional cybersecurity strategies, with a focus on proactive defenses, rapid response mechanisms, and the adoption of network hiding technologies to safeguard critical infrastructure.

Vision: Making the Internet Trustworthy

The openness of TCP/IP protocols has driven the explosive growth of internet applications but also exposed vulnerabilities, allowing malicious actors to gain unauthorized access and exploit any exposed IP address. Although the OSI network model defines the 5th layer (Session Layer) for managing connections, few effective solutions have been implemented to address this.

NHP, or the "Network-infrastructure Hiding Protocol", is a Zero Trust communication protocol designed to function at the OSI Session Layer, which is optimal for managing network visibility and connections. NHP's key objective is to conceal protected resources from unauthorized entities, granting access only to verified, authorized users through continuous verification, contributing to a more trustworthy Internet.

Trustworthy Internet

Solution: OpenNHP Fixes the Network Visibility Control

OpenNHP is the open-source implementation of the NHP protocol. It is cryptography-driven and designed with security-first principles, implementing a true zero-trust architecture at the OSI Session Layer.

OpenNHP as the OSI 5th layer

OpenNHP builds upon earlier research in network hiding technology, utilizing modern cryptographic framework and architecture to ensure security and high performance, thereby overcoming the limitations of previous technologies.

Network Hiding Protocol 1st Generation 2nd Generation 3rd Generation
Core Technology Port Knocking Single Packet Authorization (SPA) Network-infrastructure Hiding Protocol (NHP)
Authentication Port sequences Shared Secrets Modern Crypto Framework
Architecture No Control Plane No Control Plane Scalable Control Plane
Capability Hide Ports Hide Ports Hide Ports, IPs and Domains
Access Control IP Level Port Level Application Level
Open Source Projects knock (C) fwknop (C++) OpenNHP (Go)

It is crucial to choose a memory-safe language like Go for OpenNHP development, as emphasized in the US Government technical report. For a detailed comparison between SPA and NHP, refer to the section below.

Security Benefits

Since OpenNHP implements Zero Trust principles at the OSI Session Layer, it offers significant benefits:

  • Reduces attack surface by hiding infrastructure
  • Prevents unauthorized network reconnaissance
  • Mitigates vulnerability exploitation
  • Stops phishing via encrypted DNS
  • Protects against DDoS attacks
  • Enables fine-grained access control
  • Provides identity-based connection tracking
  • Attack attribution

Architecture

The OpenNHP architecture is inspired by the NIST Zero Trust Architecture standard. It follows a modular design with the 3 core components: NHP-Server, NHP-AC and NHP-Agent, as illustrated in the below diagram.

OpenNHP architecture

Please refer to the OpenNHP Documentation for detailed information about architecture and workflow.

Cryptographic Algorithms

Cryptography is at the heart of OpenNHP, providing robust security, excellent performance, and scalability by utilizing cutting-edge cryptographic algorithms. Below are the key cryptographic algorithms and frameworks employed by OpenNHP:

Compared to RSA, ECC offers superior efficiency with stronger encryption at shorter key lengths, improving both network transmission and computational performance. The table below highlights the differences in security strength, key lengths, and the key length ratio between RSA and ECC, along with their respective validity periods.

Security Strength (bits) DSA/RSA Key Length (bits) ECC Key Length (bits) Ratio: ECC vs. DSA/RSA Validity
80 1024 160-223 1:6 Until 2010
112 2048 224-255 1:9 Until 2030
128 3072 256-383 1:12 After 2031
192 7680 384-511 1:20
256 15360 512+ 1:30

The Noise Protocol is built around the Diffie-Hellman key agreement and provides modern cryptographic solutions like mutual and optional authentication, identity hiding, forward secrecy, and zero round-trip encryption. Proven for its security and performance, it is already used by popular applications like WhatsApp, Slack and WireGuard.

Efficient key distribution is essential for implementing Zero Trust. OpenNHP supports both PKI and IBC. While PKI has been widely used for decades, it depends on centralized Certificate Authorities (CA) for identity verification and key management, which can be time-consuming and costly. In contrast, IBC allows for a decentralized and self-governing approach to identity verification and key management, making it more cost-effective for OpenNHP's Zero Trust environment, where billions of devices or servers may need protection and onboarding in real-time.

CL-PKC is a scheme that enhances security by avoiding key escrow and addressing the limitations of Identity-Based Cryptography (IBC). In most IBC systems, a user's private key is generated by a Key Generation Center (KGC), which introduces significant risks. A compromised KGC can lead to the exposure of all users' private keys, requiring full trust in the KGC. CL-PKC mitigates this issue by splitting the key generation process, so the KGC only has knowledge of a partial private key. As a result, CL-PKC combines the strengths of both PKI and IBC, offering stronger security without the drawbacks of centralized key management.

Key Features

  • Mitigates vulnerability exploitation by enforcing "deny-all" rules by default
  • Prevents phishing attacks through encrypted DNS resolution
  • Protects against DDoS attacks by hiding infrastructure
  • Enables attack attribution through identity-based connections
  • Default-deny access control for all protected resources
  • Identity and device-based authentication before network access
  • Encrypted DNS resolution to prevent DNS hijacking
  • Distributed infrastructure to mitigate DDoS attacks
  • Scalable architecture with decoupled components
  • Integration with existing identity and access management systems
  • Support for various deployment models (client-to-gateway, client-to-server, etc)
  • Cryptographically secure using modern algorithms (ECC, Noise Protocol, IBC)
Click to expand feature details
  • Default-deny access control: All resources are hidden by default, only becoming accessible after authentication and authorization.
  • Identity and device-based authentication: Ensures that only known users on approved devices can gain access.
  • Encrypted DNS resolution: Prevents DNS hijacking and associated phishing attacks.
  • DDoS mitigation: Distributed infrastructure design helps protect against Distributed Denial of Service attacks.
  • Scalable architecture: Decoupled components allow for flexible deployment and scaling.
  • IAM integration: Works with your existing Identity and Access Management systems.
  • Flexible deployment: Supports various models including client-to-gateway, client-to-server, and more.
  • Strong cryptography: Utilizes modern algorithms like ECC, Noise Protocol, and IBC for robust security.

Quick Demo

This section provides a brief demonstration of how OpenNHP functions. The server protected by OpenNHP is https://acdemo.opennhp.org. Normally, port 443 would be open for HTTPS services, but with the NHP-AC component installed, all ports are closed by default, enforcing a Zero Trust "deny-all" policy.

1) The Protected Server is "Invisible" to Unauthenticated Users

By default, any attempt to connect to the protected server will result in a TIME OUT error, as all ports are closed, making the server appear offline and effectively "invisible."

OpenNHP Demo

Port scanning the server will also return a TIME OUT error.

OpenNHP Demo

2) After Authentication, the Protected Server Becomes Accessible

OpenNHP supports a variety of authentication methods, such as OAuth, SAML, QR codes, and more. For simplicity, this demo uses a basic username/password authentication service at https://demologin.opennhp.org to demonstrate the process.

OpenNHP Demo

Once you click the "Login" button, authentication is completed successfully, and you are redirected to the protected server. At this point, the server becomes "visible" and accessible on your device.

OpenNHP Demo

Deployment

OpenNHP supports multiple deployment models to suit different use cases:

  • Client-to-Gateway: Secures access to multiple servers behind a gateway
  • Client-to-Server: Directly secures individual servers/applications
  • Server-to-Server: Secures communication between backend services
  • Gateway-to-Gateway: Secures site-to-site connections

Please refer to the OpenNHP Documentation for detailed deployment instructions.

Comparison between SPA and NHP

The Single Packet Authorization (SPA) protocol is included in the Software Defined Perimeter (SDP) specification released by the Cloud Security Alliance (CSA). NHP improves security, reliability, scalability, and extensibility through a modern cryptographic framework and architecture, as demonstrated in the AHAC research paper.

- SPA NHP NHP Advantages
Architecture The SPA packet decryption and user/device authentication component is coupled with the network access control component in the SPA server. NHP-Server (the packet decryption and user/device authentication component) and NHP-AC( the access control component) are decoupled. NHP-Server can be deployed in separate hosts and supports horizontal scaling.
  • Performance: the resource-consuming component NHP-server is separated from the protected server.
  • Scalability: NHP-server can be deployed in distributed or clustered mode.
  • Security: the IP address of the protected server is not visible to the client unless the authentication succeeded.
Communication Single direction Bi-direction Better reliability with the status notification of access control
Cryptographic framework Shared Secretes PKI or IBC, Noise Framework
  • Security: proven secure key exchange mechanism to mitigate the MITM threats
  • Low cost: efficient key distribution for zero trust model
  • Performance: high performance encryption/decryption
Capability of Hiding network infrastructure Only server ports Domain, IP, and ports More powerful against various attacks(e.g., vulnerabilities, DNS hijack, and DDoS attacks)
Extensibility None, only for SDP All-purpose Support any scenario that needs service darkening
Interoperability Not available Customizable NHP can seamlessly integrate with existing protocols (e.g., DNS, FIDO, etc.)

Contributing

We welcome contributions to OpenNHP! Please see our Contributing Guidelines for more information on how to get involved.

License

OpenNHP is released under the Apache 2.0 License.

Contact

For more detailed documentation, please visit our Official Documentation.

References


🌟 Thank you for your interest in OpenNHP! We look forward to your contributions and feedback.

amazeui's People

Contributors

agileago avatar aidistan avatar billtec avatar craftleon avatar dependabot[bot] avatar evi1m0 avatar fay-jai avatar geminiwen avatar hongdp avatar huangshaoyan avatar huangzhipeng avatar jerry-0824 avatar jin0121 avatar justin-layerv avatar karen-y321 avatar karlew avatar kkirsche avatar legend0858 avatar max-zs avatar minwe avatar msdlisper avatar peterdavehello avatar poppinlp avatar prayagverma avatar rural21st avatar tombyrer avatar wilesun avatar windcbf avatar yinheli avatar yyliu358 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amazeui's Issues

sticky组件有bug

this.original = {
      offsetTop: this.$element.offset().top,
      width: this.$element.width()
 };

这样初始化就计算了offsetTop,后面动态给固定元素前的内容添加内容,会导致滚动固定不准确。

amazeui-master中demo的路由是怎么弄的?

router.get('/:component', function(req, res) {
var component = req.params.component;
res.redirect('/#' + component);
});
geg时怎么引入component变量的?不是express的router.get("index",function(req,res))吗!怎么可以换成变量
还有就是res.redirect重定向的地址怎么是#xxxx,其他js中也没看到对相应请求的get啊

重新规划 CSS 单位的使用

除了考虑可访性问题,还应该考虑:

  • IE8 支持;
  • 需要精确到像素级别的场景:比如左右两个元素垂直对齐,使用 em/rem 有的浏览器计算出来会有细微的差异

手机上的.am-icon-bars样式的三横和.am-icon-caret-down样式的下三角图标不见了

我发现了个问题,在手机上类似
.am-icon-caret-down:before {
content: "\f0d7";
}
的CSS不起作用,导致了am-icon-bars的三横, .am-icon-caret-down的下三角图标不显示(不晓得是不是这个原因哈)
我是直接用在http://amazeui.org/getting-started 下载的妹子UI里的示例, 用coolpad8702 4G android4.3 欧鹏/自带的浏览器实验的
后来我用其它手机测试,居然没问题,这是手机的兼容性问题

能否增加本地存储相关的信息

最近看了禅道的前端框架 zui发现其中有一个很好的特性希望能够被支持
http://zui.sexy/docs/javascript.html#store

本地存储的支持, 之所以这样说是因为我的项目中有一些影音文件和js文件比较大,客户每次访问都需要下载,不知道能不能够实现这个存储东西来指定存数对象 第二次之后的访问可以直接调取存数的对象

AMUI 1.0 Beta2

CSS

  • 基本样式
  • 样式统一Normalize
  • 基础设置Base
  • 文字排版Typography
  • 打印样式Print
  • 网格Grid
  • 等分区块Block Grid
  • 辅助类Utility
  • 按钮Button
  • 代码Code
  • 表单Form
  • 图片Image
  • 表格Table
  • 小徽章Badge
  • 面包屑导航Breadcrumb
  • 按钮组Button-group
  • 关闭按钮Close
  • 评论列表Comment
  • 图标Icon
  • 输入框组Input-group
  • 列表List
  • 导航Nav
  • 导航条Topbar
  • 分页Pagination
  • 面板Panel
  • 进度条Progress
  • 缩略图Thumbnail
  • CSS 动画Animation
  • 文章页Article

JS 插件

  • Alert
  • Button
  • Collapse
  • Dropdown #77 #78
  • Modal
  • Popover
  • Progress
  • Slider
  • OffCanvas
  • ScrollSpy
  • ScrollSpyNav
  • Smooth Scroll #35
  • Sticky #55
  • Tabs
  • Cookie
  • FastClick
  • FullScreen

Web 组件

官方组件

  • 折叠面板Accordion
  • 分割线Divider
  • 单张图片Figure
  • 页脚Footer
  • 图片画廊Gallery
  • 回顶部Gotop #6
  • 页头Header
  • 简介Intro
  • 内容列表List
  • 菜单Menu
  • 工具栏Navbar
  • 分页Pagination
  • 段落Paragraph
  • 图片轮播Slider
  • 选项卡Tabs
  • 标题栏Titlebar

第三方组件

  • 多说Duoshuo
  • 百度地图Map
  • 美洽客服Mechat
  • 搜狐畅言Changyan

关于gulp的一点问题

确认一下,我执行gulp后的结果一直停在下面,是就这样吗?

[11:22:33] Finished 'widgetsFile' after 24 ms
[11:22:33] Starting 'copyWidgetJs'...
[11:22:33] Start copy UI js files to build dir....
[11:22:33] Starting 'buildLess'...
[11:22:33] Finished 'buildLess' after 5.87 ms
[11:22:33] Starting 'hbsHelper'...
[11:22:33] Finished 'hbsHelper' after 4.91 ms
[11:22:33] Starting 'watch'...


[11:22:33] Finished 'watch' after 192 ms
[11:22:34] Finished 'copyWidgetJs' after 1.08 s
[11:22:34] Starting 'copyUIJs'...
[11:22:34] Finished 'copyUIJs' after 26 ms
[11:22:34] Starting 'transport'...
[11:22:34] Finished 'transport' after 777 ms
[11:22:34] Starting 'concat'...
[11:22:36] Finished 'concat' after 1.66 s


[11:22:36] Starting 'clean'...
[11:22:36] Finished build js, cleaning...
[11:22:36] Finished 'clean' after 2.71 ms
[11:22:36] Starting 'buildJs'...
[11:22:36] Finished 'buildJs' after 8.56 μs
[11:22:36] Starting 'default'...
[11:22:36] Finished 'default' after 9.19 μs

另外,gulp中主要做的是为了生成dist目录里的东西吧,有几个编译后会变的文件是该放入.gitignore吗

    modified:   dist/assets/js/amui.js
    modified:   dist/assets/js/amui.min.js
    modified:   less/amui.all.less

Figure 组件图片弹出后触发关闭操作改进

目前点击非图片区域时才可以关闭图片,在图片比例和视口比例对应时没有空白区域可点击,两个思路:

  • 增加额外的关闭按钮
  • 直接点击图片也能关闭(需要判断用户是进行 Pinch 操作还是 Tap 操作)

主机商说占用资源过多

在wordpress我将一个分类取出来,单独用amazeui来写了一个页面来显示,然后放主机上。
早上被告之站点占用资源过多关闭了,然后我将amazeui这个文件夹删了之后,网站才可以,不知是什么原因?

我是直接用demo里面的页面来的,会不会是因为里面的一些链接的问题?比如js,css文件。。。

am-margin-top-lg am-padding-top-lg 错误

.am-margin-top-lg 这个样式应该只有margin-top才对,Firebug查看实际却是同时有margin-top:2.4rem和padding-top:2.4rem;

  1. .am-padding-top-lg 这个样式不存在;
  2. 请检查.am-margin和.am-padding是否与文档里说明的一致!

JS选项卡组件致命问题,官方速查!

错误DEMO: 【复制下面的段落并且chrome切换到移动设备模拟,滑动主体试试】
★ 请打开下面网址复制和查看源码
http://jsfiddle.net/xpbox8oo/

当你给 am-tab-panel容器内加入任何标签之后, 选项卡切换就出现故障,【注意,我给切换卡主体全的文本全部包了个h1,你也可以多放点其他标签进来】

但如果你直接给 am-tab-panel容器内加入文本节点,那么移动端可以通过 文本节点的触控范围来切换选项卡

BUG:
1.只能在am-tab-panel里面插入文本节点,不能插入任何标签,,否则选项卡故障!

留言:
这么致命的问题请开发人员速速排查解决! 拖了我的进度啦TAT..不过很感谢你们的贡献!让我们能够使用到这么好的产品

z-index 统计

减少 z-index 乱入,所有组件中 z-index 统计目录:

框架文件还是太大

压缩后css+js一起,也要有400kb以上,太大了,是bootstrap的2倍多。

希望能够想办法尽量瘦身,个人感觉在300kb左右,可以接受。

还要说下,这个框架真得不错!呵呵

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.