「VNC」- Virtual Network Computing

Guacamole
一个基于 HTML 5 和 JavaScript 的 VNC 查看器,服务端基于 Java 的 VNC-to-XML 代理开发。要求浏览器支持HTML5语法。
远程 Ubuntu 桌面
How to enable Screen Sharing on Ubuntu 20.04 LTS What Is Ubuntu Remote Desktop? How to Set Up and Use It
首先,安装 vino 服务:

apt install vino

然后,在设置中开启允许远程桌面:
参考文献
Wikipedia/Virtual Network Computing 百度百科/Guacamole[……]

READ MORE

「VNC」- 在登录后,显示当前桌面(而不是登录新桌面)

问题描述
在大多数场景中,我们搭建 VNC 服务,然后远程登录,输入密码,在登录成功后,将显示新会话(新桌面、新登录)。
但是,我们希望连接 VNC 服务后,可以显示当前会话(当前桌面、已经登录桌面),而不是在连接成功后显示新桌面。
该笔记将记录:在 Linux Desktop 中,如何共享当前桌面,以及常见问题处理。
解决方案
如果想实现「在连接 VNC 服务时,显示已经存在的会话」功能,关键是找到正确的软件。这里有两个解决方案,属于同类型: 1)使用 TigerVNC 的 x0vncserver 服务。它也实现相同功能; 2)使用 x11vnc 来搭建 VNC 服务。它将附加到正在运行的会话,共享桌面;
方法一、使用 TigerVNC/x0vncserver 服务(推荐)
系统环境:Debian GNU/Linux 10 (buster)
第一步、安装服务

apt-get install -y tigervnc-scraping-server

第二步、运行服务
如果希望使用独立的帐号密码来登录 VNC 桌面,以当前桌面用户执行如下命令:

# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

# x0vncserver -rfbauth “~/.vnc/passwd”

如果希望使用 Linux 系统的用户的帐号密码,执行如下命令

# /usr/bin/x0vncserver -PAMService=login -PlainUsers=$(whoami) -SecurityTypes=None

第三步、远程登录
使用 VNC 客户端进行登录即可,这里不再赘述。
关于开机自启动问题
我们还能够通过 XDG autostart 来实现子启动(推荐):

cat > ~/.config/autostart/x0vncserver.desktop <<EOF
[Desktop Entry]
Exec=sh -c ‘/usr/bin/x0vncserver -PAMService=login -PlainUsers=\$(whoami) -SecurityTypes=None’
Name=x0vncserver
Type=Application
Version=1.0
EOF

# 鉴于该文件仅会在用户登录时自动加载,因此当首次创建该文件后,我们需要手动启动。
cp ~/.config/autostart/x0vncserver.desktop ~/.local/share[……]

READ MORE

「TFTP」- 简单文件传输协议,Trivial File Transfer Protocol

解决方案
原理简述

协议特性
相较于 FTP 协议,TFTP 的设计就是以传输小文件为目标,协议实现就简单很多: 1)使用 UDP 进行传输(端口号69) 2)无需认证 3)只能直接向服务器端请求某个文件或者上传某个文件,无法查看服务器端的文件目录。
应用场景
在 PXE 中,我们曾经使用过 TFTP 服务。[……]

READ MORE

「Huawei VRP」- 常用 TFTP 操作

# TFTP 无需登录,直接输入服务器端IP地址以及操作命令即可。
# 目前VRP设备只支持作为TFTP客户端。

# VRP作为TFTP客户端下载文件
<Huawei> tftp TFTP_Server-IP-address get filename

# VRP作为TFTP客户端上传文件
<Huawei> tftp TFTP_Server-IP-address put filename[……]

READ MORE

「WebDAV, CalDAV, CardDAV」

参考文献
Wikipedia/WebDAV Wikipedia/CalDAV Wkipedai/CardDAV Setting up WebDAV, CalDAV, and CardDAV servers SetUpThunderbirdLightningCalDAVClient[……]

READ MORE

「XMPP」- Extensible Messaging and Presence Protocol,Jabber

问题描述
原名“Jabber”,是基于 XML、面向消息的通讯协议。与大多数即时消息传递协议不同,XMPP,它是开放的,任何人都可以实现 XMPP 服务,并与其他组织的实现进行互操作。即只要有实现了 XMPP 协议的服务端,那任何实现了 XMPP 协议的客户端都可以连接。
简单说,它是一个开放协议,用于客户端与服务端通信。
注意事项
现在,提到“Jabber”这个词,一般是指支持 XMPP 的服务端实现,并不是某个服务端软件的名称。
在本部分里我们一般使用术语 XMPP ,很少会去使用 Jabber ,除非特殊说明。
参考文献
XMPP – Extensible Messaging and Presence Protocol Jabber.org 百度百科/Jabber wiki.xmpp.org[……]

