[Encrypt][Symmetric] 區塊加密解密指南 (對稱式) – Block Cipher

Intro 一般所謂的對稱金鑰演算法,以區塊加密演算法為主,演算法如AES或DES。 區塊加密工作模式:所謂的Mode,如ECB、CBC、PCBC、CFB、OFB和CTR。延伸出初始向量(IV) ECB,CBC,OFB,CFB,CTR和XTS模式僅僅提供了機密性;為了保證加密資訊沒有被意外修改或惡意篡改,需要採用分離的訊息驗證碼,例如CBC-MAC。 認證加密模式(AE,Authenticated Encryption),或稱為authenc,結合了加密和認證的單一模式。AE模式的例子包括CCM,GCM,CWC,EAX,IAPM和OCB。 Mode – 工作模式 ECB (最簡單的加密模式) 最簡單的加密模式為 ECB (Electronic codebook):每個加密塊獨立加密,不須使用IV (亦即相同內文,密文相同) 缺點:同樣的明文塊會被加密成相同的密文塊; CBC (經典加密模式) 經典常用的加密模式為 CBC (Cipher-block chaining):每個明文塊先與前一個密文塊進行互斥或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊。同時,為了保證每條訊息的唯一性,在第一個塊中需要使用IV。 缺點:加密過程是串行的,無法被並列化 CTR (串流加密模式) 計數器模式 (CTR) 通過對計數器(Counter)進行加密,並將加密結果與明文進行 XOR 操作來生成密文。 加密過程中,首先生成初始計數器(IV 或 Nonce),並將其與密鑰一起加密,然後逐個增量加密計數器(或可並行處理),從而避免重複的加密結果。 優點:與 CBC 模式相比,CTR 模式支持並行處理,顯著提升效能。 GCM (CTR […]

[Linux] LVM (Logical Volume Manager) 教學指南

Intro Logical Volume Manager (Linux) 雖然個人不喜用LVM來管理硬碟,但遇上使用LVM的機器還是得適應。 PV基本操作 搜尋PV硬碟 pvscan $ pvscan 顯示PV狀態 pvdisplay $ pvdisplay 建立PV pvcreate $ pvcreate /dev/sdb $ pvcreate /dev/sdb{1,2,3} 移除PV pvremove $ pvremove /dev/sdb VG基本操作 vgscan 搜尋VG $ vgscan vgdisplay 顯示系統VG狀態 $ vgdisplay vgcreate 建立VG $ […]

[AB] ApacheBench – 網站壓力測試工具

Intro ApacheBench壓力測試工具,Windows安裝XAMPP即Apache就有內建。 執行檔案 以Windows XAMPP為例,找到安裝目錄下Apache執行檔目錄: D:\xampp\apache\bin\ab.exe HTTPS傳輸 Windows XAMPP使用ab.exe測試HTTPS的網站會有錯誤: SSL not compiled in; no https support HTTPS協定是使用abs.exe執行: D:\xampp\apache\bin\abs.exe Linux的apache2-utils即等於abs.exe 使用方法 同時 10 個連線,連續訪問 100 次 (每個 Request 執行完後自動重連) ab -n 100 -c 10 http://www.example.com/ 同時 10 個連線,連續訪問 100 次,並且使用 Keep-Alive […]

[VM] Proxmox (PVE) 指南

Intro Proxmox 安裝 Install from USB – Prepare Installation Media – Proxmox VE 使用 Windows OS 製作 USB 可以使用 RUFUS 網路設定 Proxmox Debian 目前測試 DNS 是直接透過修改/etc/resolv.conf即可 [Linux] 網路卡設定 – Network Configuration – CentOS/Ubuntu Storage – 硬碟&OS ISO Datacenter > Storage可以指定內容包括Disk […]

[GCP] Load balancing – 負載平衡指南

Intro 目前測試,功能強大但種類選型繁多。 (本篇資訊於2018-12-07測試) 選型 HTTP(S) Load Balancing 看來是目前總體最適合做Web App LB Front-end可同時設定HTTP+HTTPS對同一個Global IP Back-end依照Instance group的Name port mapping做連線(LB Back-end設定中的port number為相同連動設定) Healthy Check支援https也向下相容http,為另外Serivce連線過來檢測,與Back-end設定無關 支援多組Back-end,必須設定Rules去區分對應Back-end群 L7 Session affinity是設定在單一Back-end上 TCP Load Balancing Multiple regions (or not sure yet) 過TCP Proxy or SSL Proxy 雷,FrontEnd不支援80port,無法做HTTP to […]

[Linux] SSH Config 連線設定檔指南

Intro SSH的個人連線設定檔使用~/.ssh/config管理較為方便且是針對Host個別套用(如Git)。 設定 檔案:~/.ssh/config 使用:針對設定的Host別名快速連線:ssh host-alias-name 設定檔規範 Host alias-name HostName server.name Port port-number IdentitiesOnly yes IdentityFile ~/.ssh/private_ssh_file User username-on-remote-machine 其他選項 # Keeping SSH Session Alive Host * ServerAliveInterval 240 ServerAliveCountMax 2 設定範例 Host * ServerAliveInterval 240 ServerAliveCountMax 2 Host server.com […]

[FW] Intel 內建 RAID 磁碟陣列卡問題整理

Intro Intel內建的RAID卡問題整理。 問題集 軟體RAID? 是用硬體方式串接,但可能涉及軟體RAID操作: 需要在OS running才能執行如RAID 1 rebuild動作 OS識別磁碟介面時,其實看到的是原始陣列。如Windows安裝時正常識別、Ubuntu則是識別出原始陣列(如RAID-1看到實體兩顆,Server版標出各為Raid-1,Desktop版識別不明Raid) 可靠性(HA) 測試在Raid 1 Rebuild時,在OS執行時抽出任一顆硬碟(無論Master或Slave),OS直接損壞。待測完好Raid-1下抽換(理論上不能損壞否則沒意義) RAID-1 Rebuild時間相當長,且僅能在OS running才能執行 發生過RAID卡故障問題(硬碟正常),待測移植至相同Intel RAID卡是否可以沿用。

[Web Server] Nginx/Apache 環境變數設定 (Environment Variables)

Intro Nginx/Apache 環境變數設定速查 Nginx設定 fastcgi_param RUNTIME_ENVIROMENT ‘DEV’ For example: server { listen 80; root /var/www/html; index index.php; server_name localhost; location / { index index.php; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param RUNTIME_ENVIROMENT ‘DEV’ } } Nginx 加入 […]

[Linux] SSH PEM 免密碼登入指南 (Public Key Authentication)

Intro X.509標準下我們可以製作PEM私鑰,用以登入放置公鑰的伺服器。 製作流程 1. 當前帳號執行Key產生器 $ ssh-keygen 產生於~/.ssh下: id_rsa.pub // 公開金鑰(public key) id_rsa // 私密金鑰(private key) 2. Public Key放至登入伺服器上帳號的~/.ssh/authorized_keys: ssh user@remotehost ‘mkdir -p ~/.ssh;cat >> ~/.ssh/authorized_keys’ < ~/.ssh/id_rsa.pub or ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost 進階用法 其他參數產生鑰匙用法: ssh-keygen -t rsa -b 4096 […]