tls

HTTP和HTTPS协议

假如想象 提交于 2020-01-26 20:20:47
介绍 http [1] 是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一种应用层协议,可用于将超文本服务器中文本、图片、音视频等内容传输到客户端浏览器。 构建与互联网之上的万维网,其主要组成部分就是http协议。目前使用的最广泛的http协议版本是http1.1。 最初的HTTP协议是万维网1991年诞生时,蒂姆·伯纳斯·李爵士(Sir Tim Berners-Lee)在European Organization for Nuclear Research使用的协议。之后万维网协会(World Wide Web Consortium)和Internet工作小组(Internet Engineering Task Force)合作,并最终发布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定义了我们今天普遍使用的HTTP协议的一个版本——HTTP1.1。 在TCP/IP参考模型中和OSI参考模型中,http协议处于应用层的位置,http规定了客户端和Web服务端的通信协议,而html则规定了传输的内容的格式、类型。https是在http的基础上,增加了TLS/SSL协议,为通信内容进行加密操作。 http通信过程 http协议默认使用TCP的80端口进行通信。通过在浏览器中输入网站地址,URL (Uniform

fabric first-network学习笔记

牧云@^-^@ 提交于 2020-01-26 20:02:12
参考文档:https://hyperledger-fabric.readthedocs.io/en/release-1.4/build_network.html 网络拓扑 四个 Peer 节点分属于同一个管理域( example.com )下的两个组织 Org1 和 Org2 ,这两个组织都加入同一个应用通道( business-channel )中,每个组织中的第一个节点( peer0 节点)作为锚节点和其他组织进行通信,所有节点通过域名都可以相互访问。 生成初始区块 . . / bin / cryptogen generate -- config= . / crypto - config . yaml fabric项目提供了cryptogen工具为网络实体生成证书和私钥,这一过程依赖于crypto-config.yaml配置文件。 运行该cryptogen工具后,生成的证书和密钥将保存到first-network/crypto-config文件夹中。 export FABRIC_CFG_PATH= $PWD . . / bin / configtxgen - profile TwoOrgsOrdererGenesis - channelID byfn - sys - channel - outputBlock . / channel - artifacts / genesis

fabric-sdk-java demo(TLS-enabled)

江枫思渺然 提交于 2020-01-26 15:57:12
fabric-sdk-java demo(TLS-enabled) 使用fabric-sdk-java,实现向fabric区块链上存入数据摘要并查询最新的数据记录。 本实例使用单机fabric1.4.1网络,采用raft共识;拥有五个orderer节点,四个peer节点;使用docker部署;开启TLS;chaincode采用Java编写;fabric状态数据库为couchdb,使用了数据库索引;fabric-sdk-java依赖版本为1.4.1。 采用的fabric网络实例地址://download.csdn.net/download/weixin_43562234/12118778 采用https://blog.csdn.net/weixin_43562234/article/details/104053966这篇博文中的solo单机单节点网络,开启TLS也可以。 建议有一定fabric基础的同学食用。 借鉴IBM的相关说明: https://developer.ibm.com/tutorials/hyperledger-fabric-java-sdk-for-tls-enabled-fabric-network/ 如果使用过程中出现问题,可以在评论区留言。 注意事项 1.依赖 除需要添加必要的fabric-sdk-java的依赖之外,还需要添加以下依赖 <dependency

Hyperledger fabric1.4.0搭建环境

旧街凉风 提交于 2020-01-26 14:10:00
Hyperledger fabric1.4.0搭建环境 原创牧竹子 最后发布于2019-05-11 21:10:20 阅读数 630 收藏 展开 Hyperledger fabric1.4.0搭建环境 版本 在Ubuntu 18.04上搭建Hyperledger fabric1.4.0环境 https://www.jianshu.com/p/4f58e0fcb9f9 https://blog.csdn.net/javaexploreroooo/article/details/71157902 https://blog.csdn.net/zgljl2012/article/details/52896372 https://blog.csdn.net/songfadan/article/details/80827446 环境和工具 操作系统 ubuntu14 go 1.11.1 docker 17.06.2-ce docker-compose 1.23.1 curl组件for windows 常用的几个vagrant命令 $ vagrant init # 初始化 $ vagrant up # 启动虚拟机 $ vagrant halt # 关闭虚拟机 $ vagrant reload # 重启虚拟机 $ vagrant ssh # SSH 至虚拟机 $ vagrant suspend #

Docker 命令查询

大城市里の小女人 提交于 2020-01-19 13:49:35
Docker — 从入门到实践 Docker 命令查询 基本语法 Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker Daemon。 客户端命令:基本命令格式为 docker [OPTIONS] COMMAND [arg...] ; 服务端命令:基本命令格式为 dockerd [OPTIONS] 。 可以通过 man docker 或 docker help 来查看这些命令。 客户端命令选项 --config="":指定客户端配置文件,默认为 /.docker ; -D=true|false:是否使用 debug 模式。默认不开启; -H, --host=[]:指定命令对应 Docker 守护进程的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; --tls=true|false:是否对 Docker 守护进程启用 TLS 安全机制,默认为否; --tlscacert= /.docker/ca.pem:TLS CA

Docker 命令查询

一笑奈何 提交于 2020-01-19 13:48:39
基本语法 Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker daemon。 客户端命令:基本命令格式为 docker [OPTIONS] COMMAND [arg...] ; 服务端命令:基本命令格式为 docker daemon [OPTIONS] 。 可以通过 man docker 或 docker help 来查看这些命令。 客户端命令选项 --config="":指定客户端配置文件,默认为 /.docker ; -D=true|false:是否使用 debug 模式。默认不开启; -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否; --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; -

double buffer 实现

眉间皱痕 提交于 2020-01-19 01:59:04
1. 背景 字典或者模型加载经常会用到双buffer这样读多写少的数据结构。这里介绍一个从百度的brpc拿出来的一个双buffer实现。 2. 痛点 经常会遇到的是一个读远多于写的数据结构:大部分时候,所有线程从一个不变的server列表中选取一台server。如果server列表真是“不变的”,那么选取server的过程就不用加锁,我们可以写更复杂的分流算法。一个方法是用读写锁,但当读临界区不是特别大时(毫秒级),读写锁并不比mutex快,而实用的分流算法不可能到毫秒级,否则开销也太大了。另一个方法是双缓冲,很多检索端用类似的方法实现无锁的查找过程,它大概这么工作: 数据分前台和后台。 检索线程只读前台,不用加锁。 只有一个写线程:修改后台数据,切换前后台,睡眠一段时间,以确保老前台(新后台)不再被检索线程访问。 这个方法的问题在于它假定睡眠一段时间后就能避免和前台读线程发生竞争,这个时间一般是若干秒。由于多次写之间有间隔,这儿的写往往是批量写入,睡眠时正好用于积累数据增量。 但这套机制对“server列表”不太好用:总不能插入一个server就得等几秒钟才能插入下一个吧,即使我们用批量插入,这个"冷却"间隔多少会让用户觉得疑惑:短了担心安全性,长了觉得没有必要。我们能尽量降低这个时间并使其安全么? 3. 实现方式 我们需要写以某种形式和读同步,但读之间相互没竞争。一种解法是

SSL/TLS握手过程

雨燕双飞 提交于 2020-01-19 01:50:08
1、握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程 再看一张手绘时序图 (1).client_hello 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下: • 支持的最高TSL协议版本version,从低到高依次 SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于 TLSv1 的版本; • 客户端支持的加密套件 cipher suites 列表, 每个加密套件对应前面 TLS 原理中的四个功能的组合:认证算法 Au (身份验证)、密钥交换算法 KeyExchange(密钥协商)、对称加密算法 Enc (信息加密)和信息摘要 Mac(完整性校验); • 支持的压缩算法 compression methods 列表,用于后续的信息压缩传输; • 随机数 random_C,用于后续的密钥的生成; • 扩展字段 extensions,支持协议与算法的相关参数以及其它辅助信息等,常见的 SNI 就属于扩展字段,后续单独讨论该字段作用。 (2).server_hello+server_certificate+sever_hello_done • server_hello, 服务端返回协商的信息结果,包括选择使用的协议版本

Docker安全管理(实战!!!)

僤鯓⒐⒋嵵緔 提交于 2020-01-15 02:22:41
Docker安全 Docker与虚拟机的区别 隔离与共享 虚拟机通过添加 Hypervisor 层,虚拟出网卡、内存、CPU 等虚拟硬件,再在其上建立 虚拟机,每个虚拟机都有自己的系统内核 Docker 容器则是通过隔离的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CPU 资源等进行控制,最终让容器之间互不影响, 容器无法影响宿主机。容器与宿主机共享内核、文件系统、硬件等资源。 性能和损耗 与虚拟机相比,容器资源损耗要少。 同样的宿主机下,能够建立容器的数量要比虚拟 机多。 但是,虚拟机的安全性要比容器稍好,要从虚拟机攻破到宿主机或其他虚拟机,需要 先攻破 Hypervisor 层,这是极其困难的 而 docker 容器与宿主机共享内核、文件系统等资源, 更有可能对其他容器、宿主机产生影响。 Docker存在的安全问题 Docker自身漏洞 作为一款应用 Docker 本身实现上会有代码缺陷。CVE官方记录Docker历史版本共有超过20项漏洞。 -骇客常用的GJ手段主要有代码执行、权限提升、 信息泄露、权限绕过等。目前 Docker 版本更迭非常快,Docker 用户最好将 Docker 升级为 最新版本。 Docker源码问题 1)骇客上传恶意镜像 如果有骇客在制作的镜像中植入病毒、后门等恶意软件,那么环境从一开始就已经不安全了,后续更没有什么安全可言。 2

