我從來就不是什麼資安專家,過去甚至對資安還有些鄙視,覺得我主要是開發軟體產品的功能,學資安有何用?為什麼不去遏止攻擊的人就好了?況且,如果是做產品開發,多半根本不會碰到資安的問題,要嘛是用的框架已經幫我們處理了,或者公司裡有 Devops 組直接在雲端先擋掉了。完全不懂資安一路做到資深開發者的大有人在,無須苛責(我就怕被罵啊)。
但時到今日,我注意到資安的需求是不減反增,如果去看伺服器的 Log,整天亂試 URL 的機器人多到你會怕!另外,個人資料越來越有價值,更需要保護,未來資安絕對也會是產品開發的一環。但當開始要研究資安時,發現什麼雜湊、加密等,資訊量實在太大...消化不良。我也十分後悔在資工系求學期間為何沒有修密碼學!所以才想說,先從最簡單的開始:了解資安相關的名詞。
對資安的術語一知半解的我,看著一堆不明白的名詞我十分不舒服,但為了馬上完成需求,也莫可奈何地直接使用,比如:
這些操作我通常就是依照說明書一個一個步驟照做或 google 各方專家的做法達成目的,至於我到底幹了什麼好事,做了什麼變動,完全就是霧裡看花。
不過總是要有個契機。對我而言是今年初我開始玩日本麻將遊戲 - 雀魂時,發現每局牌會有個 md5 碼:
官方說這就能證明沒有作斃(?)。由於我時常懷疑遊戲的公正性,我就開始研究一下這個 md5 碼究竟是什麼。這一查下就一路順便連加密、非對稱加密也一起看一下了。
我將這些資訊整理成筆記,有些長有些短,老實說並不是很嚴謹的內容。我試著重新排一下順序以利學習,可能一開始會覺得我貼的文章跟加密、資安有個鳥關係啊?不過就當個伏筆吧!大致的規畫如下,不過過程中再行調整
台灣資安的觀念似乎也是真的頗差,如能藉由鐵人賽多分享一些基礎知識,也算有點小貢獻了。每篇文章會是我的一篇小筆記,我會稍修飾一下,不過僅志在參加,有些天的文章可能會十分簡短。希望對新手有所幫助了。
大部分的主題會有簡單程式範例,可以跟著做看看,頗好玩。因為我是用 Ruby,可能再煩請各位自行 google 一下自己的 OS 如何安裝 Ruby 的環境了。當然,由於主要的語言應該都有加密相關的 Library,也可以用自己的了。