HeathXian
嵌入式 分布式后端 网络安全 主机安全
展开
-
AES_encrypt AES_decrypt
/*-Te0[x] = S [x].[02, 01, 01, 03];Te1[x] = S [x].[03, 02, 01, 01];Te2[x] = S [x].[01, 03, 02, 01];Te3[x] = S [x].[01, 01, 03, 02];Td0[x] = Si[x].[0e, 09, 0d, 0b];Td1[x] = Si[x].[0b, 0e, 09, 0d];Td2[x] = Si[x].[0d, 0b, 0e, 09];Td3[x] = Si[x].[09,.原创 2021-12-30 11:56:48 · 396 阅读 · 0 评论 -
openssl: symbol EVP_mdc2 version OPENSSL_1_1_0
问题openssl: relocation error: openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference解决cd /ssl_env/openssl-1.1.1h \ && ./config --prefix=/usr/local --openssldir=/etc/ssl --libdir=lib ...原创 2020-11-17 13:31:26 · 4674 阅读 · 2 评论 -
libcrypto.map:0: syntax error in VERSION script
问题/usr/bin/ld:libcrypto.map:0: syntax error in VERSION scriptcollect2: error: ld returned 1 exit statusMakefile:756: recipe for target 'libcrypto.so' failedmake[1]: *** [libcrypto.so] Error 1根据以上提示,发现脚本文件mkdef.pl中if (!defined($nums{$s})) { die "...原创 2020-12-10 22:42:30 · 1959 阅读 · 0 评论 -
fatal error: krb5.h: No such file or directory
问题include/openssl/kssl.h:73:12: fatal error: krb5.h: No such file or directory# include <krb5.h>解决sudo apt-get install libkrb5-dev原创 2020-12-05 15:37:55 · 1722 阅读 · 0 评论 -
fatal error: ks_ssl.h: No such file or directory
编译keyssl出错解决方法 makefile中指定了路径 将#include "ks_ssl.h" 改成 #include <openssl/ks_ssl.h>原创 2020-12-05 15:32:07 · 277 阅读 · 0 评论 -
openssl握手协议
握手过程的第一条有效消息clienthello,总是从客户端先发出。消息作用:传送一些链接的参数为以后使用 携带客户端给出的一些连接参数的选择列表,便于服务器从中选择原创 2020-11-29 17:02:47 · 709 阅读 · 0 评论 -
openssl源码分析之记录层
记录层包含四种流程:应用数据,警示(alert),握手,改变加密说明原创 2020-11-28 18:43:02 · 321 阅读 · 0 评论 -
密钥交换算法(常用)
密钥交换的握手过程中最引人入胜的部分。在TLS中,会话安全性取决于称为主密钥(masteer secret)的48字节共享密钥。密钥交换的目的是计算另一个值,即预主密钥(premaster secret)。这个值是组成主密钥的来源。TLS支持许多密钥交换算法,能够支持各种证书类型、公钥算法和密钥生成协议。它们之中有一些在TLS协议主规格书中定义,但更多的则是在其他规格说明中定义。常用的密钥交换算法dh_anon Diffie-Hellman(DH)密钥交换,未经身...转载 2020-11-28 16:09:28 · 6296 阅读 · 0 评论 -
openssl源码分析之状态机(1.1.1+)
//1.1.1+主消息流状态机state_machine,读状态机,写状态机,statem_clnt.cstatic int state_machine(SSL *s, int server);static void init_read_state_machine(SSL *s);static SUB_STATE_RETURN read_state_machine(SSL *s);static void init_write_state_machine(SSL *s);static SUB_STA原创 2020-11-28 11:33:47 · 706 阅读 · 0 评论 -
openssl源码分析之接受连接(1.1.1+)
//接受一个链接ossl_statem_accept(SSL *s)//服务端state_machine(s, 1);//*读状态机 ,s->server 1表示服务端,0表示客户端state_machine(SSL *s, int server){ //这里取需要的回调 cb = get_callback(s); if (s->server) { transition = ossl_statem_server_read_transit...原创 2020-11-28 11:15:10 · 542 阅读 · 0 评论 -
openssl源码分析之建立连接(1.1.1+)
//客户端主动发起connect,启动状态机int ossl_statem_connect(SSL *s){ return state_machine(s, 0);}//服务端被动accept,启动状态机int ossl_statem_accept(SSL *s){ return state_machine(s, 1);}//state_machine{ // tls_setup_handshake}//建立握手int tls_setup_ha...原创 2020-11-28 11:09:31 · 720 阅读 · 0 评论 -
openssl源码分析之签名(1.1.1+)
新版本是指openssl1.1.1+旧版本是指openssl1.0.2-//新旧版本签名算法相关typedef struct evp_md_st { int type; int pkey_type; int md_size; void (*init)(); void (*update)(); void (*final)(); int required_pkey_type; /*EVP_PKEY_xxx */ int (*si...原创 2020-11-28 10:56:56 · 480 阅读 · 0 评论 -
openssl源码分析(三)
int tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p,int len){// 首先检查是否支持扩展的Master Key(简称是EXTMS)。是否支持是EXTMS是由用户决定的,用户在发送Client Hello的时候有一个TLS扩展就叫做extended_master_secret扩展。如果用户发送了这个扩展,后续服务端就都会使用这个扩展定义的方法来生成Master Key。现代的浏览器一般会启转载 2020-11-24 22:56:20 · 1524 阅读 · 0 评论 -
openssl源码分析(二)
构造Server Hello消息int tls_construct_server_hello(SSL *s){unsigned char *buf;unsigned char *p, *d;int i, sl;int al = 0;unsigned long l;/*我们知道数据包包含了头部和数据两个部分,在构造的时候是分别构造的,一般的头部部分构造比较复杂,数据部分通常就是一个拷贝操作。这里的 ssl_handshake_start就是一个区分头部和数据部分的指针。# de原创 2020-11-24 22:52:35 · 1876 阅读 · 0 评论 -
openssl源码分析(一)
我们跳过握手的总状态机和读写状态机,因为我认为那是OpenSSL架构方案的一个败笔,逻辑非常的不清晰,是程序员思维,而不是正常的逻辑思维。与握手逻辑比较相关的在statem_clnt.c和statem_srv.c中。分别是客户端的握手逻辑和服务端的握手逻辑。我们以服务端为重点来分析。一个简单的函数列表就能看出来其中的大体逻辑。对于服务器来说,是被动的处理消息,响应客户端请求的一方。所以所有的发送都是有接收来触发,接收对应的函数典型的就是tls_process_开头的函数,而发送所对应的函数就是t原创 2020-11-24 22:49:04 · 2711 阅读 · 0 评论 -
什么是keyless
将证书放置于远程服务器,将 tls 链接中需要 sign/decrypt 的参数提供给 keyserver,让 keyserver 进行 sign/decrypt 操作。提出这种方案的是 Cloudflare:Keyless SSL: The Nitty Gritty Technical Details,主要是为了给那些不愿意提供自己证书的客户使用,那 keyless 适用于甲方内部吗?cloudflare 内部也在尝试:Going Keyless Everywhere,主要是为了把 we...原创 2020-11-22 17:58:18 · 404 阅读 · 0 评论