密码学系列之九:密钥管理

news2024/11/17 15:33:38

密钥管理

  • 1. 密钥管理概述
    • 1.1 密钥管理的主要内容
    • 1.2 密钥管理的原则
    • 1.3 密钥管理的层次结构
  • 2. 密钥的生命周期
  • 3. 密钥分发
    • 3.1 无中心的密钥分发
    • 3.2 有中心的密钥分发
  • 4. 密钥协商技术
    • 4.1 Diffie-Hellman密钥交换协议
    • 4.2 端-端协议
  • 5. 密钥托管
    • 5.1 密钥托管密码体制基本组成
    • 5.2 托管加密标准

1. 密钥管理概述

现代密码体制要求密码算法是可以公开评估的,决定整个密码体制安全性的因素是密钥的保密性。也就是说,在密码系统的设计时,需要解决的核心问题是密钥管理问题,而非密码算法问题。

密钥是密码系统中的可变部分。密钥管理就是在授权各方之间实现密钥关系的建立和维护的一整套技术和程序,涉及密钥从产生到最终销毁的整个过程,包括密钥的生成、存储、分发与协商、使用、备份与恢复、更新、撤销和销毁等。

1.1 密钥管理的主要内容

(1)密钥生成和检验

密钥产生设备主要是密钥生成器,一般使用性能良好的发生器装置产生伪随机序列,以确保所产生密钥的随机性。

(2)密钥交换和协商

典型的密钥交换主要有两种形式:集中式交换方案和分布式交换方案。前者主要依靠网络中的“密钥管理中心”根据用户要求来分配密钥,后者则是根据网络中各主机相互间协商来生成共同密钥。生成的密钥通过手工方式或安全信道秘密传送。

(3)密钥保护和存储

对所有的密钥必须有强力有效的保护措施,提供密码服务的密钥装置要求绝对安全,密钥存储要保证密钥的机密性、认证性和完整性,而且要尽可能减少系统中驻留的密钥量。密钥在存储、交换、装入和传送过程中的核心是保密,其密钥信息流动应是密文形式。

(4)密钥更换和装入

任何密钥的使用都应遵循密钥的生存周期,绝不能超期使用,因为密钥使用时间越长,重复几率越大,外泄可能性越大,被破译的危险性就越大。此外,密钥一旦外泄,必须更换与撤消。密钥装人可通过键盘、密钥注入器、磁卡等介质以及智能卡、系统安全模块(具备密钥交换功能)等设备实现。密钥装入可分为主机主密钥装入、终端机主密钥装人二者均可由保密员或专用设备装入,一旦装入就不可再读取。

1.2 密钥管理的原则

(1)明确密钥管理的策略和机制:策略是密钥管理系统的高级指导,而机制是实现和执行策略的具体技术与方法。

(2)全面安全原则:必须在密钥的产生、存储、分发、 装入、使用、备份、更换和销毁等全过程中对密钥采取妥善的安全管理。

(3)最小权利原则:指只分配给用户进行某一事务处理所需的最小的密钥集合。

(4)责任分离原则:指一个密钥应当专职一种功能,不要让一个密钥兼任几种功能。

(5)密钥分级原则:指对于一个大的系统,所需要的密钥的种类和数量都很多,根据密钥的职责和重要性,把密钥划分为几个级别。

(6)密钥更换原则: 指密钥必须按时更换。否则,即使采用很强的密码算法,只要攻击者截获足够多的密文,密钥被破译的可能性就非常大。

(7)密钥应有足够的长度: 密码安全的一个必要条件密钥有足够的长度。

(8)密钥体制不同,密钥管理也不相同:传统密码体制与公开密钥密码体制是性质不同的两种密码,因此在密钥管理方面有很大的不同。

1.3 密钥管理的层次结构

按照密钥的生存周期、功能和保密级别,一般将密钥分为:会话密钥、密钥加密密钥和主密钥

