# <font style="color:#00FFFF">資安「超」入門</font>
*這是在幹嘛?*
*YuSheng*
---
## 這是一個很輕鬆的課程
----
## <font style="color:#00FFFF">貼心提醒 :</font>
### 課程中你應該...
----
### 聽台上那個<font style="color:#00FF00">~~唬爛~~</font>
----
### ~~不然欣賞我的帥氣也好~~
----
### 把該記得的<font style="color:#00FF00">牢牢記住</font>
----
### 把不該記的<font style="color:#00FF00">一秒忘光</font>
----
### <font style="color:#FF0000">不然會有人敲我家門要送麥當勞</font>

----
## <font style="color:#00FFFF">貼心提醒 :</font>
### 課程中你不能做什麼呢?
----
### 如果我的<font style="color:#00FF00">聲音太好聽</font>
### 讓你想睡覺
----
### 記得睡覺時<font style="color:#FF0000">不可以打呼</font>
----
### 如果覺得我<font style="color:#00FF00">講得很無趣</font>
### 想跟朋友聊天
----
### 不可以<font style="color:#FF0000">**聊的比我還大聲**</font>
----
### 如果我<font style="color:#00FF00">講得太爛</font>
### 讓你很不爽
----
### <font style="color:#FF0000">拜託不要往台上丟垃圾</font>

----
### ~~這個一直幹話的是誰?~~
----
### 我是 <font style="color:#FF0000">**紅**</font><font style="color:#00FF00">**綠**</font><font style="color:orange">**燈**</font>**(洪毓昇)**
----
### 哪裡可以找到我
* 雲科網管地下室
* Idea Factory 創意工場ㄉ
Crafts Workshop 工藝工坊
* 活動中心很多人轉棒棒、球球或扇扇的地方
----
### 如果你都找不到?
### ~~對不起我們無緣~~
----
### 今天我是來幹嘛的呢?
----
### ~~<font style="color:#FF0000">來騙吃騙喝的</font>~~
---
## <font style="color:#00FF00">資安與你我的關聯</font>
----
### 什麼是<font style="color:#FF0000">**資訊安全?**</font>
----
### 先來講講......<font style="color:#00FF00">資訊</font>
----
| 我們的資訊生活 | |
| ------------------------------- |:--------------- |
| LINE / Beetalk / Wechat ... | <font style="color:#00FF00">聊天軟體</font> |
| Facebook / plurk ... | <font style="color:#00FF00">社交網路</font> |
| Gmail / google doc / Youtube... | <font style="color:#00FF00">網路服務</font> |
| Y拍 / 露天拍賣 / PChome ... | <font style="color:#00FF00">購物網站</font> |
| dropbox / google drive ... | <font style="color:#00FF00">雲端儲存</font> |
| 學校選課系統 / 成績查詢系統 ... | <font style="color:#00FF00">校園資訊服務</font> |
| 政府戶政系統 / 公文系統 ... | <font style="color:#00FF00">政府行政系統</font> |
| | ...... and more |
----
### 那麼<font style="color:#00FF00">資訊怎樣</font><font style="color:#FF0000">**不安全**</font>?
----
### <font style="color:#00FFFF">Line 詐騙</font>

----
### <font style="color:#00FFFF">第一次支付 Bitcoin 就上手</font>
### <font style="color:orange">~~檔案通通加密超安全的~~</font>

----
### <font style="color:#00FFFF">密碼遭竊</font> <font style="color:orange">~~駭客幫你跟學妹告白~~</font>

----
### <font style="color:#00FFFF">資訊安全影響到底多大?</font>
----
### 在我們聊天的同時
----
### <font style="color:#00FFFF">網路攻擊其實相當頻繁</font>

----
### [台灣每分鐘就遭受 <font style="color:#FF0000">6次攻擊</font>](https://www.digitalattackmap.com/#anim=1&color=0&country=TW&list=0&time=18141&view=map)
---
### 好了說了那麼多進入今天主題吧
### 讓我們來聊聊...
----
### 何謂<font style="color:orange">**駭客?**</font>
----
### 你認為駭客是怎樣的人?
----
### 大部分人對駭客的印象?
----
### <font style="color:#00FFFF">電影裡的駭客</font>

