Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
pickbox @ OSDC.tw 2013 Lightning Talk
Search
Szu-Kai Hsu (brucehsu)
April 20, 2013
Programming
0
53
pickbox @ OSDC.tw 2013 Lightning Talk
Szu-Kai Hsu (brucehsu)
April 20, 2013
Tweet
Share
More Decks by Szu-Kai Hsu (brucehsu)
See All by Szu-Kai Hsu (brucehsu)
Running Life Lean
brucehsu
0
160
Core Unleashed Part II: Introduction to GobiesVM (and STM) @ RubyKaigi 2014
brucehsu
0
2k
[RubyConf.tw 2014] Cores unleashed - Exploiting Parallelism in Ruby with STM
brucehsu
0
2.1k
用 Go 打造程式語言執行環境:實例剖析 [OSDC.tw 2014]
brucehsu
3
2.3k
Building Web 2.0 APIs
brucehsu
1
140
由Spanner來看Google資料庫的前世今生
brucehsu
4
270
Rapid Web Development by Example
brucehsu
3
3.1k
TechWed@CCU #0
brucehsu
2
460
Chromium OS
brucehsu
2
190
Other Decks in Programming
See All in Programming
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
良いユニットテストを書こう
mototakatsu
5
2k
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
460
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
42 best practices for Symfony, a decade later
tucksaun
1
180
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
440
ソフトウェアの振る舞いに着目し 複雑な要件の開発に立ち向かう
rickyban
0
890
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
720
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
170
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
95
5.2k
4 Signs Your Business is Dying
shpigford
181
21k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Rails Girls Zürich Keynote
gr2m
94
13k
Docker and Python
trallard
42
3.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Designing for Performance
lara
604
68k
Producing Creativity
orderedlist
PRO
341
39k
Transcript
pickbox Szu-Kai Hsu (brucehsu) ⼤大家好,我今天的喉嚨有點不舒服,因為我昨天跑去跟⼈人夜唱⼀一整晚沒睡,所以還請⼤大家多包涵 我要講的題⺫⽬目是pickbox,光看標題可能沒⼈人知道這是什麼。
pickbox Szu-Kai Hsu (brucehsu) yet another Dropbox copycat 其實它就是另外⼀一個⼭山寨版的Dropbox
Before you pull my plug 在你們想說⼜又來⼀一個佔lightning talk位置的,準備跑上來拔我插頭之前還請各位留步,要講的當然不是如何⼭山 寨⼀一個dropbox這種被講到爛的東⻄西
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
那就是bitcasa,或許在座有些⼈人有聽過這個名字
它們號稱提供無限的儲存空間,實際上只是提供的空間⼤大到應該還沒有⼈人⽤用得完這樣,像是從這張網路上找到 的圖就可以看到它有500多tb可以⽤用這樣。當然,bitcasa除了砸錢買storage之外,⼀一定還有其它的撇步才能 夠提供這麼多的空間。
Convergent Encryption File content security De-duplication 這個技術就是convergent encryption,⼀一來保證了檔案內容的安全性,同時也讓重複檔案所佔的容量降到最 低
Traditional Encryption 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello
OSDC!這句話
Traditional Encryption 5566 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher
text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption test.txt 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher
text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption test.txt Hello OSDC! 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm
function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello
OSDC!這句話
Traditional Encryption 7b21fefc9f4aee23d4f69731fde08924 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher
text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption 但是如果拿這種⽅方法來作服務加密就會遇到⼀一個很⼤大的問題,假設說有兩個使⽤用者都擁有⼀一個相同的檔案,除 ⾮非兩個⼈人都⽤用1234當密碼,不然的話cipher text就會因為key的不⼀一樣⽽而產⽣生兩份不同的結果,如果這個檔案 很⼤大的話,⽐比⽅方說29.7GB,那就會多浪費了29.7GB的空間。
Traditional Encryption 但是如果拿這種⽅方法來作服務加密就會遇到⼀一個很⼤大的問題,假設說有兩個使⽤用者都擁有⼀一個相同的檔案,除 ⾮非兩個⼈人都⽤用1234當密碼,不然的話cipher text就會因為key的不⼀一樣⽽而產⽣生兩份不同的結果,如果這個檔案 很⼤大的話,⽐比⽅方說29.7GB,那就會多浪費了29.7GB的空間。
Traditional Encryption 更慘的是,如果這個檔案⾮非常地熱⾨門,那這樣浪費的空間就會很多很多……
Convergent Encryption 所以,這時候就是convergent encryption出場的時機了。既然我們知道說只要key不⼀一樣,產⽣生的cipher text 就會不⼀一樣,那這樣只要找個共同的東⻄西作為key就好了嘛,既然我們是為了處理file duplication,那最直覺 的⽅方法,就是直接拿檔案的hash來當key,這樣相同的檔案產⽣生出來的cipher text就都會⼀一樣了,只要儲存到 server時再⽤用cipher
text的hash作為檔名以便同步就功德圓滿了
Convergent Encryption 所以,這時候就是convergent encryption出場的時機了。既然我們知道說只要key不⼀一樣,產⽣生的cipher text 就會不⼀一樣,那這樣只要找個共同的東⻄西作為key就好了嘛,既然我們是為了處理file duplication,那最直覺 的⽅方法,就是直接拿檔案的hash來當key,這樣相同的檔案產⽣生出來的cipher text就都會⼀一樣了,只要儲存到 server時再⽤用cipher
text的hash作為檔名以便同步就功德圓滿了
Convergent Encryption 嗎?假設說有⼈人剛好不知怎麼取得了這個file的hash,那他也就可以decrypt這個檔案,如果是像這張圖⼀一樣⼀一 般的檔案還沒關係,如果是有著機密內容的⽂文件,像是政府預算的使⽤用什麼的,那就有點危險了。
Convergent Encryption 所以當我們得到hash之後,我們還要再⽤用傳統的⽅方式把這個hash加密起來,這樣儲存後就算流出了還是⽐比較安 全,除⾮非你的密碼也跟著被幹⾛走了。
Convergent Encryption 所以當我們得到hash之後,我們還要再⽤用傳統的⽅方式把這個hash加密起來,這樣儲存後就算流出了還是⽐比較安 全,除⾮非你的密碼也跟著被幹⾛走了。
https://github.com/brucehsu/pickbox Thank you for listening! 以上就是convergent encryption⼀一個簡單的介紹,感謝⼤大家沒有拔我的插頭,雖然我不知道有沒有⼈人irc上開 炮。如果想看source code的話可以在github上找得到,不過因為當時是在趕project的死線寫得有點醜就是 了,再次謝謝⼤大家沒有在我初登板的時候就把我戰爆XD。