系统使用主密钥通过某种密码算法保护密钥密密钥,再使用密钥加密密钥通过密码算法保护会话密钥会话密钥基于某种加解密算法来保护明文数据。在整个密钥层次体系中,各层密钥的使用由相应层次的密钥协议控制。

(1)会话密钥(Session Key)

会话密钥主要用于对两个通信终端用户的交换数据进行加密,也称数据加密密钥(Data Encrypting Key)。会话密钥的生存周期非常短,通常在会话建立初生成,在会话结束后销毁,主要用来对传输的数据进行保护。会话密钥大多数是临时的、动态生成的,可由通信双方协商得到,也可由密钥分配中心分配

(2)密钥加密密钥(Key Encrypting Key)

密钥加密密钥主要用于对要传送的会话密钥进行加密,也称为二级密钥(SecondaryKey)、次主密钥或辅助密钥。密钥加密密钥的生存周期相对较长,由于它主要用来协商或传送会话密钥,一旦泄露可导致在其使用周期内的所有会话密钥泄露。

(3)主密钥(Master Key)

主密钥主要用于对密钥加密密钥或会话密钥的保护,使得这些密钥可以实现在线分发。主密钥对应于层次化密钥结构中的最高层次,它是由用户选定或由系统分配给用的、可在较长时间内由用户所专有的秘密密钥,在某种程度上,主密钥还起到标识用户的作用。它的生存周期最长,受到严格的保护。

请添加图片描述

2. 密钥的生命周期

密钥的生命周期是指密钥从产生到最终销毁的整个过程。在这个生命周期中,密钥处于4种不同的状态中:

  • ①使用前状态:密钥不能用于正常的密码操作
  • ②使用状态:密钥是可用的,并处于正常使用中
  • ③使用后状态:密钥不再正常使用,但为了某种目的对其进行离线访问是可行的
  • ④过期状态:密钥不再使用,所有的密钥记录已被删除

Menezes Orschot和 Vanstone提出的密钥生命周期图,包括用户登记、用户初始化、密钥生成、密钥安装、密钥登记、密钥使用、密钥更新、密钥备份、密钥恢复、密钥存档、密钥撤销、密钥的注销与销毁共12个阶段。

请添加图片描述

3. 密钥分发

通过密钥分发机制,通信双方中的一方或密钥分配中心选取一个秘密密钥,在不让其他人(除密钥分配中心)看到密钥的情况下,将其传送给通信双方中的另一方。为防止攻击者得到密钥,须时常更新密钥,密码系统的强度依赖于密钥分配技术。

按照是否需要第三方可信机构来分,秘密密钥分发分为无中心的密钥分发和有中心的密钥分发两种方式。

3.1 无中心的密钥分发

无中心的密钥分发方式不需要密钥分发中心的参与,用户直接将密钥传送给对方,参与各方需要事先共享系统参数或秘密密钥,或对方的公开密钥等。

(1)有密钥的密钥分发

通信方之间预先通过秘密渠道分配一个共享密钥,又称密钥加密密钥,或者知道对方的公钥。

密钥分发过程如下:

  • A向B发出建立会话密钥的请求和一个一次性随机数 N 1 N_1 N1
  • B用与A共享的主密钥对应答的消息加密,并发给A,应答消息中包括:B选取的会话密钥、B的身份, f ( N 1 ) f(N_1) f(N1)和另一个一次性随机数 N 2 N_2 N2
  • A用新建立的会话密钥加密 f ( N 2 ) f(N_2) f(N2)并发送给B

(2)无密钥的密钥分发