READ MORE

「XMPP」- 开放服务列表

问题描述
即时通讯协议「XMPP」是一个开放标准,原名「Jabber」,任何支持XMPP协议的客户端,都可以连接支持XMPP协议的服务端。
本文将列举一些开放的服务器,这些服务器可以用于聊天,可以用于体验XMPP客户端。
服务器列表
jabberes.org/Jabber/XMPP Server List also in XML
5222.DE
搭建 XMPP 服务
Running your own XMPP server on Debian or Ubuntu[……]

READ MORE

「Natural language processing」- 自然语言处理

[P] Natural Language Processing Roadmap and Keyword for students who are wondering what to study : MachineLearning GitHub – graykode/nlp-roadmap
参考文献
Natural language processing – Wikipedia[……]

READ MORE

「Nessus」- 部署及使用

问题描述
该笔记将记录:在 Linux 中,部署及使用 Nessus 的方法,以及常见问题的解决方法。
部署服务
参考 Download Nessus Vulnerability Assessment 页面,我们是免费用户,因此使用 nessus essentials 版本。
我们使用 Docker 部署应用服务,因此该部分将记录如何使用 Docker Compose 运行 nessus 服务。

version: ‘3’

services:
backend:
image: “tenableofficial/nessus”
container_name: “devops-nessus”
ports:
– 58834:8834
restart: always
volumes:
– /etc/localtime:/etc/localtime
environment:
# 在官方站点中获取
– ACTIVATION_CODE=<code>
– USERNAME=<username>
– PASSWORD=<password>

注意事项 1)在官方 Docker 部署中,未提及任何管理持久化存储的方式,即删除容器之后数据会丢失; 2)根据官方文档的描述,数据的备份与迁移不会保留扫描结果;
使用说明
针对免费版本,默认具有以下功能:
Host Discovery
存活主机发现 和 开放端口发现。
Basic Network Scan
A full system scan suitable for any host.
Advanced Scan
Configure a scan without using any recommendations.
Advanced Dynamic Scan
Configure a dynamic plugin scan without recommendations.
Malware Scan
Scan for malware on Windows and Unix systems.
Web Application Tests
Scan for published and unknown web vulnerabilities.
Credentialed Patch Audit
Authenticate to hosts and enumerate missing updates.
Intel AMT Security Byp[……]

READ MORE

「Big data」- 大数据

问题描述
该笔记将记录:与大数据相关的技术内容,以及常见相关问题的技术解决办法。
补充说明
我们认为我们这辈子都不会从事大数据相关的工作,大概是因为兴趣爱好的原因。 而之所以创建该部分笔记,完全是因为我们属于运维岗位,需要部署相关的软件和服务。
参考文献
Wikipedia/Big data[……]

READ MORE

「Apache Hadoop」

# Apache Sqoop – https://sqoop.apache.org/ 是一种工具,用于在「Apache Hadoop」和「结构化数据存储」(如关系数据库)之间高效传输批量数据。
# HDFS – Hadoop Distributed File System -「HDFS Architecture Guide」 一种分布式文件系统,设计用于在商用硬件上运行。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的差异很大。HDFS具有高度容错能力,旨在部署在低成本硬件上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。HDFS放宽了一些POSIX要求,以实现对文件系统数据的流式访问。HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的。HDFS现在是Apache Hadoop子项目。
参考文献
Apache Hadoop[……]

READ MORE

「Blockchain」- Ethereum(以太坊)

部署环境
go ethereum – How to view latest block number of a geth node in the console? – Ethereum Stack Exchange 新鲜出炉的以太坊开发环境搭建及私链搭建指南💥💥💥 – 掘金 ethereum/go-ethereum: Official Go implementation of the Ethereum protocol Beginners guide to Ethereum (2) — run multiple nodes on a private network in 5 lines go ethereum – geth connectivity behind a firewall – Ethereum Stack Exchange
系统 Ubuntu18.04,网络 node-01: 172.17.15.155, node-02: 172.17.15.156,部署路径 /data/ethereum Geth Version: 1.10.25-stable
node-01 && node-02

