自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (5)
  • 收藏
  • 关注

原创 【6】Strongswan bus 与 logger

以下是bus数据结构与logger关系。

2025-03-21 19:16:12 164

原创 ECC(Elliptic Curve Cryptography)椭圆曲线密码详解

椭圆曲线密码基于离散对数难题公钥密码ECC 非对称密钥功能:加密、签名、密钥交换ECC是RSA的后继更短的密钥长度、更快的签名、更快的密钥协商私钥长度为256bits, 32字节。大小在曲线的域范围内(field size),256bits的整数。此范围内任意整数都是合法的私钥。公钥为曲线上的点(EC points),坐标为{x,y}.能够压缩为一个坐标长度+1bit,为压缩的公钥(compressed public key)。不同的椭圆曲线具有不同的安全级别、不同的性能、不同的密钥长度。EC

2020-10-03 10:43:39 15850 2

原创 【国民技术 N32G031】开篇

N32G03x系列MCU采用32位Arm® Cortex®-M0内核,主频达48MHz,具备64KB加密Flash和丰富外设接口。该系列产品集成多种密码算法硬件加速引擎,支持高速加密和低功耗管理,适用于通用型应用场景。开发环境搭建可参考相关开源工具和技术博客资源。

2025-07-11 13:58:43 168

原创 【边缘计算】场景

工业互联网通过数据预处理有效提取现场关键信息,减轻平台处理负担。统一接口汇聚上传云端数据,提升系统部署安全性并解决跨域访问难题。该方案避免了为每个业务系统单独开放端口,显著降低网络攻击风险,同时实现局域网与广域网的跨域通信。

2025-06-22 20:47:01 246

原创 【边缘计算】ECA、ECN、ECI

边缘计算网络解决方案摘要 针对5G时代多接入、高安全、低时延的网络需求,本文提出三层次边缘计算解决方案:在接入层(ECA)通过网关下移、虚拟网元部署和固移综合接入技术,实现异构终端统一管控;在网络层(ECN)采用扁平化与融合架构,集成路由交换、安全监管等功能;在互联层(ECI)构建智能城域网和分层隧道方案,通过SR+EVPN协议和SD-WAN技术实现跨域低时延连接。该方案将用户面设备下沉至边缘DC,通过预配置策略实现监控流量分流至MEP平台,最终为各类智能应用提供高质量网络保障。

2025-06-22 20:24:01 437

原创 【边缘计算】引论基础

边缘计算将成为未来数据处理的重要方式,超50%数据需在网络边缘侧处理。其面临海量异构设备联接、实时性、智能化应用、数据优化、安全隐私等五大挑战。边缘计算是靠近数据源的分布式开放平台,提供网络、计算、存储等核心能力,包含EC-IaaS、PaaS、SaaS三层架构,有三种落地形态:边缘网关、边缘云和云边缘。边缘网络需具备就近处理、以用户为中心、高质量性能、协同工作等特性,涉及园区网、接入网和边界网关等基础设施。当前网络架构需优化以实现低时延、大带宽等业务需求。

2025-06-21 12:06:59 634

原创 【防火墙 pfsense】3 portal

这些误报往往会让强制门户的用户习惯忽略这些警告,这当然是非常糟糕的,因为他们可能会因此忽略真正的中间人攻击。例如,一个连接到使用强制门户的网络的用户,在该网络中 URL 被重定向到身份验证页面,他们可能会发现即使在断开与强制门户网络的连接后,浏览器仍然会重定向到那个页面。->用户体验不佳问题:最后,有人认为强制门户对用户不友好 —— 它们首先迫使终端用户经历一系列繁琐的步骤才能连接到网络,而且如果对强制门户设置了时间限制或数据限制,用户常常可能不得不再次经历这些繁琐的步骤。(3)强制门户的一些配置。

2025-04-25 18:15:25 293

原创 【防火墙 pfsense】2配置

如果你为广域网(WAN)使用动态主机配置协议(DHCP),你很可能可以将这些字段留空,因为它们通常会由你的互联网服务提供商(ISP)自动分配。生成有效的 SSH-2 公钥 / 私钥对,将公钥添加到 pfSense 中管理员的授权 SSH 密钥列表中,配置 PuTTY 以登录到 pfSense,记住将私钥添加到 SSH 身份验证选项中。->配置广域网(WAN)和局域网(LAN)接口,分配设备标识符,如 eth0、eth1 等;->如将WAN 接口将被分配到 eth0,而 LAN 接口将被分配到 eth1;