Shamir提出一个无密钥分发协议,设初始化参数为一个公开的大素数 p p p,密钥分发过程如下:

  • ①A随机选取一个小于 p − 1 p-1 p1的秘密数 a a a,然后选择随机密钥 K ( 1 ≤ K ≤ p − 1 ) K(1 \le K \le p-1) K(1Kp1)作为与B通信的会话密钥,计算 K a   m o d   p K^a \bmod p Kamodp发送给B
  • ②B接收到 K a   m o d   p K^a \bmod p Kamodp,随机选取一个小于 p − 1 p-1 p1的秘密数 b b b,计算 ( K a ) b   m o d   p (K^a)^b \bmod p Ka)bmodp发送给A;
  • ③A将接收到的值,进行 a − 1 a^{-1} a1次幂指数运算,得到 K b   m o d   p K^b \bmod p Kbmodp发送给B
  • ④B将接收到的值,进行 b − 1 b^{-1} b1次幂指数运算,得到会话密钥 K   m o d   p K \bmod p Kmodp

Shamir的无密钥分发协议没有提供身份认证,A和B都没有向对方证明自己的身份。假如攻击者C截取了A给B发送的消息,就可以冒充B与A通信。因而使用该协议时,需要有其他的配套协议提供身份认证。

3.2 有中心的密钥分发

如果所有用户都要求支持加密服务,则任意一对希望通信的用户都必须有一共享密钥。如果有n个用户,共需保存 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2个密钥.随着用户增多,需要预分配的密钥数量将大大增加,每个用户需要管理的密钥数量也增多。

为了解决这一问题,引入密钥分发中心(KDC,Key Distribution Center)来对密钥的分发进行管理,每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,用于这一对用户之间的保密通信。通信完成后,会话密钥即被销毁。系统中的每个用户只需要保存与密钥分发中心之间的预分配密钥。

Needham-Schroeder 密钥分发协议

1978年,罗格·尼德哈姆(Roger Needham)和麦克·绍罗耶德(MiKe Schroeder)提出了Needham-Schroeder 密钥分发协议,该协议由中心生成秘密密钥。其设计思想影响深远,其中最著名的派生协议就是Kerberos密钥分发协议

协议流程如下,其中 C C C代表密钥分发中心, A A A B B B为通信双方。

  • A → C : I D A , I D B , N A A \to C:ID_A, ID_B,N_A ACIDA,IDBNA

    A A A向密钥分发中心 C C C发送明文消息 I D A , I D B , N A ID_A, ID_B,N_A IDA,IDBNA

  • C → A : E − K A C ( I D B , N A , K A B , E − K B C ( I D A , K A B ) ) C \to A:E - K_{AC}(ID_B,N_A,K_{AB},E-K_{BC}(ID_A,K_{AB})) CAEKAC(IDBNAKABEKBC(IDA,KAB))

    密钥分发中心 C C C A A A发送证书 E − K B C ( I D A , K A B ) E-K_{BC}(ID_A,K_{AB}) EKBC(IDA,KAB),并由 A A A把此证书转交给 B B B。由于只有 A A A拥有同密钥分发中心之间的密钥 K A C K_{AC} KAC,因而只有 A A A能够解密这条消息,从而防止有人冒充 A A A向密钥分发中心提交请求所造成的风险。

  • A → B : E − K B C ( I D A , K A B ) A \to B:E-K_{BC}(ID_A,K_{AB}) ABEKBC(IDAKAB)

    A A A B B B转交证书 E − K B C ( I D A , K A B ) E-K_{BC}(ID_A,K_{AB}) EKBC(IDA,KAB),由于只有 B B B拥有 K B C K_{BC} KBC,因而只有 B B B能够解读这个证书以取得会话密钥 K A B K_{AB} KAB

  • B → A : E − K A B ( N B ) B \to A:E-K_{AB}(N_B) BAEKAB(NB)

    B B B A A A进行一次质询响应。

  • A → B : E − K A B ( N B − 1 ) A \to B:E-K_{AB}(N_B-1) ABEKAB(NB1)

    A A A响应 B B B的请示,并将随机数 N N N 1 1 1,表明 A A A在线并且可以通信。