cat > genesis.json <<EOF
{
“config”: {
“chainId”: 0,
“homesteadBlock”: 0,
“eip150Block”: 0,
“eip155Block”: 0,
“eip158Block”: 0,
“byzantiumBlock”: 0,
“constantinopleBlock”: 0,
“petersburgBlock”: 0,
“istanbulBlock”: 0,
“berlinBlock”: 0,
“londonBlock”: 0
},
“alloc”: {},
“coinbase”: “0x0000000000000000000000000000000000000000”,
“difficulty”: “0x20000”,
“extraData”: “”,
“gasLimit”: “0x2fefd8”,
“nonce”: “0x0000000000000042”,
“mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“time[……]

READ MORE

「Blockchain」- 快速开始(从挖矿入门)

货币类型
BTC,比特币;ETH,以太坊;ETC,壹台经典;LTC,莱特币;BCH,比特现金;DASH,达世必;BSC,比特币 SV;XMR,门罗币;DCR,Decred;GRIN,古灵币;
挖矿方法
方案一、自行挖矿:运行挖矿程序; 方案二、加入矿池:提供算力; ⇒ 我们选择加入矿池,提供算力;
方案一、加入矿池
选择矿池
https://www.poolin.com/tools/ 似乎仅能接入专业矿机; https://www.nicehash.com/ 仅支持 Windows 平台; https://ethermine.org/start 支持 Linux、Windows 平台; https://www.flexpool.io/get-started/eth/GPU/ 风池(我们当前使用平台);
选择工具
矿池都提供各种挖矿工具的支持,参考各平台说明;
开源矿工,仅支持 Windows 平台; https://github.com/ntminer/NtMiner https://www.zhihu.com/people/ntminer
选择系统
我们使用 Windows 系统,操作简单;
查看状态
0xA3cd61b1020cD3c3CF494DDd3F6ccEf4E550Ee71 | Flexpool.io[……]

READ MORE

「CS/CRYPTOGRAPHY」- 概念术语

密码协议
TLS 是其中一种,用于保护 Web(HTTPS)连接的加密协议
信息安全的目标
加密是一个过程,它使信息只对正确的接收者可读,其他用户看到的是杂乱无序的信息,使其只能在使用相应的密钥解密之后才能显示出本来内容。通过加密的方法来达到保护数据不被非法人窃取、阅读的目的。加密在网络上的作用就是防止私有化信息在网络上被拦截和窃取。通过加密可保证信息的机密性、完整性、鉴别性、抗抵赖性。
机密性(Confidentiality):通过数据加密实现。提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务。这是使用加密的普遍原因。通过小心使用数学方程式,可以保证只有对应接收人才能查看它。
完整性(Integrity):通过数据加密、散列或数字签名来实现,提供确保数据在存储和传输过程中不被未授权修改(篡改、删除、插入和重放等)的服务。对安全级别需求较高的用户来说,仅仅数据加密是不够的,数据仍能够被非法破解并修改。
源认证(Authentication):通过数据加密、数据散列或数字签名来实现,提供与数据和身份识别有关的服务,即认证数据发送和接受者的身份。
抗抵赖性(Non-repudiation,不可否定性):通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助来实现,提供阻止用户否认先前的言论或行为的抗抵赖服务。[……]

READ MORE

「MD5」

& 按位与
| 按位或
^ 按位异或 二进制位相异时,得 1;
~ 取反

××××××××××× =====>>>>>> 128

以 512b 分组;
512b = 16 x 32b
========>>>>>>>>处理
4 x 32b 分组,级联 =====>>>>>> 128b 三列值

===========================================================================

取bit数,对512求余数,填充1和n个0,使序列满足 512 x n + 448

记录信息长度,长度值为 64b =====>>>>>> (n + 1) x 512

4 个幻数,A=0X67452301,B=0XEFCDAB89,C=0X98BADCFE,D=0X10325476

四轮循环运算,(n + 1)[……]

READ MORE

「CS/Cryptography」- 数字信封,Digital Envelope:对称密钥的加密

问题描述
对称密钥的发布困难、公钥加密速度慢。
解决方案
数字信封技术结合对称密钥加密和公钥加密的优点,使得安全性、扩展性、效率得以提高。
数字信封,简单说是指通过公钥加密对称密钥所到的数据,具体是指发送方采用接收方的公钥来加密对称密钥后所得的数据。

甲事先获得乙的公钥,具体加解密过程如下: 1)甲生成对称密钥,并对明文进行加密,生成密文信息(如图黑色带锁文件); 2)甲使用乙的公钥,来加密对称密钥,生成数字信封(如图红色带锁文件); 3)甲将数字信封和密文信息一起发送给乙; 4)乙接收到甲的加密信息后,使用自己的私钥打开数字信封,得到对称密钥; 5)乙使用对称密钥对密文信息进行解密,得到最初的明文;
特性特征
对于发送方,要持有接收方的公钥。 当采用数字信封时,接收方需要使用自己私钥来打开数字信封得到对称密钥。
已知问题
但是,数字信封技术存在问题:
身份伪造,即乙无法确定是甲在使用乙的公钥:如果攻击者拦截掉甲的信息(仅是拦截,攻击者没有乙的私钥是无法解密数字信封的,除非极早的欺骗甲拿到攻击人的公钥,让甲以为拿到乙的公钥),然后用自己的对称密钥加密伪造的信息,并用乙的公钥加密自己的对称密钥,然后发送给乙。乙收到加密信息后,解密得到的明文,而且乙始终认为是甲发送的信息。此时,需要某些方法确保接收方收到的信息就是指定的发送方发送的。[……]