Docker安全管理

邮差的信 提交于 2020-01-14 07:15:11
Docker安全管理——理论+操作 -------------------------------------------------Docker 容器与虚拟机的区别------------------------------------------------------ **1.隔离与共享** 虚拟机通过添加 Hypervisor 层,虚拟出网卡、内存、CPU 等虚拟硬件,再在其上建立 虚拟机,每个虚拟机都有自己的系统内核。 而 Docker 容器则是通过隔离的方式,将文件系 统、进程、设备、网络等资源进行隔离,再对权限、CPU 资源等进行控制,最终让容器之间互不影响, 容器无法影响宿主机。容器与宿主机共享内核、文件系统、硬件等资源。 #docker容器共享同一个内核资源,而虚拟机是独立的使用的资源都是独立的。 **2.性能与损耗** 与虚拟机相比,容器资源损耗要少。 同样的宿主机下,能够建立容器的数量要比虚拟 机多。但是,虚拟机的安全性要比容器稍好, 要从虚拟机破到宿主机或其他虚拟机,需要 先破 Hypervisor 层,这是极其困难的。而 docker 容器与宿主机共享内核、文件系统等资源, 更有可能对其他容器、宿主机产生影响。 #与虚拟机相比容器消耗资源要少的多,因为容器是共享内核的意味着,一个容器资源占用多,其他容器占用的就少,一个容器出现问题,其他容器都会出现问题