这个协议也存在漏洞: B B B无法判断他从密钥分发中心经由 A A A收到的 K A B K_{AB} KAB是否是新的。因而,一旦 K A B K_{AB} KAB泄露,任何人都可以通过重发协议第③步来冒充 A A A

4. 密钥协商技术

密钥协商目的是通信双方在网络中通过交换信息来生成一个双方共享的会话密钥。典型的密钥协议是Diffie-Hellrman密钥交换协议,该协议是一个无身份认证要求的双方密钥协商方案,在这个协议基础上改进的端对端协议(Station-to-Station Pratocol)是一个更安全的密钥协商协议。

4.1 Diffie-Hellman密钥交换协议

Diffie-Hellman密钥交换协议由Diffie和M.Hellman在1976年提出的,可用于网络环境下通信双方安全地协商一个密钥。实现过程如下:

p p p是一个大素数, g ∈ Z p g\in Z_p gZp是模 p p p的一个本原元, p p p g g g公开,可为所有用户所共用。

  • (1) A A A随机选取一个大数 a ( 0 ≤ a ≤ p − 2 ) a(0 \le a \le p-2) a(0ap2),计算 g a   m o d   p g^a \bmod p gamodp传送给 B B B
  • (2) B B B随机选取一个大数 b ( 0 ≤ b ≤ p − 2 ) b(0 \le b \le p-2) b(0bp2),计算 g b   m o d   p g^b \bmod p gbmodp传送给 A A A
  • (3) A A A计算 k ≡ ( g b ) a   m o d   p k \equiv (g^b)^a \bmod p kgb)amodp
  • (4) B B B计算 k ≡ ( g a ) b   m o d   p k \equiv (g^a)^b \bmod p kga)bmodp

通信双方 A A A B B B各自计算出共同的会话密钥 k k k: k ≡ ( g b ) a   m o d   p ≡ ( g a ) b   m o d   p ≡ g a b   m o d   p k \equiv (g^b)^a \bmod p \equiv (g^a)^b \bmod p \equiv g^{ab} \bmod p kgb)amodpga)bmodpgabmodp

双方Diffie-Hellman密钥交换协议很容易扩展到三人或更多人的密钥协商。然而随着人数增加,通信的轮数迅速增加,因此在现实通信中该方法不适合用于群密钥协商。

Diffie-Hellman密钥交换协议不包含通信双方的身份认证过程,处于通信双方 A A A B B B通信中间的攻击者能够截获并替换他们之间的密钥协商交互的消息,从而监听到他们的通信内容,这种攻击被称为中间人攻击。

4.2 端-端协议

为了克服中间人攻击,W.Diffie和P.C.Van Orschot等人于1992年提出DH密钥协商协议的改进协议-端-端协议(STS),该协议基于公钥基础设施引入了数字签名算法,在通信过程中对双方进行身份认证。

假定存在可信中心CA,其签名算法用 S i g n Sign Sign表示,与之对应的签名验证算法用 V e r Ver Ver表示。域中的每个用户可以事先向CA注册并申请一个公钥证书,

C ( A ) C(A) C(A) C ( B ) C(B) C(B)分别表示用户 A A A B B B的证书,Sign^和Sign;分别表示利用A私钥和B私钥进行签名算法

简化的端-端协议描述如下:

p p p是一个大素数, g ∈ Z g \in Z gZ是模 p p p的一个本原元, p p p g g g公开。

(1) A A A随机选取 a a a 0 ≤ a ≤ p − 2 0 \le a \le p-2 0ap2,计算 g a ≡ g a   m o d   p g_a \equiv g^a \bmod p gagamodp传送给用户 B B B

(2) B B B随机选取 b b b 0 ≤ b ≤ p − 2 0 \le b \le p-2 0bp2,计算 g b ≡ g b   m o d   p g_b \equiv g^b \bmod p gbgbmodp S B = S i g n B ( g a , g b ) S_B=Sign_B(g_a,g_b) SB=SignB(ga,gb),将 ( C ( B ) , g b , S B ) (C(B),g_b,S_B) (C(B),gb,SB)传送给用户 A A A