READ MORE

「CS/Cryptography」- 数字签名,Digital Signature:信息摘要的加密

解决方案
数字指纹,又称为信息摘要,它是指发送方通过 HASH 算法对明文信息计算后得出的数据。 数字签名,是指发送方用自己的私钥对数字指纹进行加密后所得的数据(最关键的是引入甲的私钥,配合数字信封,此时双发都持有对方的公钥)。
数字签名技术不但证明了信息未被自改,还证明了发送方的身份。
当该技术时: 1)发送方会将数字签名和明文一起发送给接收方, 2)接收方用同样的 HASH 算法对明文计算生成的数据指纹,并与 从数字签名中解密得到的数字指纹 进行匹配,如果一致,便可确定明文信息没有被篡改。 3)如果中间被截获,中间人必须具有甲的私钥才能计算出正确的数字签名,否则乙使用甲的公钥解析将得到错误的数据证书,而发现信息被篡改;

甲事先获得乙的公钥,具体加解密过程如下: 1)甲使用乙的公钥对明文进行加密,生成密文信息。 2)甲使用HASH算法对明文进行HASH运算,生成数字指纹。 3)甲使用自己的私钥对数字指纹进行加密,生成数字签名。 4)甲将密文信息和数字签名一起发送给乙。 5)乙使用甲的公钥对数字签名进行解密,得到数字指纹。 6)乙接收到甲的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文。 7)乙使用HASH算法对明文进行HASH运算,生成数字指纹。 8)乙将生成的数字指纹与得到的数字指纹进行比较,如果一致,乙接受明文;如果不一致,乙丢弃明文。
从加解密过程中,可以看出,数字签名技术不但证明了信息未被篡改,还证明了发送方的身份。数字签名和数字信封技术也可以组合使用。 PublicKey 与 PrivateKey 的使用,能够验证数据发送者的身份。如果发送者没有使用正确的密钥进行加密,则当接收者解密后将得到错误的数据。
特性特征
对于接收方,要持有发送方的公钥。 采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。
已知问题
数字签名技术存在问题
身份伪造,即甲无法确定是乙在使用甲的公钥:如果攻击者更改乙的公钥以使甲获得的是攻击者的公钥,攻击者拦截乙发送给甲的信息,用自己的私钥对伪造的信息进行数字签名,然后与使用甲的公钥的加密伪造的信息一起发送给甲。甲收到加密信息后,解密得到的明文,并验证明文没有被篡改,则甲始终认为是乙发送的信息。此时,需要一种方法确保一个特定的公钥属于一个特定的拥有者。
此外,如果攻击者伪造接收方的公钥,那么发送方发送的信息将被攻击者用私钥解密而窥探,因而接收方公钥的真实性将直接决定数据传输的机密性。[……]

READ MORE

「PKI」- Public Key Infrastructure(公钥基础设施)

问题描述
随着网络技术和信息技术的发展,电子商务已逐步被人们所接受,并得到不断普及。
但通过网络进行电子商务交易时,存在如下问题: 1)交易双方并不现场交易,无法确认双方的合法身份。 2)通过网络传输时信息易被窃取和篡改,无法保证信息的安全性。 3)交易双方发生纠纷时没有凭证可依,无法提供仲裁。
以下图为例(总结这些技术间的演进过程),甲和乙通过 Internet 进行通信,丙为攻击者专门破坏甲和乙间的通信:
解决方案
为了解决上述问题,PKI 技术应运而生,PKI(Public Key Infrastructure,公钥基础设施),是一种遵循既定标准的证书管理平台,通过利用公钥技术能够为所有网络应用提供安全服务。
原理简述
PKI 的核心技术就围绕着数字证书的 申请、颁发、使用 等整个生命周期进行展开,而在这整个生命周期过程中,PKI 会使用到 对称密钥加密、公钥加密、数字信封、数字签名 技术。
特性特征
其利用公钥技术保证在交易过程中能够实现身份认证、保密、数据完整性、不可否认性。
应用场景
在网络通信和网络交易中,特别是电子政务和电子商务业务,PKI技术得到了广泛的应用。 PKI 技术是信息安全技术的核心,也是电子商务的关键和基础技术。
HTTP over TLS