2025-04-25 16:06:35 417

原创 【防火墙 pfsense】1简介

每个连接状态大约需要 1 KB 的内存,这比一些消费级路由器所需的内存要少,但如果你预计会有大量的同时连接,你仍然需要留意内存的使用情况。一些软件包比其他软件包需要更多的磁盘空间。代理服务器还往往会进行大量的读写操作,所以,如果你要安装代理服务器,磁盘的输入输出(I/O)性能可能是你应该考虑的因素。因此,在这种情况下,使用 PCI-E 硬件是更好的选择,因为它的速度最高可达 31.51 GB/s(对于 16 通道插槽上的 PCI-E 4.0 标准),而最快的传统 PCI 总线速度仅为 533 MB/s。

2025-04-24 16:39:41 564

原创 【22】Strongswan sa ——IKE_SA task_manager_v1

如果找到,则判断child_sa的状态机为CHILD_INSTALLED,如果是ikev1_child_sa_is_redundant 冗余的,则根据配置删除,否则创建quick_mode_create 任务添加到任务队列。(1)task_manager_v1_create 创建一个private_task_manager_t对象,该对象继承task_manager_v1_t,task_manager_t实现了处理message的task任务接口。作为响应方被动加载ike_cfg_t配置以开启ike。

2025-04-21 17:30:37 409

原创 【21】Strongswan sa ——IKE_SA task_manager_t process_message接口

任务管理器处理任务并处理消息交换。对于传入请求,任务管理器会按需创建新任务,并在所有可用任务中处理请求。对于传出请求,任务管理器通过任务传递请求以构建请求,响应由每个任务处理以完成。对于初始 IKE_SA 设置,将对多个任务进行排队:一个用于未经身份验证的 IKE_SA 设置,一个用于身份验证,一个用于CHILD_SA设置,可能还有一个用于虚拟 IP 分配。在 Main Mode 中,如果我们已经继续下一个消息对,则必须忽略来自前一个消息对的消息。否则,延迟的重新传输可能会被视为对新请求的回复。

2025-04-21 11:13:58 294

原创 【20】Strongswan sa ——IKE_SA set_state|process_message|

b.若是IKE_ESTABLISHED,并且上一个状态为IKE_CONNECTING(发起方)或IKE_PASSIVE(响应方),记录IKE_ESTABLISHED的时间戳,以用于生命周期管理,更新状态机STAT_REKEY、STAT_REAUTH、STAT_DELETE的调度。ike_sa_t:IKE_SA 包含与对等体连接相关的密码信息。(1)get_id 获取ike_sa_id_t 对象,该对象标识一个IKE_SA,包含发起方和响应方的SPI(国标是cookie),以及ike主版本,是否发起方等。

2025-04-18 17:44:30 342

原创 【19】Strongswan encoding详解 message2

get_data 返回的是adjusted_data数据;根据message的类型和是否请求消息还是回应消息比较,返回上述message_rules的规则。遍历message的payloads链表,比较payload的类型,返回匹配的payload。遍历该message的所有payload rule,比较payload type。get_metadata和set_metadata,操作元数据,元数据另表。二级比较,第一级是比较payload的类型,第二级是notify的类型。

2025-04-15 17:33:48 160

原创 【18】Strongswan encoding详解 message 1

返回的数据是 IKE 标头和纯文本负载(如果有)的串联,直到加密负载的标头末尾,然后是加密负载的纯文本数据(如果有)。有效负载的加密是通过消息的内部规则进行评估的,并在generation生成之前完成。负载的顺序可能会更改,因为所有要加密的负载都已添加到加密负载中,加密负载始终是最后一个。如果存在加密的有效负载,则使用给定的 aead 转换(如果给定)对其进行解密和验证。检查消息是否已使用 fragment() 进行编码和分段,以及是否实际生成了片段(如果不是,is_encoded() 将为 TRUE)。

2025-04-15 11:20:07 798

原创 【17】Strongswan bus详解2

child_state_change、ike_keys、ike_derived_keys、child_keys、child_derived_keys、child_updown、child_rekey、children_migrate、ike_updown、ike_rekey、ike_update、ike_reestablish_pre等与ike_state_change类似。关闭之间的句柄,然后用新的句柄赋值private_file_logger_t的out。set_options:设置文件日志的选项。