(3)用户 A A A先验证 C ( B ) C(B) C(B)的有效性,然后验证 B B B的签名 S B S_B SB的有效性。确认 S B S_B SB有效后,计算 S A = S i g n A ( g a , g b ) S_A=Sign_A(g_a,g_b) SA=SignA(ga,gb),把 ( C ( A ) , S A ) (C(A),S_A) (C(A),SA)发给用户 B B B,并计算 K ≡ g b a   m o d   p K \equiv g^a_b \bmod p Kgbamodp作为会话密钥。

(4) B B B同样先验证 C ( A ) C(A) C(A)的有效性,然后验证 A A A的签名 S A S_A SA的有效性。确认 S A S_A SA有效后,计算 K ≡ g a b   m o d   p K \equiv g^b_a\bmod p Kgabmodp作为会话密钥。

5. 密钥托管

密钥托管也称为托管加密,是指为公众和用户提供更好安全通信的同时,也允许授权者(包括政府保密部门、企业专门技术人员和特殊用户等)为了国家、集团的利益监听某些通信内容并能解密相关密文。密钥托管也叫“密钥恢复”,或者理解为“受信任的第三方”“数据恢复”和“特殊获取”等含义,对个人没有绝对的隐私和绝对不可跟踪的匿名性。

其实现手段是把已加密的数据和数据恢复密钥联系起来,数据恢复密钥不必是直接解密的密钥,但由它可得解密密钥。

5.1 密钥托管密码体制基本组成

密钥托管加密体制主要由3部分组成:

  • 用户安全分量(USC,User Security Component):由硬件设备或软件程序构成,用于用户安全通信中的数据加密和解密,支持密钥托管功能和数据恢复功能。在传送秘密信息的同时传送数据恢复域(DRF,Data Recovery Field),可帮助授权机构采用应急解密措施介入通信。

  • 密钥托管分量(KEC,Key Escrow Component):由密钥托管代理、数据恢复密钥、数据恢复业务和托管密钥防护4分组成,主要完成密钥托管代理操作、数据复密的存储和使用以及其他部分业务服务。

  • 数据恢复分量(DRC,Data Recovery Component):由专用算法、协议和必要的设备组成,能够从密文、DRF、KEC所提供的托管密钥K恢复出明文。DRC 的功能包括实时解密、审查处理等。但是,只有在执行规定的合法数据恢复时才能使用 DRC。

用户安全分量USC使用密钥 K s K_s Ks加密明文信息,将数据恢复域DRF与密文时一起传送,数据恢复分量DRC使用包含在DRF中的信息及由KEC提供的信息恢复明文。

请添加图片描述

5.2 托管加密标准

为有效控制密码技术的使用,美国政府于1993年4月提出Clipper计划和密钥托管加密技术。密钥托管技术的实质是建议联邦政府和工业界使用新的具有密钥托管功能的联邦加密标准,即托管加密标准(EES,Escrowed Encryption Standard),又称Clipper建议。EES标准于1994年2月正式被美国政府公布采用。

EES标准的核心是一个称为Clipper的防窜扰芯片,是由美国国家安全局(NSA)主持开发的软硬件实现的密码部件,有两个主要特征:

  • 一个密码算法。内部利用Skipjack的分组密码算法实现,密钥长度为80bit,明文和密文长度均为64bit,有ECB、CBC、OFB、CFB共4种工作模式。芯片的单元密钥(UK)由两个称之为Escrow的机构联合提供,用于加解密用户间通信的消息。

  • 法律实施部门提供“后门恢复”保护的权限。即通过法律强制访问域(LEAF,Law Enforcement Access Field),在此控制域的范围内,有关部门可在法律的授权下,实现对用户通信的解密。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