管理员可以通过HTTPS方式安全地登录HTTPS服务器的Web界面,并通过Web界面对设备进行管理。
为了提高双方建立SSL连接时的安全性,在设备上为 HTTPS Client 指定由 Web 浏览器信任的 CA 颁发的本地证书。这样,Web浏览器可以验证本地证书的合法性,避免了可能存在的主动攻击,保证了管理员的安全登录。
IPSec VPN

设备作为网络A和网络B的出口网关,网络A和网络B的内网用户通过公网进行相互通信。因为公网是不安全的网络,为了保护数据的安全性,设备采用IPSec技术,与对端设备建立IPSec隧道。
通常情况下,IPSec采用预共享密钥方式协商IPSec。但是,在大型网络中IPSec采用预共享密钥方式时存在密钥交换不安全和配置工作量大的问题。
为了解决上述问题,设备之间可以采用基于PKI的证书进行身份认证来完成IPSec隧道的建立。
SSL VPN

SSL VPN可以为出差员工提供方便的接入功能,使其在出差期间也可以正常访问内部网络。
通常情况下,出差员工使用用户名和密码的方式接入内部网络。但是,这种安全手段存在保密性差的问题,一旦用户名和密码令泄漏,可能导致非法用户接入内部网络,从而造成信息泄漏。
为了提高出差员工访问内部网络的安全性,设备可以采用PKI的证书方式来对用户进行认证。[……]

READ MORE

「PKI」- 体系结构

组成部分

一个 PKI 体系由四部分共同组成:终端实体、证书认证机构、证书注册机构、证书/CRL存储库;
终端实体 EE(End Entity)
也称为 PKI Entity(PKI 实体),它是 PKI 产品或服务的最终使用者,可以是个人、组织、设备(如路由器、防火墙)或计算机中运行的进程。
证书认证机构 CA(Certificate Authority)
CA是Certificate Authority的缩写,也叫“证书授权中心”。
它是负责管理和签发证书的第三方机构。一般来说,CA必须是所有行业和所有公众都信任的、认可的。因此它必须具有足够的权威性。就好比A、B两公司都必须信任C公司,才会找C公司作为公章的中介。
CA 是 PKI 的信任基础,是个用于颁发并管理数字证书的可信实体。它是种权威性、可信任性、公正性的第三方机构,通常由服务器充当,例如 Windows Server 2008 等等。
CA 的核心功能就是发放和管理数字证书,包括:证书的颁发、证书的更新、证书的撤销、证书的查询、证书的归档、证书废除列表(CRL,Certificate Revocation List)的发布 等等。
CA 通常采用多层次的分级结构,根据证书颁发机构的层次,可以划分为: 1)Root CA(根 CA):是公钥体系中第一个证书颁发机构,它是信任的起源。根CA可以为其它CA颁发证书,也可以为其它计算机、用户、服务颁发证书。对大多数基于证书的应用程序来说,使用证书的认证都可以通过证书链追溯到根CA。根CA通常持有一个自签名证书。 2)从属 CA,必须从上级 CA 处获取证书。上级CA可以是 Root CA 或是一个已由 Root CA 授权可颁发从属 CA 证书的从属 CA。上级CA负责签发和管理下级CA的证书,最下一级的CA直接面向用户。例如,CA2和CA3是从属CA,持有CA1发行的CA证书;CA4、CA5和CA6是从属CA,持有CA2发行的CA证书。
当某个 PKI Entity 信任一个CA,则可以通过证书链来传递信任,证书链就是从用户的证书到根证书所经过的一系列证书的集合。当通信的 PKI Entity 收到待验证的证书时,会沿着证书链依次验证其颁发者的合法性。
证书注册机构 RA(Registration Authority)
是数字证书注册审批机构,RA 是 CA 面对用户的窗口,是 CA 的证书发放、管理功能的延伸,它负责接受用户的证书注册和撤销申请,对用户的身份信息进行审查,并决定是否向CA提交签发或撤销数字证书的申请。
RA 作为 CA 功能的一部分,实际应用中,通常 RA 并不一定独立存在,而是和 CA 合并在一起。 RA 也可以独立出来,分担 CA[……]

READ MORE

「PKI」- 工作机制

针对一个使用 PKI 体系的网络环境,配置 PKI 的目的就是为指定的 PKI Entity 问 CA 申请一个本地证书,并由设备对证书的有效性进行验证。

