工具

MetaMask:区块链钱包

Ganache:测试链

Remix/VSCode:编辑器

HardHat/Truffle:区块链框架

Web3.js/Ethers.js:和本地或远程以太坊节点进行交互的JS库,用于开发DApp

React/Vue:前端框架

scan:区块链浏览器,用于查询区块链上的信息

chainlink:去中心化的预言机网络,将智能合约安全地连接到链下网络

openzeppelin:智能合约库

slither/securify:审计工具

疑惑

  1. Truffle,Ganache,Web3.js和React怎么结合起来用?
  2. Geth和这些工具的关系?

最近有点太放松了,面试完歇了两天,考完试歇了两天,现在眼前一堆ddl。

课程作业:

科目 作业 ddl
电子商务安全 none
人工神经网络 期中项目 5.15
网络协议逆向 none
云计算技术 hw3 5.3
计算机视觉 hw1 & hw2 4.30 & 5.20
专业综合实践 jsp1 5.7

网络安全技术名词汇总

信息安全

computer security: 保持机密性,完整性和可用性(CIA)

confidentiality:机密性

integrity:完整性

availability:可用性

authentication:鉴别性

accountability:问责

security attack:损害信息安全的动作

security mechanism:检测,预防安全攻击或从安全攻击中恢复的步骤

security service:用来抵御安全攻击,通过安全机制来提供服务

design principle:

  1. Economy of mechanism
  2. Fail-safe default
  3. Complete mediation
  4. Open design
  5. Separation of privilege
  6. Least privilege
  7. Least common mechanism
  8. Psychological acceptability
  9. Isolation

attack surface:network, software, human

系统安全

authentication:端点鉴别

authorization:授权

auditing:审计,判断动作是否允许

access control mechanism(ACM): ACLs or Capabilities

Trusted Computing Base(TCB): 不可绕过,防篡改,尽可能简单

设计原则:同信息安全,KISS

网络安全

network security:机密性,端点鉴别,消息完整性,可访问性与可用性

唯密文攻击:只有密文

已知明文攻击:已知一部分明文及其密文

选择明文攻击:可以选择一段明文并得到对应密文

对称加密,公钥加密

单表代换和多表代换

RSA:p和q,n和z,e和d

会话密钥:就是一个对称的,共享的密钥,用公钥加密来传输

authentication:几个ap

  1. ap1:直接说
  2. ap2:带IP地址
  3. ap3:带密钥
  4. ap3.1:带加密后的密钥
  5. ap4:带nonce,bob发送一个nonce给alice,alice加密后发送给bob
  6. ap5:发回的nonce用alice的私钥加密

数字签名:用自己的私钥加密,有时先hash再加密,即K-(H(m))

消息认证码MAC:计算hash值,有时会带上密钥,即H(m||s)

校验和:略

证书颁发机构CA:略

安全邮件:三部分,签名,消息和会话密钥

  1. 签名:先hash再用私钥加密
  2. 消息:和签名一起被会话密钥加密
  3. 会话密钥:用bob的公钥加密

类SSL:握手,密钥导出和数据传输

  1. 握手:创建TCP连接,验证身份,发送主密钥(MS)
  2. 密钥导出:使用MS生成4个密钥(两个会话加密密钥,两个会话MAC密钥)
  3. 数据传输:SSL将数据分割成记录,对每个记录附加一个MAC(=H(数据, MAC密钥))用于完整性检查,然后用会话加密密钥加密”记录+MAC”

将流分成多个记录,每个记录计算MAC

防止replay攻击,使用seq,MAC为H(数据||密钥||seq)

防止TCP关闭连接的攻击,使用内容类型,MAC为H(数据||密钥||seq||类型)

实际SSL的握手

  1. 先创建TCP连接
  2. 客户发送支持的算法列表,以及一个nonce
  3. 服务器选择一个对称算法,一个非对称算法和一个MAC算法。返回算法,证书和一个nonce
  4. 客户验证证书并提取公钥,生成一个前主密钥(PMS),发送用服务器公钥加密过的PMS
  5. 客户和服务器分别从PMS和不重数中计算出主密钥(MS),然后将该MS切片以生成4个密钥
  6. 客户发送所有握手消息的MAC
  7. 服务器发送所有握手消息的MAC

这里有个疑问:用PMS和nonce计算MS的具体操作?

IPsec:提供机密性、源鉴别、数据完整性和重放攻击防护