2025-04-14 13:31:52 668

原创 【16】Strongswan bus详解1 数据结构

添加一个listener到总线;发往总线收到的所有消息会经由总线转发给所有的listener。日志logger_t和这些listener区分开开,单独处理。总线接收事件并将其发送给所有已注册的侦听器listener。一个 logger entry。继承bus上述属性和方法;每个组的已注册日志级别。

2025-04-13 10:37:22 224

原创 【15】Strongswan watcher详解2

(1)如果count为0,没有要监听的句柄,则watcher状态设置为WATCHER_STOPPED,返回,返回值为JOB_REQUEUE_NONE,这会返回到“【11】Strongswan processor 详解1”中的process_job返回处,销毁watcher job。再调用add时,再加入。(2)watcher状态机WATCHER_QUEUED-》 WATCHER_RUNNING;(5)watcher 监听fd有事件时,(3)使用poll机制,(4) 调用poll。

2025-04-11 19:09:05 214

原创 【14】Strongswan watcher详解1

(3)watcher状态机:WATCHER_STOPPED-》WATCHER_QUEUED,将watcher job以最高的优先级加入processor的job队列。watcher job的处理函数为watch,processor会从线程池中获取一个线程执行watcher job的watch函数,该线程是private_watcher_t 实例的运转线程。(2)否则从fds链表和last链表中移除这个监听fd事件,并调用update_and_unlock函数,向管道写入’u’消息。同时记录entry总数。

2025-04-11 16:49:12 210

原创 【13】Strongswan scheduler详解

schedule_job、schedule_job_ms都调用的schedule_job_tv,只不过之前有个时间格式转换为timeval_t。flush:移除所有调度堆中的job。

2025-04-11 10:51:34 193

原创 【12】Strongswan processor 详解2

将线程数设置为 0 (this->desired_threads = 0;)并取消所有阻塞job,然后等待所有线程终止。

2025-04-10 17:14:28 233

原创 【11】Strongswan processor 详解1

否则则取出worker线程优先级一致的job,调用process_job处理job,注意互斥锁的加锁与解锁,入时解锁处理job,出时加锁继续下一次的保护。值越小,优先级越高,从最高优先级的job开始,避让算法,prio_threads[i]大于working_threads[i]说明该i级别的job处理线程不够,reserved保存缺口数量,在for循环执行到下一个优先级的job时,reserved >= idle的化就直接退出不处理,优先高级别的job。set_threads 设置的线程数量会保存。

2025-04-10 16:09:52 620

原创 Strongswan linked_list_t链表 注释可独立运行测试

2025-04-02 10:29:55 577

原创 Strongswan hashtable enumerator backtrace可运行观察

2025-04-01 09:18:46 514

原创 【10】Strongswan collections —— array

//array 代码解释与测试

2025-03-26 16:14:29 504

原创 【9】Strongswan collections —— enumerator

/以目录枚举为例子,说明enumerator。

2025-03-25 14:09:16 441

原创 【7】Strongswan backends 配置

【代码】【7】Strongswan backends 配置。

2025-03-24 11:04:01 133

原创 【5】Strongswan bus

【代码】【5】Strongswan bus。

2025-03-21 14:38:15 185

原创 【4】StrongSwan XFRM Policies & sa

【代码】【4】StrongSwan XFRM Policies & sa。

2025-03-20 15:11:37 152

原创 strongswan面向对象解析

strongswan面向对象解析:

2025-03-19 16:59:30 112

原创 strongswan对称算法plugin

strongswan对称算法plugin:https://blog.csdn.net/wq897387/article/details/123486699。

2025-03-19 16:48:45 118

原创 【2】Strongswan 源码认识

一类是libstrongswan的plugin,一类是libcharon的plugin。使用pkkey接口与linux kernel的xfrm模块进行交互,高实验性阶段。libstrongswan的plugin主要提供加密,认证,数据库相关的功能。eap-TLS、eap-ttls、eap-peap等插件使用的TLS实现。包含基于TPM的平台信任服务(PTS)和SWID标签处理的代码。strongSwan库,包含守护进程和实用程序使用的基本函数。管理attr sql插件提供的属性和IP地址池的实用程序。