1)PKI Entity 向 CA 请求 CA 证书,即 CA 服务器证书;
2)CA 收到 PKI Entity 的 CA 证书请求时,将自己的 CA 证书回复给 PKI Entity;
3)PKI Entity 收到 CA 证书后,安装 CA 证书。 当 PKI Entity 通过 SCEP 协议申请本地证书时,PKI Entity 会用配置的 HASH 算法对 CA 证书进行运算得到数字指纹,与提前配置的 CA 服务器的数字指纹进行比较,如果一致,则 PKI Entity 接受 CA 证书,否则 PKI Entity 丢弃 CA 证书。
4)PKI Entity 向 CA 发送证书注册请求消息(包括 配置的密钥对中的公钥、PKI Entity 信息)。 当 PKI Entity 通过 SCEP 协议申请本地证书时,PKI Entity 对证书注册请求消息使用 CA 证书的公钥进行加密 和 并对自己的私钥进行数字签名。如果 CA 要求验证挑战密码,则证书注册请求消息必须携带挑战密码(与 CA 的挑战密码一致)。 当 PKI Entity 通过 CMPv2 协议申请本地证书时,PKI Entity 可以使用额外证书(其他CA颁发的本地证书)或者消息认证码方式进行身份认证。额外证书方式:PKI Entity 对证书注册请求消息 使用 CA 证书的公钥进行加密 和 使用 PKI Entity 的额外证书相对应的私钥进行数字签名。消息认证码方式:PKI Entity 对证书注册请求消息使用 CA 证书的公钥进行加密,而且证书注册请求消息必须包含消息认证码的参考值和秘密值(与CA的消息认证码的参考值和秘密值一致)。
5)PKI Entity 收到 CA 发送的证书信息。
6)安装本地证书: 当 PKI Entity 通过 SCEP 协议申请本地证书时,PKI Entity 使用自己的私钥解密,并使用 CA 的公钥解密数字签名并验证数字指纹。数字指纹一致时,PKI Entity 接受证书信息,然后安装本地证书。 当 PKI Entity 通过 CMPv2 协议申请本地证书时:额外证书方式:PKI Entity 使用额外证书相对应的私钥解密,并使用 CA 的公钥解密数字签名并验证数字指纹。数字指纹一致时,PKI Entity 接受证书信息,然后安装本地证书。消息认证码方式:PKI Entity 使用自己的私钥解密,并验证消息认证码的参考值和秘密值。参考值和秘密值一致时,PKI实体接受证书信息,然后安装本地证书。
7)PKI Entity 间互相通信时[……]

READ MORE

「PKI」- 数字证书( Digital Certificate,Public Key Certificate)

解决方案
在数字签名中,为了防止 PublicKey 被篡改,所以产生 数字证书 这一概念。数字证书技术解决了数字签名技术中无法确定公钥是指定拥有者的问题;
数字证书简称证书,它是一个经证书授权中心 〈即在PKI中的证书认证机构CA) 数字签名的文件,包含拥有者的公钥及相关身份信息。数字证书可以说是Internet上的安全护照或身份证。当人们到其他国家旅行时,用护照可以证实其身份,并被获准进入这个国家。数字证书提供的是网络上的身份证明;
公钥的载体;数字证书的格式 X.509(常用格式);由受信任的机构颁发;数字证书的存储
证书类型
1)自签名证书:又称为根证书,是自己颁发给自己的证书,即证书中的颁发者和主体名相同。当申请者无法向CA申请本地证书时,可以通过设备生成自签名证书,可以实现简单证书颁发功能。设备不支持对其生成的自签名证书进行生命周期管理(如证书更新、证书撤销等);
2)CA 证书:CA 自身的证书。如果 PKI 系统中没有多层级 CA,CA 证书就是自签名证书;如果有多层级 CA,则会形成一个 CA 层次结构,最上层的 CA 是 Root CA,它拥有一个 CA“自签名”的证书。申请者通过验证 CA 的数字签名从而信任 CA,任何申请者都可以得到CA的证书(含公钥),用以验证它所颁发的本地证书;
4)本地证书:CA 颁发给申请者的证书;
5)设备本地证书:设备根据 CA 证书给自己颁发的证书,证书中的颁发者名称是 CA 服务器的名称。申请者无法向 CA 申请本地证书时,可以通过设备生成设备本地证书,可以实现简单证书颁发功能;
证书结构
最简单的证书包含:一个公钥、名称、证书授权中心(CA)的数字签名;
通常证书中还包括:密钥的有效期,颁发者(证书授权中心,CA)的名称,该证书的序列号 等等信息
证书的结构遵循 X.509 v3 版本的规范;
证书内容中各字段含义