VPN:虚拟专用网

transport mode:传输模式,点到点

tunnel mode:隧道模式,路由器

AH:鉴别首部,提供源鉴别,数据完整性,无机密性

ESP:封装安全性载荷,提供源鉴别,数据完整性和机密性

SA&SAD:安全关联数据库,2+2n,包含以下:

  1. SPI
  2. 双方接口(IP)
  3. 加密类型和对应密钥
  4. 完整性检查类型和对应密钥

SPI:安全参数索引,SA标识符

IPsec数据报结构见《网络安全技术3》

SPD:安全策略库,指示哪些数据报将被IPsec处理,使用哪个SA

IKE:因特网密钥交换,自动生成SA,有以下两个阶段:

  1. 第一个阶段是两次报文对的交换:
    1. 第一次交换生成一次双向IKE SA,创建用于IKE SA的密钥
    2. 第二次交换。。。
  2. 第二个阶段在两侧生成了两个单向的SA

WEP:有线等效保密

  1. 计算ICV,得出数据帧
  2. 密钥和IV得出密钥流
  3. 数据帧和对应密钥异或加密

firewall:防火墙,有以下目标:

  1. 所有流量通过防火墙
  2. 仅授权流量通过
  3. 自身防渗透

stateless packet filter:无状态过滤器

state packet filter:状态过滤器,可以追踪连接来核对连接

IDS:入侵检测系统,检测到可疑流量后产生告警

IPS:入侵防止系统,滤除可疑流量

Network Security Review

十分的乱

slide 1

all the aspect of security

such as network security, system security

computer security

computer secutrity: preserve integrity, availability and confidentiality

confidentiality:

  1. data confidentiality: data is not available to others
  2. privacy:

integrity: 在信息获取与披露上的权限控制

  1. data integrity: assure data only be changed in a specified and authorized manner
  2. system integrity: 确保系统以不受损害的方式执行其预期功能,不会有意或无意地未经授权操纵系统

availability: 系统正常工作且服务可用

authenticity: 真实性,entity is the one that it claims to be

accountability: 问责

security architecture

security attack, security mechanism and security service

security attack: 损害信息安全性的操作

security mechanism: 检测,防止攻击或从攻击中恢复的过程

security service: 加强安全性的服务,对抗攻击,利用机制来提供服务

principles

economy of mechanism

Fail-safe default: 白名单

Complete mediation: 完全中介,所有访问必被检查

open design: 设计公开

separation of privilege: 权限分离,不同用户不同权限

least privilege: 最小权限

least common mechanism: 最少共享

attack surface

网络,软件和人

open ports

service

code

interface

employee

slide 2

a slide of chapter 8

网络安全

network security:

  1. confidentiality
  2. authenticaiton
  3. message integrity
  4. access and availability

窃听,伪造,插入,替换,阻止

密码学知识

密码学知识:古典,对称,非对称

消息完整性与端点鉴别

authentication: ap

消息完整性:数字签名

MAC=H(m||s),s为共享密钥

签过名的消息为m+K-(H(m))

别的

安全邮件:签名+消息+会话密钥

SSL

IPsec

SPD:哪些数据报被IPsec处理且被哪个SA处理,怎么处理等等信息。

IKE两个阶段:。。。

wlan

operational security

slide 3

额外讲的系统安全。

authentication:真实性,用户是否伪装

authorization:授权

audit:审计

ACLs: access control lists

capabilities

TCB: trusted computing base,可信计算基;不可被绕过,防篡改,verifiable(简单点)

设计原则:KISS,Fail safe Default,Complete Mediation

P66后略

slide 4

和PPT2有许多重复的,多了些应用层的内容。

slide 5

前25页在slide2和slide4中出现过,主要讲网络层安全。

相较于课本,多了许多内容,比如说BGP。。。

ARD: 自治路由域,AS是其中一种

AS间协议:BGP

and a lot

slide 6

wlan security

slide 7

cellular network security 4G 5G

slide 8

operational security

firewall, IDS, IPS

slide 9

SDN

好烦啊,不想考试qaq

每次考试,考试前那阵子都陷入一种低效内耗的状态,学的不明不白的,过了一遍,懂了个大概,细节又没弄清。

怕老师考得广,又怕老师考得深,还没个资料做参考,烦死了。

电子商务安全——考试

人工神经网络——项目

网络协议逆向——项目

云计算技术——实验,考试