社区便利店销售微信APP的设计与实现(源码+论文)_kaic

目 录 1 绪论 1.1 研究背景、研究目的和研究意义 1.1.1 研究背景 1.1.2 研究目的与研究意义 1.2 国内外研究现状 2 系统开发环境 2.1 系统功能分析 2.2 系统开发平台 2.3 平台开发相关技术 2.3.1 B/S结构 2.3.2 Java技术介绍 2.3.3 Mysql数据库 2.3.4 SSM框架 2.4 微信开发者工…

Nginx模块开发之http过滤器filter

Nginx http过滤器filter模块开发一、过滤器模块简介二、Nginx相关数据结构介绍2.1、ngx_module的数据结构2.2、ngx_http_module数据结构2.3、ngx_command数据结构三、Nginx过滤器模块开发3.1、Nginx模块开发流程3.2、Nginx 模块执行3.3、示例代码3.4、编写config文件3.5、编译模…

免费嵌入 NFT 数据到任何网站或平台

Nov. 2022, Vincy Data Source: Footprint Analytics - Bingo NFT Widget Footprint Analytics 是一个用于发掘和可视化整个区块链数据的工具,专注于解析 NFT 和 GameFi 等数据。它使用户能够拖放界面以及使用 SQL 或 Python 建立图表和仪表盘,而无需编…

【附源码】计算机毕业设计JAVA学生选拔系统

【附源码】计算机毕业设计JAVA学生选拔系统 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

基于Android的地图服务系统设计与实现

目 录 摘 要 I Abstract II 1绪论 1 1.1 背景及意义 1 1.2 主要方法和研究进展 1 1.3主要内容 1 1.4本论文的结构安排 1 2系统概述 2 2.1开发环境搭建 2 2.1.1 安装JDK 2 2.1.2 安装Eclipse集成开发环境 2 2.1.3 下载安装Android SDK 2 2.1.4 为Eclipse安装ADT插件 3 2.1.5 创建…

2022年最受欢迎的指纹浏览器,你知道几个?

浏览器是我们在电脑上最常使用的软件,以至于我们几乎忽略了它。对于用户来说,如果使用习惯了很难从一种浏览器切换到另一种浏览器。而指纹浏览器对于跨境人来说也是最常使用的软件工具,毕竟它就是为了跨境人打造的一款浏览器。那2022年这几个…

关于typescript中的extends和infer以及用法

extends extend的意思如果不是用在类的扩展中那么就表示约束在。 type Pick<T, K extends keyof T> {[P in K]: T[P]; };比如下面这个例子&#xff1a; 在Picks中K应该约束在keyof T这个类型中。 infer infer表示占位符 逆变和协变 协变&#xff1a;子类型赋给父…

云原生安全系列2:关于镜像安全必须知道的事儿

1.避免特权容器 Docker 提供了一种特权模式&#xff0c;它允许容器在本地计算机上以 root 身份运行。在特权模式下运行容器提供了该主机的功能&#xff0c;包括&#xff1a; 对所有设备的根访问权限能够篡改 AppArmor 和 SELinux 等 Linux 安全模块能够使用主机的内核功能安装…

pytorch神经网络基本骨架nn.module的使用

1.Containers 首先查看官方文档中nn.module骨架&#xff0c;其中有六个模块。 1.1Module import torch.nn as nn import torch.nn.functional as F class Module(nn.Module):def __init__(self):super(Module, self).__init__()self.conv1nn.Conv2d(1, 20, 5)self.conv2nn.C…

ESP32学习笔记 - 基于 ESP32 移植 LVGL8.3

以前写过一篇文章,讲述了如何基于ESP32 芯片移植LVGL这个GUI框架,当时是在LVGL移植好的工程lv_port_esp32上进行的,这个工程最新支持到LVGL7.9版本,关于之前的移植文章,可以参考以下链接: ESP32学习笔记 - 移植LVGL 随着LVGL不断在高频率地迭代大版本,LVGL8.x已经比以…