2025-03-19 16:45:19 773

原创 【3】Strongswan ipsec NAT

相反,单独的端口用于 UDP 封装的 ESP 和带有非 ESP 标记的 IKE。因为网络中的NAT的存在,导致IPSEC 的ESP协议 在NAT环境下最多只能有一个主机能建立通道,无法实现多台机器同时在NAT环境下进行ESP通信(因为仅靠源地址和目标地址无法区分多台NAT后的主机)。图为IKE_SA_Init消息里面的带的字段,这两个字段里面的data内容是对源地址和源端口的digest,对方收到这个digest后,跟收到的地址和端口进行同样的digest比较,如果不一致,就说明网络中存在NAT。

2025-03-19 11:31:31 187

原创 【1】Strongswan术语

需要被IPsec处理的流,会被指向到一个SA。SA包含协议AH或ESP。模式transport或tunnel模式。pattern源IP加目的IP对。NAT的PORT对。方向属性,取值分别为:out、in、fwd。SP是一条规则,决定一条流(flow)是否需要被IPsec处理。SP的处理有三种方式:丢弃、Strongswan术语。

2025-03-18 11:13:39 209

原创 我的TLS1.3之旅

【001】The connection itself is secure because symmetric cryptography is used to encrypt the data transmitted.【002】The keys are uniquely generated for each connection and are based on a shared secret negotiated at the beginning of the session, also known as

2020-12-27 00:28:46 715

原创 openssl 随机数

struct rand_meth_st { int (*seed) (const void *buf, int num); int (*bytes) (unsigned char *buf, int num); void (*cleanup) (void); int (*add) (const void *buf, int num, double randomness); int (*pseudorand) (unsigned char *buf, int num);

2020-09-25 09:03:07 2422

原创 openssl 配置文件

typedef struct { char *section; char *name; char *value;} CONF_VALUE;Openssl采用哈希表来存放这些信息,后面会看到,LHASH 作为函数的参数。实例:#include "/usr/include/openssl/opensslconf.h"#include <openssl/conf.h>int main(){ CONF *conf; long eline,result;

2020-09-24 22:40:00 837

原创 openssl BIO

struct bio_method_st { int type; char *name; int (*bwrite) (BIO *, const char *, size_t, size_t *); int (*bwrite_old) (BIO *, const char *, int); int (*bread) (BIO *, char *, size_t, size_t *); int (*bread_old) (BIO *, char *, int);

2020-09-24 18:26:20 368

原创 openssl DSO

struct dso_st { DSO_METHOD *meth; /* * Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS doesn't use * anything but will need to cache the filename for use in the dso_bind * handler. All in all, let each method control its ow

2020-09-24 17:32:17 566

原创 openssl 内存分配

struct app_mem_info_st { CRYPTO_THREAD_ID threadid; const char *file; int line; const char *info; struct app_mem_info_st *next; /* tail of thread's stack */ int references;};struct mem_st { void *addr; int num; const

2020-09-24 17:06:11 260

原创 openssl 哈希表

struct lhash_node_st { void *data; struct lhash_node_st *next; unsigned long hash;};本结构是一个单链表。其中,data用于存放数据地址,next为下一个数据地址,hash为数据哈希计算值。struct lhash_st { OPENSSL_LH_NODE **b; //b指针数组用于存放所有的数据,数组中的每一个值为数据链表的头指针 OPENSSL_LH_COMPFUNC c

2020-09-24 16:24:14 284

深入浅出ARM7 LPC214x

这是针对初学者的材料 包括很多实例 是针对飞利浦系列的

2010-03-17

周立功NXP_LPC21xx22xx_系列ARM_芯片的启动程序

周立功NXP_LPC21xx22xx_系列ARM_芯片的启动程序分解-钟常慰[1].pdf ) 免费

2012-11-07

DUI0448G_v2p_ca9_trm.pdf

qemu-system-arm仿真vexpress-a9 需要的数据手册 vexpress a9开发板

2020-04-13

ARM元件库文件

lpc arm ZLG元件库

2012-11-07

ARM中文指令集 查找方便

ARM中文指令集 便于查找 有实例说明 方便易用 HTML格式 ARM中文指令集 便于查找 有实例说明 方便易用 HTML格式 ARM中文指令集 便于查找 有实例说明 方便易用 HTML格式

2010-03-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除