网络安全技术——4.26

计算机视觉——实验4.30,实验5.20,论文

专业综合实践——实验4.26,项目


夏令营——数学,专业,英语,coding

实习——技术栈学习


  1. coding practice
  2. course
  3. review math and …
  4. study bc

by the way, 需要捋一下blog目录,有点乱

反馈

  1. 下半学期事情变多,各方面需要提前准备
  2. 和班主任开了个班会,捋一下

纠正

  1. 待办事项
  2. 大家提的问题一部分是自己的选择问题,另一部分如下:
    1. 保研考研面试问题:不仅限于408,取决于老师方向,所以关注一下数学和课程。
    2. 简历中的经历:不如专精,要熟悉简历上的每个项目,经得起问。
    3. copy下来的项目

课程作业:

科目 作业 ddl
电子商务安全 none
人工神经网络 none
网络协议逆向 none
云计算技术 none
网络安全技术 final exam 4.26
计算机视觉 hw1 & hw2 4.30 & 5.20
专业综合实践 js2 4.26

timeline:

  1. 面试
  2. 网安考试
  3. 两个课程作业
  • 雅思,普通话
  • 夏令营

资料

React结合gin使用

《Gin 文档》之路由篇 - 知乎 (zhihu.com)

安装gin框架

安装步骤:

  1. 先在go官网下载go并安装
  2. 设置环境变量GOPATH、GOPROXY、GO111MOD
  3. 用命令go mod init 工作区名字初始化工作区
  4. go get -u github.com/gin-gonic/gin安装gin框架

在代码中import "github.com/gin-gonic/gin"即可使用gin框架。

简单例子

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import "github.com/gin-gonic/gin"

func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.GET("/ping1", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong1",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}

结果

浏览器打开localhost:8080/pinglocalhost:8080/ping1即可看到message。

使用的函数

gin.default():默认方式初始化路由对象

r.Run():启动监听

r.GET(PATH, func(){}):请求处理器,针对以GET方式请求PATH的请求

资料

github区块链项目

一文弄懂区块链

一、拜占庭将军问题

9位将军攻打一座城市,如何使9位将军命令一致,即如何达成共识(一致性)?

拜占庭容错:若叛徒数大于1/3,则拜占庭将军问题不可解。

传统解决方案

口头协议or书面协议

PBFT

实用拜占庭容错算法。

大意:收到命令的将军去询问其他将军收到的命令。

区块链解决方案

每个将军都维护一个数据库,数据库中记录了所有将军的决定。

二、比特币技术

节点

全节点:网络路由节点,完整区块链,钱包,矿工

区块生成速度

平均生成时间为10分钟,每2016个区块调整一次,各节点根据链上信息自己调整,快了就增加难度,慢了就降低难度。反正全网节点选择最长链上的且难度最大的区块作为新区块。

比特币总量

一开始每个区块奖励50btc,每210000个区块奖励减半,总共210000x(50+25….) = 2100万块。

矿工的收益除了铸币交易,还来自交易费。

区块容量

一个区块1M,最大交易数为2400笔(也有说2700的,利用率110%)。

如今完整区块链的大小为151GB。

容量——使用率——交易费。

交易

交易结构:

  1. 版本
  2. 输入数量
  3. 输入
  4. 输出数量
  5. 输出(btc数量+加密脚本)
  6. 时钟时间

交易的基本单位:UTXO,未经使用的一个交易输出

Merkle树

什么是Merkle树

Merkle树是一种哈希二叉树,用于快速查找和检验大规模数据完整性

构建Merkle树

假设有ABCD四个交易,则Merkle根为Hash(Hash(Hash(A)+Hash(B))+Hash(Hash(C)+Hash(D))),依次子节点为H(A+B)和H(C+D),然后是四个叶节点H(A), H(B), H(C), H(D)。

叶节点必为偶数个,若为奇数则复制最后一个节点。

疑惑

  1. 由输入减去输出得到交易费,具体是怎么给的,另外算交易吗?
  2. 新增的交易会不会影响当前区块的打包,开始计算Merkle树后会不会改变包含交易?
  3. 交易转账的地址有没有被包含在交易中,怎么和UTXO一起使用?
  4. 交易池的作用?
  5. 不停让别人验证会不会造成攻击?
  6. 区块中会保存Merkle树吗,如果没有那该怎么验证交易?

由公钥生成比特币地址。

0%