java基于springboot+vue的酒店预订网站——计算机毕业设计

运行环境&#xff1a; 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架springbootvue 项目介绍 民宿管理平台系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商家管理、民宿信息管理、房间类型管理、房间信息管理、…

基于Springboot+Mybatis+mysql+vue技术交流博客论坛系统

基于SpringbootMybatismysqlvue技术交流博客论坛系统一、系统介绍二、功能展示1.主页(普通用户)2.登陆、注册&#xff08;普通用户&#xff09;3.博客(普通用户)4.文章详情&#xff08;点赞、评论&#xff09;&#xff08;普通用户&#xff09;5.我的文章&#xff08;普通用户&…

模拟电子技术(六)信号的运算与处理

&#xff08;六&#xff09;信号的运算与处理基本运算电路概述比例运算电路反向比例运算电路同相比例运算电路电压跟随器加减运算电路求和运算电路加减运算电路积分运算电路微分运算电路基本微分运算电路逆函数型微分运算电路对数运算电路采用二极管的对数运算电路利用晶体管的…

配置中心微服务(Spring Cloud Config)

为什么需要配置服务中心&#xff1f; 1、统一维护2、配置内容安全与权限微服务之config server 注册到注册中心启动类加注解&#xff1a;EnableConfigServerSpringCloudApplicationEnableDiscoveryClient/{name}-{profiles}.yml <>name 微服务名称 profiles…

【electron】 打包应用修改图标和进程名字

文章目录导读开发环境打包流程制作一个大于等于256*256的icon修改package.json执行 *npm run build* 生成应用效果图踩坑icon必现大于等于 256*256图片有损icon图标要包含各种分辨率的resources\app.asar占用参考资料导读 以下内容在https://gitee.com/zkyt/electron-vue-eleme…

CobaltStrike木马免杀代码篇之python反序列化分离免杀(一)

前言 本篇文章主要用到python来对CobaltStrike生成的Shellcode进行分离免杀处理, 因此要求读者要有一定的python基础, 下面我会介绍pyhon反序列化免杀所需用到的相关函数和库 exec函数 exec函数是python的内置函数, 其功能与eval()函数相同, 但不同的是exec函数支持多行pyth…

Metabase学习教程:提问-3

时间序列比较 如何使用自定义表达式进行同比或逐月比较。 一个强大但也许不明显的东西自定义表达式让我们做的就是创造时间序列比较。例如&#xff0c;如果我们想比较2019年和2018年的每月收入或每天的用户数&#xff0c;我们可以使用Sumif和Countif 聚合功能。 第一步&…

(HAL库)实验1 点亮一个LED

1、实验准备 实验目标&#xff1a;点亮LED 器材&#xff1a;海创stm32开发板和数据线 2、CubeMX初始化 2.1 新建工程 打开STM32CubeMX软件&#xff08;V6.6.1&#xff09;&#xff0c;点击左上角"File"&#xff0c;再点击“New Project”。 在出现的左上角搜索框…

【C语言】初识指针(二)

你可以改变你的行为&#xff0c;但改变不了你想要什么——《浴血黑帮》 目录 1、指针类型 1.1指针加减(、-)整数 1.2指针的解引用 2、野指针 2.1什么叫野指针 2.1.1指针未初始化 2.1.2指针越界访问 2.1.3指针指向的空间被释放了 2.2如何避免野指针 前言&#xff1a; 大…

150. 以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

以笔者本套教材为例,每一步骤的源代码都托管在本人 Github 仓库里,每次上传之前,都确保本地测试通过。 但笔者编写过程中发现,之前测试通过的代码,可能几个月之后再执行,就会遇到白屏现象,即应用无法正常加载,或者无法在调试模式下正常加载。 举个具体的例子。本文写…