版本:即使用 X.509 的版本,目前普遍使用的是 v3 版本(0x2); 序列号:颁发者分配给证书的一个正整数,同一颁发者颁发的证书序列号各不相同,可用与颁发者名称一起作为证书唯一标识; 签名算法:颁发者颁发证书使用的签名算法; 颁发者:颁发该证书的设备名称,必须与颁发者证书中的主体名一致。通常为CA服务器的名称; 有效期:包含有效的起、止日期,不在有效期范围的证书为无效证书; 主体名:证书拥有者的名称,如果与颁发者相同则说明该证书是一个自签名证书; 公钥信息:用户对外公开的公钥以及公钥算法信息; 扩展信息:通常包含 证书的用法、CRL的发布地址 等可选字段; 签名:颁发者用私钥对证书信息的签名;
证书格式
证书的格式,是指证书保存在文本文件中的格式;
设备支[……]

READ MORE

「INFORMATION, TECHNOLOGY, SECURITY」- 信息安全

Penetration, Testing(渗透测试)
IDS (Intrusion Detection System)
4A(Authentication, Authorization, Accounting, Audit)
4A – Authentication, Authorization, Accounting, Audit https://baike.baidu.com/item/4A/1825?fr=aladdin
信息相关内容
Related security categories
Computer security, Automotive security, Cybercrime, Cybersex trafficking, Computer fraud, Cybergeddon, Cyberterrorism, Cyberwarfare, Electronic warfare, Information warfare, Internet security, Mobile security, Network security, Copy protection, Digital rights management
Threats
Adware, Advanced persistent threat, Arbitrary code execution, Backdoors, Hardware backdoors, Code injection, Crimeware, Cross-site scripting, Cryptojacking malware, Botnets, Data breach, Drive-by download, Browser helper objects, Viruses, Data Scraping, Denial of Service, Eavesdropping, Email fraud, Email spoofing, Exploits, Keyloggers, Logic bombs, Time bombs, Fork bombs, Zip bombs, Fraudulent dialers, Malware, Payload, Phishing, Polymorphic engine, Privilege escalation, Ransomware, Rootkits, Bootkits, Scareware, Shellcode, Spamming, Social engineering, Screen scraping, Spyware, Software bugs, Trojan horses, Hardware, Trojans, Remote access[……]

READ MORE

「Cyberattack」- 网络攻击

网络攻击:例如DDOS、MITM等网络攻击技术,它们属于对原理的应用,也归类于此;
Cross Site Request Forgery (CSRF) | OWASP Foundation
主机端口经常被扫描
吐槽一下全球全域端口扫描 – V2EX
不是能扫描到 10000+ 而是 1 – 65525 扫 发送 HELLO 报文 然后根据返回的 banner 做匹配,识别运行的服务。 然后给 API 给黑客用。 所以不是每个黑客都是扫全网 1-65525 的 zoomeye、fofa、shodan 都是做这个的的
不是人为扫描,是蠕虫病毒的机动扫描。 蠕虫病毒的扩散速度和扫描量是以几何级别增长的。尤其“弱口令”蠕虫,无法有效限制其他病毒重复感染,导致一台肉鸡上往往跑着 N 个蠕虫日夜不停的扫描互联网。
以针对 445 端口的扫描为例,ms08-067 这个漏洞爆出来以后,从互联网到局域网,针对 445 端口的扫描和攻击数据包满天飞。 那么这些巨量的扫描行为是怎么产生的?是全球各地黑客 昼夜不停开着扫描器产生的吗? 利用 ms08-067 传播的蠕虫,比较有代表性的:国外的 conficker 蠕虫,在全球感染了约 1000 万台主机。国内的 扫荡波 蠕虫,感染了约 70 万台主机。 每一台被感染的僵尸主机,都会成为新的攻击源,昼夜不停的扫描互联网,继续传播自身。由此产生了巨量的扫描请求。与此相比,黑客手动扫描所占比例,几乎可以忽略不计。
现在的情况好多了,大家都是用云服务商,有云给你防护,90 年代拨号自建服务器的时候,基本上脱裤子给人家看,操作系统漏洞百出,自建 IDC 机房的时候,做了防护,你觉得万无一失,不知不觉就被脱库,现在大家看到的什么华住用户消息被泄露什么的,那都是这些数据不知道被倒了多少手,已经没有价值了,才扔出来的。我们能看到的,只是比较低级的罢了
分享一下 shodan 上 ssh 的扫描结果,而 shodan 的扫描只是全世界扫描的冰山一角。[……]