----
### <font style="color:#00FFFF">遊戲裡的駭客</font>

----
### <font style="color:#00FFFF">一般人心中的駭客</font>

----
### <font style="color:#00FFFF">八點檔駭客</font>
<a href="https://www.youtube.com/watch?v=iI9IygdZhvo"></a>
----
### <font style="color:#00FF00">所以什麼是</font><font style="color:orange">駭客?</font>
----
### <font style="color:#00FF00">Hacker</font> / <font style="color:#FF0000">Cracker</font>
><font style="font-size:30px">「Hacker」們建設,而「Cracker」們破壞。</font>
----
### <font style="color:#00FF00">駭客</font> / <font style="color:#FF0000">黑客</font>
NOTE:
「駭客」(hacker) 一詞一般有以下意義: 一個對(某領域內的)程式語言有足夠了解,可以不經長時間思考 就能創造出有用的軟體的人。 喜愛編程(Coding)並享受在其中變得更擅長於編程的人。 喜愛自由(Freedom),不易受約束,但覺得假如是為了喜愛的事物, 可以被受適當的約束。
「黑客、怪客、垮客和劊客」(cracker) 一詞一般有以下意義: 一個惡意(一般是非法地)試圖破解或破壞某個程式、系統及網路 安全的人。
----
### <font style="color:#00FF00">白帽駭客</font> / <font style="color:#FF0000">黑帽駭客</font>
----
### <font style="color:#00FF00">何謂</font> <font style="color:orange">駭客 / 白帽駭客 !?</font>
----

----

NOTE:
白帽駭客有能力入侵電腦系統、破壞系統。不過他利用他的技能來協助組 織加強安全。例如在資安公司進行滲透、弱掃的執行者,或負責資安的 網管人員。
----
* 滲透測試工程師
* 資安威脅分析師
* SOC 監控工程師
* 漏洞挖掘工程師
* 資訊安全顧問
* etc......
----
### <font style="color:#00FF00">何謂</font> <font style="color:orange">黑客 / 黑帽駭客 </font>
----

----

NOTE:
黑帽駭客也被叫做Cracker,他們利用自已的技能來進行非道德行為。如攻擊、竊取資料…。
----
* 垃圾郵件、簡訊寄送黑產
* 個資販售
* DDoS 攻擊流量販售
* 針對社群帳號、公司等攻擊委託
* 外掛、後門製作販售
----
### 提問 : 要當好人還壞人
### 先論 : 當好人好累
### 後論 : 當壞人好爽
### 結論 : 我要當壞人
----
### 所以分析一下...
### 駭客的第一堂課
----
### 成為駭客前要學習的有...

----
> 俗話說我們領進門,修行在個人
### 今天只會講一點點的密碼學&網路資安
---
## ~~讓人好想睡覺的~~<font style="color:#00FF00">密碼學</font>
----
### <font style="color:#00FF00">密碼學</font>是什麼
* <font style="color:#FF0000">**不是**</font>研究怎麼設安全的密碼
* <font style="color:#FF0000">**不是**</font>教你怎麼破解別人 Instagram
* 你<font style="color:#FF0000">**不會**</font>因為知道密碼學在幹嘛就變成天才駭客
* <font style="color:#FF0000">**很多很多很多**</font>數學
----
### 常見詞彙解釋
| | |
|:---------------------------------------------------- | --------------------------------------------------------------------------------------- |
| <font style="font-size:26px">加密 Encrypt</font> | <font style="font-size:26px">指將明文經過某種程序轉換成密文,該程序稱為加密</font> |
| <font style="font-size:26px">解密 Decrypt</font> | <font style="font-size:26px">指將密文經過某種程序轉換成明文,該程序稱為解密</font> |
| <font style="font-size:26px">明文 Plaintext</font> | <font style="font-size:26px">加密前的訊息</font> |
| <font style="font-size:26px">密文 Cipertext</font> | <font style="font-size:26px">加密後的訊息</font> |
| <font style="font-size:26px">演算法 Algorithm</font> | <font style="font-size:26px">解決複雜問題的程序</font> |
| <font style="font-size:26px">密碼學演算法</font> | <font style="font-size:26px">做與密碼學相關程序(如加密、解密、簽章...)的演算法</font> |
| <font style="font-size:26px">金鑰/密鑰 Key</font> | <font style="font-size:26px">加解密時所使用的「鑰匙」</font> |
----
### 開始之前打開一下[這ㄍ網址](http://140.125.207.220/),然後註冊
### 點 Join Team

