首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

白话TPM

、国外机构认证过的EK背书密钥,根证书等信息,这也是为什么国内发展自己的可信标准,并推进支持国家密码算法的可信密码模块作为可信根的初衷,毕竟可信根掌握在别人手中多少是不放心的,因为可信根(Root of...其他用途可以参考: 国外的TPM和国内的TCM安全芯片 安全形式和概念: 消息:在双方间传送的字节序列; 机密性:防止未授权方查看消息内容; 认证:将消息关联到创建者,使接收方可以确定只有创建者能发送这条消息...所有对象都有相应的授权数据和授权策略,与NV索引一样,对象的策略在创建后就不能被修改。当一个对象在命令中使用时,对象创建时,由用户决定哪些命令可以使用授权数据知晓,哪些命令只能使用策略来执行。...Hierarchy的实体包括永久性实体(hierarchy句柄)、在树根的主对象和其他对象,如树中的密钥。 NV索引属于一个hierarchy,但不在树中。...近期看了一段时间的TSS协议栈代码,应用层面如果没有FAPI的封装,使用起来确实会相当困难,并且也没法解决对单个TPM设备的互斥访问和冲突问题!

60220

在C#中ref和out具体怎么使用?在什么情况下使用?

使用ref前必须对变量赋值,out不用。   out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。   ...区别可以参看下面的代码应该就明白了: using System; class TestApp {  static void outTest(out int x, out int y)  {//离开这个函数前,必须对x和y...//y = x;   //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行   x = 1;   y = 2;  }  static void refTest...,变量可以不赋值   outTest(out a, out b);   Console.WriteLine("a={0};b={1}",a,b);   int c=11,d=22;   outTest(...out c, out d);   Console.WriteLine("c={0};d={1}",c,d);   //ref test   int m,n;   //refTest(ref m, ref

2.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    可信计算之可信平台模块介绍

    非易失性存储:用于存储关键数据,主要包括密钥(背书密钥EK和存储根密钥SRK)以及所有者授权数据。...一些典型的例子包括: (1)VPN认证身份:设备用TPM中的私钥签名消息,后台用公钥验证签名,从而确保内部网络资源只有特定的设备和用户可以访问; (2)信息交互中的身份确认:使用TPM中存储的私钥对数据做签名...在隐私保护的场景下,针对不同的信息使用不同的密钥加密,细化隐私保护的粒度,增强安全性; (2)针对不同安全级别的数据,使用不同的密钥; (3)可以将加密后的密钥存放在服务器上,需要时再从服务器获取,使用更灵活...TPM在系统启动时,会根据系统状态,由软件算出一系列哈希值,并存储在平台配置寄存器(PCR)中,后续可以使用特定私钥签名这一系列测量值,然后向外部报告。...这个软件栈实现了TPM2.0规范,提供了一系列工具和库,方便开发者接入。 核心特点: (1)跨平台。整体设计不依赖操作系统,可以在不同的操作系统和环境下使用,可移植性好。 (2)完全开源。

    75410

    使用 DMA 在 FPGA 中的 HDL 和嵌入式 C 之间传输数据

    使用 DMA 在 FPGA 中的 HDL 和嵌入式 C 之间传输数据 该项目介绍了如何在 PL 中的 HDL 与 FPGA 中的处理器上运行的嵌入式 C 之间传输数据的基本结构。...因此,要成为一名高效的设计人员,就必须掌握如何在硬件和软件之间来回传递数据的技巧。 在本例中,使用的是 Zynq SoC(片上系统)FPGA,它具有硬核 ARM 处理器。...使用 AXI DMA 控制 PL 中的 HDL 与 PS 中的 C 代码之间的数据传输有两个主要层: Memory Map to Stream (MM2S) 和 Stream to Memory Map...PS 的 C 代码中寄存器读/写 DMA 的顺序。 Verilog 中的 AXI-Stream握手 AXI stream接口使用一组简单的握手信号机制,用于嵌入式设计中的数据交换。...这也解释了当我第一次开始使用 DMA 时,在 SDK/Vitis 中的示例 DMA 项目中注意到的一些事情。

    81310

    在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

    在 gRPC 中,客户端应用程序可以像本地对象一样直接调用不同机器上的服务器应用程序上的方法,从而使您更轻松地创建分布式应用程序和服务。...gRPC 客户端和服务器可以在各种环境中运行和相互通信(从 Google 内部的服务器到您自己的桌面),并且可以用 gRPC 支持的任何语言编写。...例如,您可以使用 Java 轻松创建 gRPC 服务器,并使用 Go、Python 或 Ruby 编写客户端。...在 C#和ASP.NET Core中创建 gRPC 客户端和服务器 在 C#和ASP.NET Core中创建 gRPC 客户端和服务器十分简单,可以参考微软官方的几篇文章: 使用 C# 的 gRPC 服务...使用 .NET 客户端调用 gRPC 服务 教程:在 ASP.NET Core 中创建 gRPC 客户端和服务器 对应在VS2022中分别运行GRPC服务端和客户端的SayHello示例接口调用如下图所示

    42400

    2024全网最为详细的红帽系列【RHCSA-(6)】初级及进阶Linux保姆级别骚操作教程;学不费来砍我

    -f 使tail不停地去读取和显示文件最新的内容, 这样有实时监视的效果。 tail命令更多的用于查看系统日志文件,按【Ctrl+C】 键终止显示和跟踪。...-f 使tail不停地去读取和显示文件最新的内容, 这样有实时监视的效果。 tail命令更多的用于查看系统日志文件,按【Ctrl+C】 键终止显示和跟踪。...过滤文件内容显示——grep 简介 在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用 语法格式: grep 选项…… 关键字符串 文件名称…… 选项 说明 -c 仅显示找到的行数...2行 简单举例: 在Linux系统中,/etc/passwd文件是保存着所有的用户信息, 而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统, 因此可以使用grep命令来查找出当前系统中不允许登录系统的所有用户信息...内容是节选自/etc/passwd文件中前五个字段的内容,并进行混乱排序后的样子: [root@kongd ~]# cat user.txt tss:x:59:59:Account used by

    8310

    Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库

    Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库 在Windows中使用C#连接Mysql数据库比较简单,可以直接使用MySql.Data库,目前最新版本为:8.3.0...Dapper是一款轻量级ORM工具,是一个简单的.NET对象映射器,在速度上几乎与使用原始ADO.NET数据读取器的速度一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。...:mysql-installer-web-community-8.0.36.0.msi,并采用C# .Net WinForm窗体程序作为演示示例,我们展示如何使用Mysql.Data和Dapper连接MySql...2、通过NuGet包管理器安装Mysql.Data和Dapper库 创建项目名称为WindowsFormsMySqlDbApp的C#窗体程序之后,通过项目中的引用-》管理 NuGet 程序包(N)-....msi数据库安装包之后,我们root账号的初始密码设置为123456,然后使用Navicat Premium 16连接并登录本地MySQL数据库,然后先创建ytdemo数据库,然后在该数据库中创建people

    59300

    【DB宝28】在Oracle 19c中创建容器数据库(5)--使用DBCA静默克隆数据库(从19c开始)

    之前的几篇内容: 【DB宝24】在Oracle 19c中创建容器数据库(1)--DBCA静默创建CDB 【DB宝25】在Oracle 19c中创建容器数据库(2)--DBCA图形化创建CDB 【DB...宝26】在Oracle 19c中创建容器数据库(3)--手动创建CDB 【DB宝27】在Oracle 19c中创建容器数据库(4)--Duplicating a CDB(从18c开始) 这是Oracle...2、可以克隆远程,也可以克隆本地的CDB 下面给出一个使用示例: 环境介绍: 源库 目标库 IP地址 172.17.0.2 172.17.0.3 主机名 lhr2019ocp ocp19c 存储方式...oradata -primaryDBConnectionString:源库的连接串 -databaseConfigType SI:代表源库是单实例 -gdbName CDB4 -sid CDB4:目标库的sid和db_name.../26736162/ • 作者微信:db_bao • 作者QQ:646634621,QQ群:230161599、618766405 • 提供Oracle OCP、OCM、高可用(rac+dg+ogg)和MySQL

    1.8K20

    设计模式(九):抽象工厂模

    在抽象工厂模式中,每个具体工厂都提供了多个用于创建多种不同类型具体对象的方法,这些不同类型的对象都存在一个共同的属性,构成一个族。...而实际过程中,一个工厂往往要生产多种类的产品,例如可乐和橙汁一起生产,方便售卖。原有的工厂方法模式不符合实际使用的要求,所以聪明的先辈们又想到了一种新的设计模式——抽象工厂模式。...使用抽象工厂模式一般要满足以下条件。 系统中有多个产品族,每个具体工厂创建同一族不同等级结构的多种产品。 系统一次只可能消费其中某一族产品。 ? ? 抽象工厂与工厂方法的区别 ?...抽象工厂模式中的工厂保留了工厂方法模式的优秀属性,同时可以创建多种类的产品,而工厂方法模式的工厂只能创建一类产品。...抽象工厂模式的优点: 将具体产品的创建延迟到具体工厂中,从工厂中获取具体产品,减少客户与具体产品的耦合度,有利于系统的维护与拓展 当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象

    37230

    openssl的部分使用例子

    这个hash值被切分成两部分:加密钥匙(key)和初始化向量(initialization vector)。当然加密钥匙和初始化向量也可以手工指定,但是不推荐那样,因为容易出错。...(iv)在命令行指定 $ openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6...首先,Diffie-Hellman创建一套双方都认可的参数集,包括一个随机的素数和生成因子(generator value,通常是2或者5)。...不推荐这样使用。 env: 从环境变量中获取口令,比pass方式安全了些,但是进程环境仍可能被别有用心的进程读到。 file: 从文件中获取,注意保护好文件的安全性。 fd: 从文件描述符中读取。...它可运行在Unix和Windows系统中

    32310

    Python 3.7.0 来了!

    编译器不是编译在定义时在注释中执行表达式的代码,而是将注释以字符串形式存储。如果需要,可以使用typing.get_type_hints()在运行时解析注释。...PEP 538:C语言环境强制 Python 3系列中的一个持续的挑战是确定一种合理的默认策略,用于处理目前在非Windows平台上使用默认C或POSIX语言环境的“7-bit ASCII”文本编码假设...PEP 539:新增用于线程本地存储的C API 虽然Python为线程本地存储支持提供了一个C API; 但现有的线程本地存储(TLS)API使用int来表示所有平台上的TLS密钥,但这既不符合POSIX...PEP 539通过向CPython提供新的线程本地存储(TSS)API来改变这一点,该API取代了在CPython解释器中使用现有TLS API,同时弃用现有API。...TSS API使用新类型Py_tss_t而不是int来表示TSS密钥,这将允许在本地TLS密钥定义的平台上构建CPython。

    81500

    系统安全加密验证签名之Openssl命令

    )协议的实现,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议(SSL/TLS工具集),并提供丰富的应用程序供测试或其它目的使用。...并实现了私钥的PKCS#12和PKCS#8的编解码功能; 密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准;OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发...;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。...Key是私用密钥,openssl格式,通常是rsa算法。 csr是证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。...创建根 CA 说明: 本节描述了整个过程和常见的CA操作,即创建全新的CA有几个步骤:配置、创建目录结构和初始化密钥文件,最后生成根密钥和证书 根CA配置如下: 1.第一部分包括了CA的名称、基础URL

    4.3K30

    使用awk命令批量删除指定范围的账号

    欢迎转载,转载请注明出处,谢谢 大家都知道,Linux系统中的账户信息都存放在/etc/passwd这个文件中,通过查看这个文件我们就可以了解到系统内每个账号的详细信息。...System message bus:/:/sbin/nologin 16 polkitd:x:997:995:User for polkitd:/:/sbin/nologin 17 tss...:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin...接着使用system函数拓展了一下,把账号名称的值赋给变量user。账号删除(选项r:删除主目录和邮件池)命令为:userdel -r,值赋给变量cmd。...这两行命令应该还可以拓展到其他地方使用,欢迎有想法的小伙伴提出来。当然,我这个命令语句写得也很次,在各位大大们面前班门弄斧了,欢迎指正。

    1.2K30

    掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

    在 C# 中,有不同类型的变量(用不同的关键字定义),例如: int - 存储整数(没有小数点的整数),如 123 或 -123 double - 存储浮点数,有小数点,如 19.99 或 -19.99...要将文本和变量结合起来,使用 + 字符: string name = "John"; Console.WriteLine("Hello " + name); 您还可以使用 + 字符将一个变量添加到另一个变量...(x + y + z); 在第一个示例中,我们声明了三个 int 类型的变量(x、y 和 z),并为它们赋了不同的值。...在第二个示例中,我们声明了三个 int 类型的变量,然后将它们都赋予了相同的值 50。 C# 标识符 所有的 C# 变量都必须使用唯一的名称来标识。 这些唯一的名称被称为标识符。...注意: 建议使用描述性名称,以创建易于理解和维护的代码: // 好的 int minutesPerHour = 60; // 可以,但不容易理解 m 实际上是什么 int m = 60; 命名变量的一般规则是

    41410

    linux和windows互传文件,用户配置文件和密码配置文件,用户组和用户管理

    linux和windows互传文件 用户配置文件和密码配置文件 用户组管理 用户管理 2.27 Linux和Windows互传文件 想要能让Linux和Windows互传文件,可以使用Xshell,但是首先需要在...相对的在etc目录下还有一个shadow文件,这个文件是用户的密码文件,用户的密码都存放在这里,这个文件和passwd文件是一一对应的,所以这个文件是专门用来存储、控制用户的密码的。...:: 如果使用ls命令去逐个列出这些文件,会发现还有一个相同名称带个-号的文件,这个带有-号的文件是备份文件,如果不小心删除了原来的文件的话,拷贝这个文件就可以使用了。...gid,在CentOS7中指定的gi要在1000以上,1000以内的已经预留给系统了,CentOS6则是500以上,这一点要区分一下: [root@study-01 ~]# groupadd -g 1005...创建用户时没有指定用户的uid的话,那么默认是从上一个用户的uid自增。如果创建用户时不指定gid的话,gid不会根据上一个用户的gid自增,而是和用户的uid一致。

    2K10

    使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 201320152017 中开启新的 C# 7.x 和 C# 8 语法

    新版本的 C# 特性需要新版本的 Visual Studio 的支持。不过,如果你不介意修改项目的话,你也能在低版本的 Visual Studio 中获得高版本的 C# 语言支持了。...不同 Visual Studio 原生支持的 C# 版本 Visual Studio 每一次的重大发布都带来新的 C# 版本(至少在 Visual Studio 2017 之前是这样),于是通常情况下如果你使用了旧版本的...各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) - 吕毅 引入 Microsoft.Net.Compilers 不过,伴随着 .NET Core 生态的崛起和 NuGet 的逐渐广泛的使用...这是一个 .NET 的编译器包,无论你系统中安装的是什么版本的 C# 编译器,使用此包都可以强制项目使用某个特定版本的 C# 编译器。...第三步:编辑项目使用最新版本的 C# 语言 就像普通的项目启用最新版 C# 语言一样,在你的项目的 csproj 的 PropertyGroup 中添加以下属性: 1 Latest

    44820

    PKI - 03 密钥管理(如何进行安全的公钥交换)

    防止公钥被截获和更改:在密钥交换过程中,公钥必须确保不会被截获和更改。如果公钥被恶意修改,那么接收方就无法正确验证数字签名或进行安全通信,从而导致安全漏洞。...Full Mesh复杂度:密钥交换涉及到多个实体之间的通信和密钥交换,特别是在大规模网络中,实体之间的连接可能形成复杂的Full Mesh结构,导致密钥管理和密钥交换的复杂度增加。...特别是在大规模网络中,或者需要频繁进行公钥交换的情况下,使用电话或其他带外通道来回读密钥指纹可能会变得不够实用和高效。因此,在实际应用中需要权衡利弊,根据具体情况选择合适的密钥交换机制。...进一步解释一下: 用户B签名用户A的公钥:首先,用户B使用自己的私钥对用户A的公钥进行签名,生成数字签名。这个数字签名相当于用户B对用户A的公钥的认可和背书,确保了公钥的真实性和完整性。...用户B签名用户C的公钥:接下来,用户B使用自己的私钥对用户C的公钥进行签名,生成数字签名。这个数字签名确保了用户B对用户C的公钥的认可和背书。

    14200

    业界 | Dropbox力荐!我们如何应对Python桌面应用程序的崩溃

    在与操作系统集成时尤其如此,其中最简单的路径往往是使用平台特定的工具和语言(例如,Windows上的COM和macOS上的Objective-C)。...因此,在 Dropbox应用程序中, Python创建的每个本机线程都有一个关联的 PyThreadState 结构。解释器使用本机线程特定的存储来创建此对象和本机线程之间的连接。...此偏移量在Python运行时的设置早期确定:这称为特定于线程的存储“密钥”。此步骤为进程中的所有线程创建一个特定于线程的存储的“插槽”,然后由Python用它来存储其特定于线程的状态。...(在Python / pylifecycle.c中)。此结构包括TSS密钥以及其他有趣的调试工具。 注意:我们已将此更改作为拉取上传到github,希望能对大众有所裨益。...线程状态使用单个指针指向任何给定时间的最顶层帧。给定以上设置和TSS密钥,我们可以从本机线程开始,找到PyThreadState,然后“遍历堆栈”PyFrameObjects。

    1.4K10
    领券