<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[新时代农民工]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/G_linuxer_</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; G_linuxer_]]></copyright><item><title><![CDATA[Linux内核学习轨迹第十一部：系统卡顿、负载高的根因分析与优化（第四节）]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/168861359</link><guid>https://blog.csdn.net/G_linuxer_/article/details/168861359</guid><author>G_linuxer_</author><pubDate>Fri, 23 Oct 2026 11:27:57 +0800</pubDate><description><![CDATA[关键技巧：wchan字段会直接显示进程在内核态阻塞的函数名，比如balance_dirty_pages是脏页回写阻塞、mutex_lock是锁竞争阻塞、blkdev_issue_flush是磁盘IO阻塞，一步定位阻塞根因。系统卡顿、负载过高是生产环境最常见的通用故障，核心痛点是「现象泛化，根因分散」——CPU瓶颈、IO阻塞、内存颠簸、中断风暴、锁竞争都可能导致负载飙升，本小节提供。负载高 + %sy/%soft高，内核态/软中断瓶颈，大概率是中断风暴、系统调用滥用、内存颠簸。]]></description><category></category></item><item><title><![CDATA[Linux内核学习轨迹第十一部： 内存泄漏、OOM的全链路排查（第三节）]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/168754741</link><guid>https://blog.csdn.net/G_linuxer_/article/details/168754741</guid><author>G_linuxer_</author><pubDate>Thu, 22 Oct 2026 11:45:09 +0800</pubDate><description><![CDATA[kmemleak是内核内置的内存泄漏检测器，原理是跟踪内核的内存分配与释放，扫描内存中是否还有指向已分配内存的指针，若没有，则判定为内存泄漏，无需修改代码，仅需开启内核配置即可使用。和用户态OOM（Out Of Memory）两大类，核心痛点是「问题缓慢发生，难以复现，定位难度大」，本小节提供全链路的排查流程与工具链，适配Linux 6.6 LTS内核。开启后，内核运行时检测到内存泄漏，会立即输出完整的警告日志、分配与释放的调用栈，直接定位根因。系列托管API，资源生命周期与设备绑定，自动释放；]]></description><category></category></item><item><title><![CDATA[Linux内核学习轨迹第十一部：死锁、软锁、硬锁的排查与解决（第二节）]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/168634748</link><guid>https://blog.csdn.net/G_linuxer_/article/details/168634748</guid><author>G_linuxer_</author><pubDate>Wed, 21 Oct 2026 09:47:58 +0800</pubDate><description><![CDATA[锁故障是Linux内核与驱动第二大高频稳定性问题，分为死锁、软锁（soft lockup）、硬锁（hard lockup）三类，这类故障的核心痛点是「系统完全卡死，无日志输出，难以复现和定位」，本小节提供标准化的排查流程与解决方案。lockdep直接明确了死锁的根因：CPU0先拿lock2再拿lock1，CPU1先拿lock1再拿lock2，形成循环等待，必然导致死锁，同时给出了完整的调用栈，可直接定位到代码位置。单个CPU核心占用100%，系统卡顿，可响应NMI中断，内核会输出警告日志与栈回溯。]]></description><category></category></item><item><title><![CDATA[Linux内核学习轨迹第十一部：内核panic、oops的解析与根因定位（第一节）]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/168557739</link><guid>https://blog.csdn.net/G_linuxer_/article/details/168557739</guid><author>G_linuxer_</author><pubDate>Tue, 20 Oct 2026 18:09:20 +0800</pubDate><description><![CDATA[kdump是内核原生的崩溃转储机制，内核Panic时会自动启动一个最小的捕获内核，将崩溃内核的完整内存镜像保存到磁盘，重启后可通过crash工具做离线深度分析，适合服务器、工业计算机场景。，覆盖生产环境80%以上的高频故障场景，提供标准化的排查流程、可直接复用的工具命令、根因定位方法与落地方案，彻底解决「故障发生后无思路、无方法、无法复现、无法定位」的核心痛点。pstore是内核原生的持久化存储机制，将崩溃日志保存到预留的物理内存中，重启后可完整读取，无需额外存储设备，是嵌入式平台的首选方案。]]></description><category></category></item><item><title><![CDATA[Android系统性能瓶颈定位全攻略：四步法+八大维度深度剖析]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/168139911</link><guid>https://blog.csdn.net/G_linuxer_/article/details/168139911</guid><author>G_linuxer_</author><pubDate>Fri, 16 Oct 2026 17:09:01 +0800</pubDate><description><![CDATA[irq/irq_handler_entry,irq/irq_handler_exit（你设备上irq:*通配符抓不到 exit，必须显式写全）、dma/*、gpiod/*Expected/Actual Timeline、主线程、RenderThread、BufferTX、VsyncWorkDuration(app/sf/appSf)每个 CPU 核心的行、目标线程的状态泳道（Runnable/ Running / Sleeping / Blocked）、全局 Runnable 计数。]]></description><category></category></item><item><title><![CDATA[Android系统全核调度揭秘：SystemUI响应背后的黑科技]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/168027686</link><guid>https://blog.csdn.net/G_linuxer_/article/details/168027686</guid><author>G_linuxer_</author><pubDate>Thu, 15 Oct 2026 18:08:51 +0800</pubDate><description><![CDATA[CPU 调度升压：临时提升对应核心的调度优先级/频率，依次对 CPU0/1/2/3 四个核心执行 boost，是前台进程的专属调度加速。利用率钳位计算：计算每个核心的实际 CPU 利用率，配合 boost 设定频率的上下限，确保升压幅度匹配实际负载，避免过度调频。计算 CFS（完全公平调度器）就绪队列的总负载，这里统计的是 CPU3 的队列负载，为后面把线程迁移到 CPU3 运行做依据。重新计算调度实体的负载，把新线程的负载计入 CPU0 的调度队列，更新全局负载平衡。，选了负载更低的核心执行。]]></description><category></category></item><item><title><![CDATA[CSPRNG安全基石：熵源与nonce唯一性揭秘]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/167472158</link><guid>https://blog.csdn.net/G_linuxer_/article/details/167472158</guid><author>G_linuxer_</author><pubDate>Sat, 10 Oct 2026 11:11:53 +0800</pubDate><description><![CDATA[随机数是密码安全的基石，其质量直接决定系统可靠性。CSPRNG依赖高质量熵源（如TRNG）播种，确保输出不可预测；而熵不足或种子泄露将导致密钥、nonce、ECDSA临时k等关键参数被破解。实践中应禁用rand()，统一使用RAND_bytes等安全接口。尤其注意GCM/CTR中nonce不可重复，同一密钥下复用nonce将导致机密性与完整性双重崩溃。对称密钥需全随机生成，非对称私钥亦须由CSPRNG驱动，优先在安全芯片内生成。系统级熵源（如Linux getrandom、Windows BCryptGen]]></description><category></category></item><item><title><![CDATA[TLS 双向认证全解析：证书、握手]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/167270356</link><guid>https://blog.csdn.net/G_linuxer_/article/details/167270356</guid><author>G_linuxer_</author><pubDate>Thu, 08 Oct 2026 14:49:27 +0800</pubDate><description><![CDATA[mTLS双向认证中，服务器与客户端需预置对方信任的CA证书、自身证书及私钥。握手时双方验证证书链：从叶子证书逐级验签至信任根，校验主机名、有效期、用途（serverAuth/clientAuth）及签名。关键步骤包括证书链构建、签名验证、主机名匹配与私钥持有证明（CertificateVerify）。通过SSL_get_verify_result()获取验证结果，失败可定位至未知CA、证书不匹配或吊销等问题。使用verify_callback可审计每级证书，确保安全。证书与私钥必须配对，否则握手失败。]]></description><category></category></item><item><title><![CDATA[TLS1.3加密套件解析:命名拆解、协商流程与选套件策略]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/166572746</link><guid>https://blog.csdn.net/G_linuxer_/article/details/166572746</guid><author>G_linuxer_</author><pubDate>Thu, 24 Sep 2026 10:20:15 +0800</pubDate><description><![CDATA[这也是你早期 SSL_CTX_set_cipher_list、128 个套件、ALPN 那类问题的系统化梳理。是 RSA 就要 RSA 证书。set_cipher_list 只管 1.2，TLS1.3 必须用 set_ciphersuites，混用导致"怎么配都不生效"。握手后可 SSL_get_current_cipher() 读实际协商结果、SSL_get_version() 读实际版本。应在握手后打印 SSL_get_version/current_cipher/peer_tmp_key?]]></description><category></category></item><item><title><![CDATA[TLS 1.3密钥派生揭秘：从ECDH到全链路加密]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/166341244</link><guid>https://blog.csdn.net/G_linuxer_/article/details/166341244</guid><author>G_linuxer_</author><pubDate>Tue, 22 Sep 2026 09:55:18 +0800</pubDate><description><![CDATA[以 ECDH 共享为根，用 HKDF 结合"标签 + 握手转录"逐级、确定性地派生出彼此隔离的全部密钥。双方输入相同，独立算出完全一致的密钥树，无需再传输任何密钥。三个 Secret 层（Early / Handshake / Master）对应三个时代（epoch），每次 Extract 都是一次"密钥换层"。把分布可能不均匀的输入密钥材料 IKM，结合可选 salt，提炼成定长、伪随机的 PRK。它是密钥派生的 Context，保证密钥和"实际发生的握手过程"绑定。32 字节原始共享密钥。]]></description><category></category></item><item><title><![CDATA[X.509证书链全解析：从信任根到TLS握手]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/166111570</link><guid>https://blog.csdn.net/G_linuxer_/article/details/166111570</guid><author>G_linuxer_</author><pubDate>Sun, 20 Sep 2026 10:49:19 +0800</pubDate><description><![CDATA[前面讲完非对称算法，本篇解决"凭什么相信对面发来的公钥"——证书就是把"公钥"和"身份"用 CA 签名绑定的凭证。DN（Distinguished Name）是一组键值对，代码里用 X509_NAME_add_entry_by_txt 添加 CN、O。服务器发证书链（叶子+中间）→ 客户端用本地根验链 → 校验 SAN 与访问主机名一致 → 用证书公钥验证服务器签名，确认身份。主体密钥标识、颁发者密钥标识，用于在多级、多密钥场景下快速对齐"这张证书由上级哪把公钥签发"，是大型证书链的重要辅助。]]></description><category></category></item><item><title><![CDATA[X25519与前向安全：密钥协商]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/166104960</link><guid>https://blog.csdn.net/G_linuxer_/article/details/166104960</guid><author>G_linuxer_</author><pubDate>Sun, 20 Sep 2026 10:26:17 +0800</pubDate><description><![CDATA[椭圆曲线离散对数只有平方根级攻击，P-256 就有 128 位强度，公钥仅 65 字节（未压缩）、共享 32 字节，运算快、功耗低，特别适合 POS/嵌入式。双方各自加入"私色"，交换混合色后再各自加私色，最终得到相同的"共同色"，窃听者只看到两次混合色却无法还原。，随后双方各自 HKDF 派生密钥。双方得到同一个 S，而窃听者只拿到 A、B、g、p，面对离散对数难题，算不出 a、b，也就算不出 S。逆向（难）：给定 g、y、p，求 x = log_g(y) mod p —— 离散对数，极难。]]></description><category></category></item><item><title><![CDATA[ECC椭圆曲线密码学]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/165313943</link><guid>https://blog.csdn.net/G_linuxer_/article/details/165313943</guid><author>G_linuxer_</author><pubDate>Mon, 14 Sep 2026 14:58:35 +0800</pubDate><description><![CDATA[取模 p 后，点变成离散的、有限的集合（约 p 个点），点与点之间没有几何连续性，只有代数运算关系，这正是它能用于密码的原因——离散、难逆推。在 POS/嵌入式上，这意味着密钥、签名、证书、运算量、功耗全部数量级地减小——这是 v7 明确选 P-256 的根本原因。+ G（d 次），实际用"倍点-加法"（double-and-add）在 O(log d) 步完成，类似模幂的快速幂。用 EC_POINT_mul(grp, Q, d, NULL,NULL,ctx) 手工算出 d·G，和密钥生成的公钥逐点相同。]]></description><category></category></item><item><title><![CDATA[ECIES加密原理：一行公式搞定安全通信]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/165299477</link><guid>https://blog.csdn.net/G_linuxer_/article/details/165299477</guid><author>G_linuxer_</author><pubDate>Mon, 14 Sep 2026 11:51:19 +0800</pubDate><description><![CDATA[S = r × Q = r × (d × G) 代入 Q = d × G = (r × d) × G。解密方：S' = d × R = d × (r × G) = (d·r) × G。加密方：S = r × Q = r × (d × G) = (r·d) × G。所以：(r × d) × G = (d × r) × G 即：S = S'代入 R = r × G = (d × r) × G。所以 HKDF(S.x) = HKDF(S'.x)所以 S = S' 所以 S.x = S'.x。]]></description><category></category></item><item><title><![CDATA[OpenSSL RSA所有权陷阱：一文看懂set1/set0/get1/get0]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/164999280</link><guid>https://blog.csdn.net/G_linuxer_/article/details/164999280</guid><author>G_linuxer_</author><pubDate>Fri, 11 Sep 2026 16:23:43 +0800</pubDate><description><![CDATA[OpenSSL 3.0 引入了 provider 架构，EVP_PKEY 内部不再直接持有 RSA *，而是通过 provider 管理。的，生命周期更短，建议优先用 EVP_PKEY_get1_RSA 或直接用 EVP_PKEY 层面的 API（如 EVP_PKEY_get_bits）。：OpenSSL 3.0 中 EVP_PKEY_get0_RSA 返回的指针可能是。不要RSA_free，pkey 不能提前释放。返回内部缓存的 RSA*（可能是临时构造）转移给 EVP_PKEY。不要RSA_free。]]></description><category></category></item><item><title><![CDATA[libcrypto RSA加密真相：从数学原理到使用安全陷阱]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/164969609</link><guid>https://blog.csdn.net/G_linuxer_/article/details/164969609</guid><author>G_linuxer_</author><pubDate>Fri, 11 Sep 2026 11:09:54 +0800</pubDate><description><![CDATA[知道 n、e，要算出 d，必须先知道 φ(n)，而求 φ(n) 等价于把 n 分解成 p、q（大整数分解难题）。防止"算法混淆攻击"：签名里明确写"这是 SHA-256 的摘要"，验签时防止攻击者把 SHA-256 摘要冒充成别的算法摘要。用 BN_mod_exp 分别算 m1、m2，再按公式组合，并和直接 c^d mod n 比较，结果完全相等。RSA 只解决"密钥安全送达"，数据加密交给对称密码，各取所长。选 e、d 满足 e·d ≡ 1 (mod φ(n))，即 e·d = 1 + k·φ(n)。]]></description><category></category></item><item><title><![CDATA[ libcrypto 别忽略这行代码，否则加密会失败]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/164965621</link><guid>https://blog.csdn.net/G_linuxer_/article/details/164965621</guid><author>G_linuxer_</author><pubDate>Fri, 11 Sep 2026 10:29:48 +0800</pubDate><description><![CDATA[在RSA-OAEP加密中，显式设置oaep_md和mgf1_md为SHA-256至关重要。第二组代码仅设oaep_md，导致mgf1_md默认为SHA-1（尤其在OpenSSL 1.1.x中），引发跨平台解密失败、安全强度下降及PCI PTS合规风险。第一组代码通过显式设置两者，确保行为一致、兼容性强、安全达标。建议所有RSA-OAEP场景统一使用三行配置，避免隐蔽漏洞。]]></description><category></category></item><item><title><![CDATA[TLS SHA-256/384/512 与 HMAC/HKDF 详解]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/164865268</link><guid>https://blog.csdn.net/G_linuxer_/article/details/164865268</guid><author>G_linuxer_</author><pubDate>Thu, 10 Sep 2026 17:36:49 +0800</pubDate><description><![CDATA[在原生 64 位 CPU（POS 的 ARM Cortex-A 就是）上，64 位运算一条指令完成，SHA-512 处理每字节的轮数反而更少，吞吐可能高于 SHA-256。HKDF 是哈希无关的框架，把内部 HMAC 换成 HMAC-SHA512 就成了 HKDF-SHA512（PRK/OKM 每块 64 字节，输出上限 255×64）。HMAC-SHA256 的 ipad/opad/key 阈值是 64，HMAC-SHA384/512 是 128。：哈希是公开的、确定性的，任何人都能计算。]]></description><category></category></item><item><title><![CDATA[TLS AES 加密模式详解]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/164837204</link><guid>https://blog.csdn.net/G_linuxer_/article/details/164837204</guid><author>G_linuxer_</author><pubDate>Thu, 10 Sep 2026 14:24:32 +0800</pubDate><description><![CDATA[最经典的演示是 ECB 加密 Linux 企鹅（ECB Penguin）：图片加密后，每 16 字节独立加密，相同颜色区域产生相同密文，企鹅轮廓依然清晰可见。P[i+1] = D(K, C[i+1]) XOR C[i]，C[i] 出错会直接 XOR 进 P[i+1]。它们的密钥流只依赖 IV/计数器和密钥，不依赖密文，所以密文错误只影响当前块的 XOR 结果。P[i] 整块错误 + P[i+1] 对应 1 位错误，P[i+2] 恢复。，就像查密码本一样，每个明文块对应固定的密文块，所以叫"电子密码本"。]]></description><category></category></item><item><title><![CDATA[TLS DES / 3DES 调用 API 测试]]></title><link>https://blog.csdn.net/G_linuxer_/article/details/164732540</link><guid>https://blog.csdn.net/G_linuxer_/article/details/164732540</guid><author>G_linuxer_</author><pubDate>Wed, 09 Sep 2026 11:57:04 +0800</pubDate><description><![CDATA[要求：3DES 全部改用三个独立密钥 K1≠K2≠K3 实测（不再 K1=K2=K3 冒充）；所有 IV 一律非零，CBC 首块用链接公式 C1 = E(K)(IV⊕P1) 验证，不再用全零 IV。首块分步复算 E(K3)[D(K2)[E(K1)(P1⊕IV)]] == ede3_cbc 输出 + 往返。：K1=K2=K3 时 3DES 输出和单 DES 完全一样（测试 [5][6] 就是验证这个）。：传 len=10，加解密"成功"，但解密回来只剩前 8 字节，后 2 字节丢了，不报错。]]></description><category></category></item></channel></rss>