----
### Team Name 是第一、第二、第三組
#### Team Password 是 first、second、third
### 分組名單
> <font style="font-size:28px">第一組: 張珉萁、何育玟、蔡承佑、周永陞</font>
> <font style="font-size:28px">第二組: 謝孟憲、張慈玲、范綱庭、陳珮玲</font>
> <font style="font-size:28px">第三組: 伍俊義、高仲寧、林家明</font>
----
### 然後先來玩一下ㄅ
[點我點我](http://140.125.207.220/challenges#Pig%20Pig%20Pigpen-14)
----
## <font style="color:#00FFFF">古典密碼學</font>
* 資料保密、傳遞
* 密碼破譯
----
### 常見的古典加密法
* <font style="color:orange"> 豬圈加密 </font>
* <font style="color:orange"> 凱薩密碼 </font>
* <font style="color:orange"> 單一字元替代密碼 </font>
----
### 何謂 <font style="color:orange">豬圈加密 ?</font>

#### ~~阿 放錯ㄌ~~
NOTE:
沒有人明確知道它是什麼時候發明的
但在1700年代,共濟會常常使用這種密碼保護一些私密紀錄或用來通訊,所以又稱共濟會密碼。
----
### 他的概念像


NOTE:是一種通過格子符號作為基礎來代替的簡單密碼,這種密碼規律性很強一般很容易破解。
----
### 何謂 <font style="color:orange">凱薩密碼 ?</font>
----
### <font style="color:#00FF00">Step 1. 替字母編號</font>
#### 首先將字母依照順序排好,同時給它們編號
#### 類似下表:
| 編號 | A | B | C | D | E | F |
| ---- | --- | --- | --- | --- |:--- | --- |
| 字母 | 0 | 1 | 2 | 3 | 4 | 5 |
>(為了方便,這邊我只取A~F作說明)
----
### <font style="color:#00FF00">Step 2. 選擇偏移量</font>
##### 選擇1個數字,當偏移量,無論是加or解密,都是靠這個數字!
##### 這邊先選擇「2」作為示範
----
### <font style="color:#00FF00">Step 3. 進行加密</font>
##### 假設有一段文字為: ADD BAD EBB
##### 對應 Step 1 的表可以得到各字母的編號
| A D D | B A D | E B B |
|:-----:|:-----:|:-----:|
| 0 3 3 | 1 0 3 | 4 1 1 |
##### 替各個編號加上 Step 2 時選擇的偏移量「2」
##### 遇到超過的數字就回到 0
##### 最後再將編號轉成對應的新字母:
| C F F | D C F | A D D |
|:-----:|:-----:|:-----:|
| 2 5 5 | 3 2 5 | 0 3 3 |
----
### 用數學式表示凱薩密碼
#### ~~瞬間好像很厲害~~
----
### 先定義一下變數的意義:
| | |
| --- | ---------------------------- |
| D | 明文 ( 加密前的文章 ) |
| E | 密文 ( 加密後的文章 ) |
| K | 金鑰、偏移量 ( 範圍 0 ~ 25 ) |
----
過程其實很簡單,透過 mod 就可以:
| | |
| ---- | ------------------------- |
| 加密 | E = ( D + K ) mod 26 |
| 解密 | D = ( E - K + 26 ) mod 26 |
> ###### 解密為避免產生負數,所以要先 +26
>
> ###### 透過 mod 可以使其結果範圍限制在 0~25 之中
NOTE:
以 Step 1 的表舉例的話,a的值是0,所以把 E=(0+2)mod26=2
然後解密就是 D = (2-2+26)mod26=0
----
### 用一張圖解釋一切

----
### 講完來一題 睡意都遠離 :D
[點我點我](http://140.125.207.220/challenges#Case%20Caes?%20Caesarrrrrrr-20)
----
### 何謂 <font style="color:orange">單一字元替代密碼 ?</font>
----
#### 和凱薩密碼一樣是字母一對一代換,<font style="color:#FF0000">但沒有規律</font>
#### <font style="color:orange">豬圈密碼</font>也是一種替代密碼
| 換字表(密鑰): |
|:----------------:|
| a -> h |
| b -> e |
| c -> q |
| d -> k |
##### 加密:dcba -> kqeh
##### 解密:kqeh -> dcba
NOTE:
攻擊:字頻分析(Frequency analysis)
最常出現的字母:e, t, a, o, i
最常出現的單字:the, to, of, and
----
## <font style="color:#00FFFF">現代密碼學</font>
* 古典密碼學的所有東西
* 資料完整性驗證(Data integrity)
* 資料的不可否認性( Non-repudiation)
* 雜湊函數(Hash)
* 亂數
* 隱寫術(Steganography)
* ...
----
### 現代常見加密法可簡分成兩種
* <font style="color:orange">對稱式加密法 </font>
* <font style="color:orange">非對稱式加密法</font>
----
### 何謂 <font style="color:orange">對稱式加密 ?</font>
----
### 就是加密解密用的 Key 是同一個。
<!-- 對稱圖解 -->
<img src="https://case.ntu.edu.tw/blog/wp-content/uploads/2017/08/fig1.png" style="background-color:white">
NOTE:
對稱性加密中的「對稱」指的是加密和解密使用相同的金鑰(密碼表)。他的優點是加密過程簡單明瞭,且在金鑰不外流的情況下安全性很高。但缺點是一旦金鑰外流,整個密碼系統就瓦解了。無論是過去戰爭或是現代生活,保證金鑰絕不外流是一件不切實際的事,因此對稱性加密的安全性並不是真的很可靠。
----
### 知名對稱式加密演算法:AES
----
### ~~我累ㄌ讓我休息一下~~
##### 有請 YouTube 出場
{%youtube 4AV0LEQTNTc %}
----
### 何謂 <font style="color:orange">非對稱式加密 ?</font>
----
### 加密解密使用不同的 Key
<!-- 非對稱圖解 -->
<img src="https://case.ntu.edu.tw/blog/wp-content/uploads/2017/08/fig2.png" style="background-color:white">
NOTE:
「非對稱」指的是加密和解密使用不同的金鑰,因此我們可以任意的發送只能用來加密的公開金鑰。圖中男孩像女孩發送訊息前,必須先索取一份公鑰,傳送訊息步驟稍長,但安全性提高很多。竊聽者再怎麼攔截訊號,都無法得到解密用的私鑰,因為它從來不存在於通訊之中。唯一能竊取私鑰的方法就是侵入持有者的電腦或家中(但如果他真的成功入侵,他直接竊取訊息就好,也不需要竊取金鑰了)。
----
### 知名非對稱演算法:RSA
----
| | RSA怎麼算ㄉ |
| ------------------------------------------ | ------------------------------- |
| <font style="color:#00FF00">Step 1.</font> | P=2、Q=3 |
| <font style="color:#00FF00">Step 2.</font> | N=P x Q |
| <font style="color:#00FF00">Step 3.</font> | r=(P-1)(Q-1) |
| <font style="color:#00FF00">Step 4.</font> | 公鑰 E 需符合 1<E<r 且與 r 互質 |
| <font style="color:#00FF00">Step 5.</font> | 私鑰 D = ExD mod r = 1 |
| | |
| ---- | ------------- |
| 加密 | C = M^E mod N |
| 解密 | M = C^D mod N |
###### <font style="background:#242424; padding:10px;">相關證明可以去 google</font>
###### <font style="background:#242424; padding:10px;">~~我相信我講ㄌ可能會死一半,包含我~~(#</font>
NOTE:
先找兩個質數 P、Q
r 其實在數學上的定義是歐拉函數念作ㄈㄞ
意思是不大於r,而且和r互質的所有的整數個數
就是說在r這麼多的數裡面,有多少個數目是比r小,而且和r互質的整數個數
接下來開始噁心了,我們要開始找公鑰和私鑰,公鑰很好找,隨便找一個就好
然後我們再找一個私鑰 D ,私鑰 D 就是, E乘上D後除以r的餘數為 1
這時候就可以來加解密了,YA
阿加解密的過程就牽涉到離散數學ㄉ費馬小定理&模數運算
----
### RSA 的安全性
#### 回來看這張圖
<!-- 非對稱圖解 -->
<img src="https://case.ntu.edu.tw/blog/wp-content/uploads/2017/08/fig2.png" style="background-color:white">
NOTE:
這時如果小明傳訊息給小美後,在網路上流通的東西會有 一個大數N,還有公鑰e,以及加密過後的密文C
要解密首先需要知道的是一個N,還有私鑰D,以及密文C
如果駭客在中間竊取到資訊後,雖然有N、E、C,但因為缺少私鑰D,所以無法解密
就會有人說如果我想算一下呢,我通過E算出D行不行
E->D 必須知道 r
r = (P-1)(Q-1)
所以就必須求出P和Q
N=PxQ
這就是質因數分解
----
### 對稱非對稱比較

----
### 當密碼學用於資料與身份驗證
### 除了加密外還有 <font style="color:orange">雜湊函數(Hash)</font>
----
### 將任意長度的字串轉成固定長度
#### 用途:
* 驗證資料完整性(Data integrity)
* 用不安全通道傳很大的檔案
用安全通道傳該檔案的 Hash
以節省加密解密所需的資源
* 在不取得明文的情況下驗證資料正確性
* 儲存使用者密碼的 Hash 在資料庫,確保管理員看不到使用者密碼的明文
----
### Hash 的特點
* 不管資料量多大經過雜湊運算字串長度都是一樣的
* 它是一個不可逆的算法所以我們可以看到箭頭是單向
* 相同的值用雜湊運算過後值都是一樣的
----
### 知名雜湊函數:MD5、SHA-256
NOTE:基本方式也是,求餘、取餘、調整長度、與連結變數進行迴圈運算。得出結果。
----
### 等等 那那那 Base64 呢?
----
### <font style="color:red">編碼 != 加密</font> 兩個是完全不一樣的東西
### <font style="color:red">編碼 != 加密</font> 兩個是完全不一樣的東西
### <font style="color:red">編碼 != 加密</font> 兩個是完全不一樣的東西
NOTE:
Base64主要用途是某些系統中只能使用ASCII字符,為了避免某些機器無法識別我們傳輸資料
----
### 根據[維基百科](https://zh.wikipedia.org/wiki/Base64)ㄉ解釋 :D

---
## 終於結束ㄌ可怕的密碼學
----
### 接下來接著網路資安吧 耶~~~
----
### 阿時間好像不夠了ㄎㄎ
----
### 那你們可以期待明天的課程呦 啾咪

----
### 推薦一個東東叫做 picoCTF

---
#### 希望今天的內容可以讓你們學到一些東西 :D
----
### 最後送大家一句話<3
#### xzzbmq vlro cxfirob xka jlsb lk
----
### 最後的最後工商一下

{"metaMigratedAt":"2023-06-15T15:36:34.240Z","metaMigratedFrom":"YAML","title":"<font style=\"color:#00FFFF\">資安「超」入門</font>","breaks":false,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"82eaa412-2ff3-4bfe-bbd7-5ff190dd3326\",\"add\":20619,\"del\":6042}]","description":"這是在幹嘛?YuSheng"}