READ MORE

「mitmproxy」

mitmproxy – an interactive HTTPS proxy mitmproxy/mitmproxy: An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.
How mitmproxy works[……]

READ MORE

「DoS attack – Denial-of-Service attack」

Github Repo: https://github.com/zanyarjamal/xerxes Github Repo: https://github.com/GinjaChris/pentmenu.git
参考文献
Denial-of-service attack: https://en.wikipedia.org/wiki/Denial-of-service_attack[……]

READ MORE

「IDS」- Intrusion Detection System

Fail2ban
Fail2ban/Main Page Wikipedia/Fail2ban Linux系统通过fail2ban对暴力破解进行防护 CentOS 7安装fail2ban+Firewalld防止SSH爆破与CC攻击
参考文献
Wikipedia/Intrusion detection system[……]

READ MORE

「Information Security」- 常用工具

常用工具
dsniff, password sniffer for several protocols
http://www.monkey.org/~dugsong/dsniff/
Snort
入侵检测系统(Intrusion Detection System)
河马webshell扫描器
http://www.shellpub.com
FreeIPA – Identity Management System
FreeIPA – Wikipedia
FreeIPA is a free and open source identity management system. FreeIPA is the upstream open-source project for Red Hat Identity Management[……]

READ MORE

「《用 Python 写网络爬虫》- 学习笔记」

相关资源
章节代码:https://bitbucket.org/wswp/code/src/default 示例网站:http://example.webscraping.com 相关源码:https://bitbucket.org/wswp/places/src/default 语言学习:http://diveintopython.net
#1 网络爬虫简介
1.1 网络爬虫合适有用
1.2 网络爬虫是否合法
1.3 调研网站的信息
# robots.txt 通过robots.txt了解网站信息。通过sitemap.xml了解网站信息。
# sitemap.xml 也可使用高级搜索页面:https://www.google.com/advanced_search
# 站点大小估算 可以使用搜索引擎的site:来估算站点页面的多少。
# 技术栈识别 使用builtwith工具可以检测网站使用的技术栈。
# 寻找站点所有者 分析网站的所有者(有点社工了),可以使用python-whois包模块。
1.4 编写第一个网络爬虫
# 下载网络 单纯的下载。
# 使用sitemap下载网页
# 通过ID遍历
# 链接爬虫 通过正则匹配页面链接
# 相应码的含义 使用“http://httpstat.us”进行响应码测试
#2 数据抓取
2.1 分析页面
通过一些浏览器插件,分析页面的结构。
2.2 抓取页面的三种方法
# 正则表达式 偏向于简单的爬虫。
# Beautiful Soup 可以像操作XML一样操作HTML元素。
# Lxml 功能更加强大,性能也更高,同时支持CSS选择器
# 同时还可以添加回调函数,处理页面。
#3 下载缓存
3.1 为爬虫页面添加缓存
获取页面的信息及相关的连接,准备键数据进行缓存。
3.2 磁盘缓存
将数据缓存到磁盘,还可以附带缓存过期功能,比如生成序列化的数据,将日期保存在序列化的数据中。
3.3 数据库缓存
将数据保存在MongoDB中,使用MongoDB保存数据,并设置缓存过期时间,这个缓存过期时间是由数据库支持的。
还可以对数据进行压缩。
#4 并发下载
4.1 爬取100万个网页
如果由很多页面要爬取,该如何处理。
4.2 串行爬虫
前面介绍的爬虫都是串行的,即每次只爬取一个,在完成一个后,再处理下一个。
4.3 多线程爬虫
可以使用多线程爬虫,使用多个线程执行爬行任务。
还可以将爬行任务写入数据库中,执行多个进程,同时爬行数据。
4.4 性能
通常进程与线[……]

READ MORE

「Scrapy」- A Fast and Powerful Scraping and Web Crawling Framework

问题描述
该笔记将记录:与爬虫框架 Scrapy 相关的内容,包括安装、使用等等相关的内容。
解决方案
安装框架

#!/bin/sh

apt-get install python-pip
pip install scrapy

相关链接
Scrapy | A Fast and Powerful Scraping and Web Crawling Framework
Scrapy 1.7 documentation[……]

READ MORE

「Scrapy」- 快速入门

内容简介
本文将介绍如何使用Scrapy快速创建项目,并开始爬取页面。
创建项目
scrapy startproject “<project_name>” cd “<project_name>” # 后面的操作多半要进入该目录中
初始化爬虫
scrapy genspider -t crawl “<spider_name>” https://www.example.com
爬取数据
scrapy crawl “<spider_name>”[……]

READ MORE