[Powered by Google Translate] [10]週
[戴維·J·馬蘭] [哈佛大學]
這是CS50。[CS50.TV]
>> 好吧！這是CS50，但不會持續太久。
這是10週的開始。
上週三，我們有我們的測驗，然後在下週一我們有一些慶祝蛋糕
因為我們兜了一圈，所有的方式回到從星期為零。
今天，我們來談談我最喜愛的主題之一，說實話 -
的安全和隱私，所有的硬件​​和軟件的影響
大家都用的這些日子。
說實話，有很多有威脅
如果你還沒有真正停下來想想他們，
他們實際上是相當艱鉅的。
典型的例子 - 如果你曾經下載一個軟件
在互聯網上傳播，並把它安裝在您的計算機上，
你已經參與到一個相當程度的信任，對不對？
沒有什麼阻止Skype，或者Chrome瀏覽器，或任何軟件
你已經安裝到你的電腦，從簡單地刪除您的硬盤驅動器上的所有文件;
上傳一些壞傢伙的服務器硬盤驅動器上的所有文件;
您的電子郵件;，堵截所有的即時消息。
因為現實情況是大多數現代操作系統的今天
是不是真的有許多，我們安裝的軟件程序之間的一堵牆，
你和我都非常簡單，只是種交叉手指和信仰
免費下載該應用程序，或99美分的東西，
實際上完全是良性的。
但是，正如我們已經看到通過C，和現在的PHP和JavaScript，
用此來表達自己的編程能力，
你可以做任何你想要的程序，用戶自己可以做。
>> 因此，我們今天關於這一主題的重點 -
不僅一些威脅，但防禦能力。
事實上，在世界上的安全性一般，
有一種貓捉老鼠的遊戲，
我敢說幾乎總是有壞人一條腿。
當它涉及到我們自己的個人電腦上的硬件和軟件的優勢，
我們必須認識到，一個壞傢伙只需要找到一個簡單的錯誤 -
一個錯誤 - 在一塊的軟件，我們已經寫了一個利用，或正在運行
為了他或她接手我們的整個系統。
通過對比，我們 - 好人 - 需要修補和修復這些錯誤
並避免這些弱點。
所以，我敢說，就整體而言，壞傢伙有優勢。
什麼課和上課是真正的
不是教你如何發動​​的戰役，這些壞傢伙，
但關於如何保護自己或至少作出決定，
是的，我知道這個軟件確實可以閱讀我的郵件中的每一個，
但我沒因為它帶給我的價值，另一方面。
>> 我很高興能夠加入由最聰明的人，我知道 -
羅布Bowden和內特 - 哈迪森。
羅布帶我們參觀的最低水平的安全標籤的 -
的編譯器，到現在為止，我們都來愛和信任。羅布·波頓。
[掌聲]
>> 羅布所有權利。大衛幾乎我的整個高談闊論
我要介紹的，但是 -
幾個星期前，你看到了一個緩衝區溢出攻擊的例子
這是一個示例的駭客黑客成某些軟件
他們不應該被黑客入侵。
的另一側
有時，你本身是惡意軟件。
它甚至不需要被黑客攻破。
是誰寫的軟件的人要攻擊你。
>> 讓我們直接進入代碼，
考慮看看在“login.c的”。
在這裡，一個傻程序驗證用戶名和密碼組合。
在這裡，您一定要熟悉C再次測驗。
首先，我們用字符串描述的用戶名，
然後，我們使用的是獲取字符串搶的密碼，
然後我們檢查，只是一些瑣碎的，是“搶”用戶名？
而且是的密碼“thisiscs50”？
或者，是湯米“用戶名”和密碼“I <3javascript”？
如果任一者的情況下，
那麼，我們只是要打印的“成功”，然後我們有機會。
否則，我們將打印“無效登錄”，然後，當然，
由於草圖字符串malloc的內存，我們可以自由的用戶名和密碼。
這是一個簡單的登錄程序，
如果你仔細想想，當您登錄到設備，
這是非常相似 - 甚至在登錄到您的計算機 -
只是有一些登錄程序，這是給你的訪問。
在這裡，我們正好有硬編碼'搶'，'thisiscs50“，”湯米，“我<3javascript，
但可能有一些文件放在您的作業系統
其中有一個人可以登錄到系統的用戶名列表
這些用戶名與密碼的列表。
通常情況下，密碼不只是保存在文本中是這樣的。
是某種形式的加密，但是這會在我們的例子中。
>> 我們的編譯器 -
這將是非常簡單的。
我們需要至少指定一些文件，我們要編譯，
然後在這裡 - 這些行
只是讀取的文件。
它讀取整個文件到一個大的緩衝，
然後我們以空終止我們的緩衝區一如既往，
最後，我們只是編譯文件。
我們不打算看看如何編譯實際執行，
但作為一個提示，它只是調用鏗鏘。
我們將使用這個程序編譯東西，而不是鐺。
我們從一個問題是，我們看到的，我們希望我們的編譯器編譯，
但如果我們不打算使用鐺，我不知道我要編譯。
這是一個普遍的問題，被稱為自舉。
所以，就這一次，我將使用鐺我們的編譯器編譯。
>> 如果你認為GCC和Clang的 -
這些方案中，這些編譯器正在不斷更新，
和這些編譯器編譯使用GCC和Clang的。
鐺是一個大的C或C + +程序，
所以他們使用的編譯器編譯，這是鐺。
在這裡，現在，我們只是將要使用的編譯器來編譯我們的編譯器，
我們甚至可以說 - '/編譯“，”compiler.c'，'compile.c'，'-o編譯器“。
請注意，這是確切的命令，我跑前 -
只需更換鐺“。/編譯器。
現在，我們有其它的編譯器，但它是完全一樣的。
它只是調用鐺。
>> 我們將使用我們的編譯器來編譯我們的登錄程序。
好了 - “。/編譯login.c的的鄰登錄”。
所以，引用“的GetString”。
得到了“lcs50”。好吧。
所以現在我有我們的登錄程序。
運行它 - 收到“請輸入您的用戶名”。
其中一個例子就是搶劫。請輸入您的密碼資料 - thisiscs50。
和成功！我有機會。
再次運行它，並輸入一些無效的密碼 -
或無效的用戶名和密碼 -
無效的登錄。
好吧。沒有這樣遠有趣的。
但是，讓我們再次來看看在登錄 -
這將是一個有點微不足道的例子，
但讓​​我們添加一個else在這裡說，如果（（STRCMP（用戶名，“黑客”）== 0 &&
STRCMP（密碼“，LOLihackyou”）== 0））
所以，現在，輸出（“黑客！您現在可以訪問。\ n”）;沒關係。
編譯 - 編譯器login.c的鄰登錄lcs50 -
現在運行login - 如果我用我的用戶名黑客
和密碼LOLihackedyou -
我輸入錯誤在那裡？
砍死在login.c的- - ihack - 我會做，因為我覺得我做的，後來。
好吧。重新編譯。
重新運行 - 黑客 - LOLihackedyou -
黑客攻擊！你現在有機會。
>> 似乎沒有太大的區別是，
因為它是我在做其他的用戶名和密碼完全相同的檢查。
此外，天大的事情是，如果其他人看這login.c的 -
說，如果我通過了這一關，我的合作夥伴，他們打開這個文件，
他們讀這一點，他們會看到 - 好吧，為什麼你有這幾行代碼在這裡？
這顯然不是，應該是在你的程序中。
在某些程序中 - 像任何專有軟件，是不是開源 -
你可能永遠不會看到這幾行代碼。
所有你知道的東西像Skype或什麼 -
Skype是您的計算機上有一些特定的用戶名和密碼組合
在一些特殊的方式登錄到Skype。
我們不知道，人不知道它，
因為他們不讀的源代碼，看到有這個洞。
>> 我們所說的這一點 -
雖然這不是一個很聰明的例子 -
這就是所謂的後門。
如果你覺得你的房子的後門。
在這裡，如果我的用戶名“打劫”或“湯米，驗證
這將是像“前門”。
就是這樣，我應該能夠安全地登錄。
但是，如果我輸入這個用戶名和密碼 -
然後，使用“後門”。
這是不是故意的方式進入程序，
但它仍然有效。
和一般人不應該知道這些後門。
我們要改善這一點。
讓我們恢復這我們原來的login.c，
讓我們來看看我們的新的編譯器。好吧。
一切都在這裡是完全一樣的。
我們整個文件讀取到緩衝區中。
一切都在這裡是一樣的。
我們剛剛編譯的文件。
但現在我有這麼大的，如果在這裡
，說如果我碰巧編譯的文件是login.c的，，
然後，我做一些特別的東西。
那是一些特別的東西嗎？
我在這裡看到了一些被稱為“黑客”的字符串，
在這幾行代碼 -
這些都是相同的代碼行 - 我想我做了使用“ihack'，而不是'ihacked前 -
看著這幾行代碼，
他們是完全相同的，我在login.c的前幾行代碼。
但現在，而不是讓他們在login.c的，
我打算把它們放到我的編譯器。
>> 這些都是我將要插入到login.c的行代碼。
這行代碼 - 最初舉行我的login.c，的緩衝區
不再要足夠大，因為現在我也想插入這個黑客
到我的程序中。
所有這一切都做的是創建一個新的緩衝區足夠大， -
的原始文件和行額外的代碼 - 黑客 - 我要插入那裡。
下面是一些需要注意的 -
字符模式=“/ /拒絕他們的訪問！”
如果我們回頭看在login.c的，
我們看到在這裡評論 - 拒絕他們的訪問！
login.c的，這樣的評論，看上去完全無害的，
所以你不會懷疑任何惡意，只是這條評論。
但在我們的編譯器，我們專門去看看這行代碼，
然後當我們找到它 ​​-
這幾行代碼中插入我們的hack到該位置。
所以，我們在迭代在整個的login.c，
我們插入的黑客工具，它的確切位置說，拒絕他們進入，
然後我們編譯 - 而不是原來的login.c
但新的login.c，黑客在“插入拒絕他們進入。”
>> 現在，我想我的新的編譯器編譯涉及與黑客。
我不打算使用鐺，讓我們複製我們之前使用的編譯器
- 因此，編譯器compiler.c compile.c-O evil_compiler。
現在，我們的邪惡的編譯器 -
如果我們用我們的邪惡的編譯器編譯的任何其他文件，
該文件將編譯，因為它應該。
這是完全正常的。
但是，如果我們用我們的邪惡的編譯器來編譯登錄 -
因此，-O / evil_compiler login.c的登錄的lcs50 -
再次在login.c的，但絕對沒有在這裡。
這是我們的一貫“如果是搶劫或托米我們在，否則我們”。
但是，當我們運行我們的可執行文件，這將照常工作。
再次運行 - 的黑客，LOLihackyou -
黑客攻擊！你現在有機會。
只是在尋找在login.c的，你不會覺得什麼是錯的。
但正在使用的編譯器的編譯login.c
是專門設計用來插入攻入的計劃。
我們只是提出我們原來的問題。
本來我們這行代碼login.c的，如果任何人都看著他們，
他們會想，為什麼在這裡？
現在，如果有人碰巧在我們的編譯器，
他們會看在這行代碼，並說，
為什麼在這裡？
所以，我們還沒有完全解決我們的問題。
但是，我們可以利用這個思路。
>> 看看我們的第三個版本的編譯器，
這是同樣的想法。
在這裡，我們將整個文件讀取到緩衝區中，
我們編譯的文件在這裡，
在這裡，我有某種形式的字符串黑客
但要注意的文件，我其實現在黑客。
我是黑客compiler.c
login.c的。
但我是什麼在插入compiler.c嗎？
我插入代碼，這是確切的代碼在我們以前的編譯器，
這是為了將代碼插入login.c的。
這裡是我們的，如果的STRCMP文件的login.c
和然後插入login.c的我們的hack東西。
這個新的編譯器的目的是創建一個編譯器
其目的是惡意編譯登入。
為什麼我們會看到，可以幫助我們。
所有其他的事情都是一樣的，所以它的工作原理完全一樣，它與我們以前的編譯器。
我們只是遍歷整個compile.c的。
但現在，而不是尋找“拒絕他們的訪問，
我們要找的編譯文件。
在哪裡編譯的文件嗎？
看著我們完全無辜的compiler.c，
它的底部就在這裡。
該評論 - 編譯文件 - 再次，看起來完全無害。
但是，在我們的惡意版本的編譯器，
我們要 - 在此之前，註釋 - 此代碼插入
其目的是將代碼編譯時login.c的。
>> 有很多層次的間接這裡。
實際運行它。
同樣，我們將複製我們的原始編譯器。
現在，編譯 - 編譯器compiler.c compile.c-O evilest_compiler -
，現在evilest_compiler。
Evilest編譯器 - 如果我們用它來編譯我們的編譯器，
讓我們來實際看看。
Evilest_compiler - 把它結束了，所有的方式回到我們的編譯器版本 -
第1版，我們的編譯器只是讀取該文件，並編譯它。
在這裡，我們知道，evilest_compiler - 當編譯這個文件 -
要在這裡插入代碼之前編譯的文件，
該代碼是要看看我們的編譯器的第二個版本的代碼完全一樣
它這樣做。
此代碼，其目的是打破登錄，
將要被插入到我們的編譯器evilest編譯器。
讓我們用evilest_compiler我們的編譯器編譯。
現在，我們將使用編譯器，
回來登陸，
，並記住本的login.c有絕對沒有什麼可疑。
但我們的編譯器編譯login.c的，
搶劫，thisiscs50，取得成功。
讓我們先登錄的黑客，LOLihackyou，砍死！你現在有機會。
>> 認識到這是不同的，從我們的編譯器版本2。
我們使用的編譯器 - 讓我們的移動 - 複製從登錄 -
讓我們把我們的編譯器在這裡。
卸下evilest編譯器。
我們現在剩下的是編譯器。
如果我們看看compiler.c，，
絕對沒有在那裡，似乎以任何方式惡意。
如果我們看看login.c的，，
在這裡絕對沒有以任何方式，看起來惡意。
但是，當我們用我們的編譯器編譯login.c的，
我們得到的容易被破解的login.c的版本。
當我們用我們的編譯器來編譯一個新版本的編譯器，
我們得到的容易被破解版本的編譯器。
現在，如果我們走出去和分發我們的編譯器可執行文件，
沒有人會知道它有什麼惡意。
>> 這實際上是這樣的 - 我不記得那一年 -
肯湯普森，他獲得了圖靈獎 -
如果你不熟悉的圖靈獎，它幾乎總是定義為
計算機科學的諾貝爾獎，所以這是我將如何定義它。
肯·湯普森發表講話時，他接受了他的圖靈獎
信任信任的“反思”。
基本上，這是他的想法，他的講話。
除了我們的，而不是編譯器，他說的是GCC -
只是一個編譯器一樣鐺 -
他在說什麼，像我們的login.c，我們的login.c似乎相對無用的
但他說UNIX的實際login.c的。
當您登錄到您的設備，
有一些登錄程序正在運行。
這是他在談論的登錄。
這基本上是他的主意。
他說，在GCC中，他在理論上可以種植了一個錯誤 -
不是一個錯誤，但惡意代碼 -
編譯時登錄的功能 - login文件 -
將插入一個後門，這樣他就可以在世界上任何UNIX系統的絕對
並與一些特定的用戶名和密碼登錄。
當時，GCC是幾乎每個人都用什麼編譯器。
如果有人發生在更新GCC，
然後，他們將使用GCC編譯GCC，
你依然會得到一個壞的版本的GCC
，因為它具體地認識到，它被重新編譯的編譯器編譯。
如果你曾經使用GCC重新編譯login.c的文件，
然後，它會插入這個後門，他可以使用任何一台計算機登錄到。
>> 這是理論上的，但 - 這特定的情況下是理論，
但這些想法是非常真實的。
在2003年，有一個類似的例子 -
我們就來看看這個文件，
它絕對沒有用它做，但類似的錯誤。
該文件定義了一個函數調用的鴻溝。
它需要一個參數，參數b，
的目的是做一個除以b。
但它確實一些錯誤檢查，
所以我們知道的事情是奇怪的，如果B發生等於零。
如果b為0，那麼我們就分裂成2例。
你可能已經看到的bug。
第一種情況 - 如果是零，那麼我們正在做的零除以零，
我們只是說這是不確定的。
第二種情況下 - 如果不為零，
那麼它的東西，如1除以零，而我們只需要調用無窮大。
否則，我們回到往常一樣除以b。
所以在這裡，我們正在運行的這3起案件，
我們實際運行鴻溝 - 罵我 -
所以，忽略了鏗鏘的警告 -
非void函數的結束 - 顯然我沒有編譯這個提前。
返回0。
分裂 - 所有權利。
/鴻溝，我們可以看到，無窮遠，無窮大。
零除以零，不應該返回無窮大。
如果你還沒有想通了的錯誤 - 還是沒看到它之前 -
我們可以看到，我們做了= 0。
也許我們的意思了== 0。也許吧。
>> 但是，這是實際的東西，再次，在2003年，Linux內核 -
因此，我們的設備使用的Linux內核 -
任何Linux操作系統使用的Linux內核 -
所以非常相似，這表明一個錯誤。
這個錯誤背後的想法是 -
再次，只是有一些功能，被稱為，它做了一些錯誤檢查。
有一些特定的輸入錯誤檢測 -
它應該是，所有的權利，你可以調用這個函數與除數為0。
所以，我將只返回一些錯誤。
除，這是不一樣的眼神，只設置一個等於0。
相反，這行代碼做更多的東西，如用戶=管理員。
或用戶超級用戶。
這是一個無辜的 - 第一眼 - 錯誤，它可能只是合理
我只是想一些具體的報告
如果發生用戶是超級用戶管理員。
但然後重新思考它，希望它看起來像一個簡單的拼寫錯誤的人，
但如果這段代碼實際上已被釋放，
那麼你就已經能夠破解任何系統通過特定的標誌 -
在這種情況下，b = 0時 -
它會自動使用戶的管理員，
然後，他有完全的控制。
這發生在2003年。
>> 它只是發生的唯一原因被抓
是因為發生了一些自動化系統
注意到在此文件中的變化
這不應該被改變的人。
該文件應僅是自動生成的。
正巧，有人感動 -
好了，想破解的人，感動的文件，
與電腦發現，觸摸。
因此，他們改變了這個，後來才意識到那將是災難
如果這已經得到了進入真實的世界。
>> 你也許會想 - 我們的編譯器的例子 -
即使我們不能看到 - 的源代碼 -
，特別是什麼是錯的，
如果我們看一下編譯的二進制代碼，
我們將看到什麼是錯的。
舉個例子，如果我們運行的字符串函數 -
這是剛剛要查看的文件，並打印出所有可以找到的字符串 -
如果我們運行我們的編譯器上的字符串，
我們看到的是一個字符串，它發現這是奇怪的 -
否則，如果（STRCMP（用戶名，“黑客”） - 等等，等等，等等。
如果有人碰巧是偏執狂，不信任他們的編譯器，
他們可以執行字符串和看到這一點，
然後他們會知道，有一些錯誤與實際的二進制。
但是，字符串是不可避免地被編譯的東西。
那麼，誰又能說我們的編譯器不只是有更多特殊的代碼
說，如果字符串是有史以來我們的編譯器上運行，不輸出所有的惡意代碼。
>> 同樣的想法，如果我們想顯示彙編文件 -
我們了解到，彙編器把我們從彙編代碼的機器代碼 -
我們可以向相反的方向 - objdump的-D編譯器 -
會給我們的組件，我們的代碼。
見到這種情景，
這是很神秘的，但是如果我們想，我們可以通過這
和理由，等待，有什麼在這裡，不應該去上，
然後我們就會認識到，編譯器做一些惡意的。
但是，就像字符串，說，objdump的是不特殊套管。
基本上，它歸結到你不能相信任何事情。
點的紙被稱為“信任信任”
在一般情況下，我們相信我們的編譯器。
您可以編譯你的代碼，並期望它做什麼，你問它做的。
但是，你為什麼要信任的編譯器？
你沒有寫的編譯器。你不知道什麼編譯器必須實際做。
誰是說你可以相信它嗎？
但即便如此，好了，也許我們可以相信的編譯器。
看著這幾十成千上萬的人。
一定是有人認可的東西的編譯器。
>> 如果我們只是去更深一層？
甚至也可能是您的處理器。
荒謬的，因為它可能是，
也許有一些流氓僱員在英特爾創建這些處理器
的處理器，只要你運行一些命令的注意事項
這意味著登錄到計算機，
處理器將接受一些特定的用戶名和密碼組合。
它會被廣泛接受複雜，
但有人能做到這一點。
在這一點上，你真的要打開你的電腦在處理器
用顯微鏡認識到，這些電路不排隊，他們應該是？
從來沒有人去捕捉這個錯誤。
在某些時候，你只需要放棄和信任的東西。
大多數人都相信在這一點上的編譯器。
這是，你應該說不一定。
看著有點臭名昭著的視頻 -
[戲劇性的音樂播放]
[這是一個UNIX系統。我知道這一點。]
這是所有的文件 - ]
她說：“這是一個UNIX系統，這個我知道。”
更換任何你喜歡的操作系統是UNIX -
她本來可以說，“這是一個Windows系統。這個我知道。”
這是一個完全沒有意義的聲明，
但我們都知道，她碰巧知道UNIX系統的一個後門進入。
她知道，她居然讓一些用戶名/密碼組合，將
做任何她想要的。
>> 好的。今天的道德基本上你不能相信任何事情。
甚至你寫的 - 你不寫編譯器。
編譯器可能是壞的。
即使你沒有寫的編譯器，運行編譯器的東西可能是壞的。
（笑）有沒有什麼可以做。
世界是注定。
給大衛！
[掌聲]
>> [大衛]謝謝。這是非常令人沮喪的。
不過說實在的，羅布是正確的。
我們並沒有真正的解決方案，但你要得到一些解決方案
一些更常見的防禦。
預期，Nate和我已經做台下有
知道，在這個房間裡有那麼多的筆記本電腦，
我們一直嗅探所有無線流量的通過這個房間，在過去的20分鐘
Rob的談話過程中，所以我們要採取一個2分鐘的休息時間。
Nate的設置，然後我們要談論的東西
我們可以發現。 （笑）
>> 所以，我可能誇大了一點點，只是為了戲劇，
但我們也能嗅探所有的無線通信因為事實上，
它是那麼容易。
但也有方法，你可以抵禦這樣，
我給你內特 - 哈迪森。 >> [內特]甜。
（掌聲）
>> [內特]謝謝，伙計。我很欣賞的喊出來。
好吧！這是比賽週。你們激動嗎​​？
希望這將是一場偉大的比賽上週六。
我想你們在這一點 - 因為，你有一個測驗週三
所有有關的代碼，我們只是坐著一個精彩的講座由Rob
一大堆的C代碼 -
也許是有點累了的代碼。
在這一部分，我們其實並沒有任何觸及任何代碼。
我們只是談論你每天都在使用的一種技術，
往往許多，許多小時一天，
我們將討論與安全的影響，有。
>> 在本學期，我們已經談了很多關於安全，
我們開始了一點點的加密。
[Bdoh LV vwlqng！
雖然你們可能是超興奮地相互傳紙條
在課堂上使用像這樣的愷撒密碼，
在現實中，有一些更有趣的了，當你談論安全
這樣的東西。
今天，我們要介紹幾個技術
現實世界中，人們的實際使用中，做各種各樣的事情
從人的數據包嗅探其實和
打破進入人們的銀行賬戶和所有的。
這些都是合法的工具，我們在談論
異常的可能的一個工具。
>> 我只想做一個快速免責聲明。
當我們談論這些事情，我們正在談論他們，你知道那裡有什麼，
你知道如何當你使用你的電腦是安全的。
但是，我們絕對不希望暗示，你應該使用這些工具
在宿舍或你的房子，因為你可以遇到很多的大問題。
這是今天的一個原因，我們實際上並沒有嗅探你的數據包。
>> 好的。的最後一個星期一，我們談到餅乾，HTTP，和認證，
如何Firesheep打開大門口到您的Facebook帳戶，
您的Hotmail帳戶 - 如果每個人都在使用Hotmail -
和許多其他帳戶。
很多這個東西是要建立關閉，
但首先，我想藉此快速瀏覽的互聯網已經發展如何，隨著時間的推移。
早在20世紀90年代，你們可能還記得，其實堵
您的計算機之一。
現在我們不這樣做那麼多了。
實際上，為了到我的筆記本電腦插入以太網電纜，
我現在已經使用這些適配器這是一種瘋狂的。
>> 相反，在1997年，我們有新的，有趣的技術
走了出來，被稱為IEEE 802.11，這是無線網絡標準
IEEE是這樣的管理機構，給出了各種 -
出版與計算機有關的各種標準。
802標準都對互聯網技術。
因此，802.3以太網標準，例如，
圖802.15.1我相信是藍牙的標準，
802.11是所有關於無線上網。
在1997年就出來了。它並不太明白的時候了。
直到1999年和802.11b標準出來了，真的很流行。
>> 你們有多少人還記得，當計算機開始出來，並獲得Wi-Fi的嗎？
這是種很酷吧？
我記得在高中時，我的第一台筆記本電腦
它有一個無線網卡。
我爸給了我，並說我應該用它為我的大學的應用程序和所有的，
我不知道我是怎麼看這個東西網上。
但幸運的是，我有一個無線網卡，所以這是非常酷的。
如今，你還可以看到802.11克的，這是其他非常受歡迎的
無線標準的。
在這一點上，b和g的漂亮已經過時。
任何人都知道是什麼版本大多數人都對現在
如果他們購買新的無線路由器，這樣的東西嗎？
N.沒錯。賓果遊戲。而事實證明，交流標準只是草案形式，
有其他版本的方式。
有了這些標準，我們得到了什麼，是更多的帶寬，
更多的數據以更快的速度。
這些事情是不斷變化很快。
這也使得它使我們不得不購買更多的路由器和所有有趣的東西。
>> 讓我們來談談什麼樣的無線通信是其核心。
隨著以太網和那些老的撥號調製解調器，
實際上你的東西，你連接到您的計算機，
然後你插入各種各樣的調製解調器，然後插入到你的牆上的插孔中。
你有有線連接，對不對？
整點的無線擺脫這東西。
為了做到這一點，我們有什麼本質上是
我們的無線路由器的無線電通信 -
指定由我們小的無線圖標 -
與此實線箭頭表示某種有線連接，連接到Internet的
但是，當您連接到您的無線路由器
你實際使用幾乎像一個對講機之間
您的計算機和無線路由器。
什麼是真正酷的是你可以走動。
您可以攜帶您的計算機上的所有的桑德斯，去網上衝浪，任何你想要的，
就像大家都知道和愛，
和你永遠不要插入任何東西。
對於這項工作，我們有這方面的接收和傳輸。
這真的是這樣的對講機。
>> 這款無線路由器 - 桑德斯坐在下面這個階段，就在這裡 -
總是廣播和接收，播放和接收，
同樣地，您的電腦都是這樣做同樣的事情，太。
我們不能聽到。
其他的事情，你可以做的是，你可以擁有多台計算機
談論到相同的無線路由器。
你是一個路由器 - 再次，這是一個無線電通信 -
越接近你，你的信號是更好的，更好的電腦“聽到”路由器
並可以與互聯網通信。
如果你們是永遠在你的宿舍裡，在你的房子，你想知道為什麼你的信號很糟糕，
它可能是因為：a）。你不是很接近你的路由器，或
b）所示。像一堵水泥牆或東西，有什麼東西在你和你的路由器之間
不會讓這些無線電波通過。
>> 讓我們來談談有點像Wi-Fi為什麼壞人。
壞人愛的wi-fi的幾個原因。
下面是我們討厭的壞傢伙就在那裡。
原因之一，這個壞傢伙愛的Wi-Fi
是因為，在默認情況下，很多的無線路由器來，當你設置它們，
他們是不加密的。
這一直是一個問題，已經有實例 -
多個實例，現在 - 壞人了別人的房子，
通知有未加密的Wi-Fi來，他們可以連接。
它們連接到的Wi-Fi，然後他們開始下載各種有趣的東西。
他們不是下載的小貓，他們不下載的小狗。
這是BitTorrent這樣的。這是最令人頭疼的討厭的。
有情況下，FBI甚至走上
認為誰擁有房子的人實際上是一個
去那裡下載東西，他們真的不應該。
在未加密的Wi-Fi絕對不是你想要做的事情，
如果沒有FBI來敲你的門。
>> 另一個原因，壞人愛的Wi-Fi
的原因是，大衛前面談到的突破。
因為它是一個無線電通信為核心，
如果你知道的通道，您可以收聽到該電台。
例如，如果有一個壞右，坐在中間偏右的接入點，
旁邊的無線路由器，壞傢伙可以監聽所有無線流量的
從所有這些計算機。
事實上，這些傢伙 - 這些幸運的少數人在前排 -
因為他們是超級接近所有這些無線路由器
，坐在舞台正下方，
他們將在這整個房間能聽到大家的交通
如果你連接到Wi-Fi，開始瀏覽這些接入點。
這是不是很辛苦，坐自己在一個很好的位置，嗅，並找出
其他人在做什麼。
這件事情要記住的，特別是如果你不知道在哪裡的接入點是，
您正在瀏覽的說法，在星巴克。
>> 事實證明，嗅和所有的
是不是真的很難做到。
有一個節目叫做tcpdump的各種TCP流量轉儲
，你可以運行它非常簡單 - 就像今天早上我這樣做。
這裡的一點點一傾，這裡是一些過來的交通
我的網絡的時間。
你可以看到 - 如果你瞇著眼睛真的很難 - 在那裡，有一點點的Spotify。
除tcpdump的 - 因為這是一個痛苦的使用 -
有一個叫做Wireshark的捆綁了這一切，一個漂亮的GUI程序。
Wireshark是超級方便，所以，如果你採取網絡類，
這是一個工具，你會來愛，因為它可以幫助你剖析的所有數據包
那些漂浮在那裡。
但是，它也可以被用於壞。
這很簡單，只要下載這個程序，啟動它，
啟動網絡捕獲，看到的一切是怎麼回事 -
過濾器和做各種有趣的東西。
>> 其他的事情，你可以做無線通信
不僅是你可以竊聽，但你也可以學習如何與網絡螺絲
並注入自己的信息來控制的經驗，其他人
在同一個無線網絡是越來越強。
讓我們來看看在那。
下面是Firesheep - 我們知道，從上週的愛 -
這是竊聽技術。
例如，如果我們想積極的壞傢伙去和周圍的混亂
這些計算機之一，
在這種情況下，我們已經嘗試去瀏覽到harvard.edu的買了台電腦。
什麼情況是，先在電腦發送一個消息到無線路由器，並說，
嘿，我想去訪問www.harvard.edu。
比如說，本週末，他們正試圖獲得有關遊戲的一些原因。
壞傢伙，因為他是坐在中間，
該接入點旁邊，可以看到通信的計算機
到路由器中，他知道，“啊哈！有人會的harvard.edu。” （邪惡地笑）
還有的將是此等待時間，而從路由器通信
互聯網去尋找網頁harvard.edu -
就像你們都知道在做PHP的pset -
這樣的壞傢伙有一點點時間，一點點的窗口，
他可以響應一些東西。
>> 比方說，這個壞傢伙，當然，是一個Yaley的。
他響應harvardsucks.org。噓！
壞，壞傢伙！壞Yaley！
甚至更糟糕的是，他可能回應。 [http://youtu.be/ZSBq8geuJk0]。
我將讓你們弄清楚那是什麼。
這實際上是一個稱為Airpwn的技術！這是開張了
的安全會議上幾年。
隨著Airpwn！你能夠真正注入到網絡流量。
計算機試圖走出去到互聯網，並試圖去
Google.com，Facebook.com，harvard.edu
看到進來的惡意響應，並立即承擔，好吧，
的響應，我在等待，並最終獲得內容
harvardsucks.org或nameyourfavoriteshocksite.com
你可以看到事情會惡化的速度有多快。
>> 所有這些事情不能做
這些有線連接，因為有線連接
這是很難窺探到交通。
如果我是個壞傢伙，一端是您的計算機
的另一端是你的路由器 - 調製解調器 -
只有這樣我才能得到之間，連接到我的電腦實際上拼接
在中間的某個地方
或做其他事，一些下游的路由器。
但是，隨著無線，也可以是那麼容易，因為坐在一個教室的前排，
你可以做各種討厭的東西在後面的人。
>> 讓我們來談談你會如何抵禦一些事情。
人誰開發的無線標準 - 802.11 -
他們沒有任何想像力的愚蠢的人。
這是很酷的技術，當它首次亮相於1999年，
他們來到了這個標準稱為WEP。
您可以在這裡看到，當您嘗試加入一個無線網絡，
你有各種不同的安全選項。
這是一種痛苦，因為有6個一起
它從來就沒有真正意義上的加入。
這是第1的頂部，他們來到了被稱為WEP是第一位的。
WEP有線等效保密代表，我相信，
無線加密協議是一種常見的用詞不當。
因為它試圖給你的隱私的當量和安全保護
相當於一個有線網絡的
隨著WEP的最終結果是什麼，
你有一個簡單的，小的，你輸入的密碼和加密
您的計算機和路由器之間的通信。
>> 但與WEP有什麼問題？
與WEP的密碼是非常短的，
，也是每個人都使用完全相同的密碼，
所以它真的很容易解密。
因此，速度非常快人想出了，WEP一個問題，
唯一的原因，你看到了這個小傢伙仍然是 -
有一些老的系統，不使用WEP -
你應該尋找的WPA甚至WPA2標準
，後來被釋放。
這些系統是一個更好的去保護無線上網。
這就是說，他們還是有一定的可編程性。
有工具，有可以做到這一點。
特別是可以很討厭的一件事是，
如果你連接到無線路由器的身份驗證，並使用某種形式的
加密通信，事實證明，這樣黑客就可以很容易地發送一個數據包
你的路由器斷開，
後，他們已經斷開然後，他們可以聽 -
您嘗試重新建立連接與您的路由器，它們能嗅出這些數據包。
利用這些信息，他們就可以去和解密你的通信。
這是不以任何方式任何形式的安全超出了所有人的想像。
>> 其他的事情你可以做，當你設置無線網絡
或者你加入他們的是 - 你注意，在這裡，當我加入這個網絡，
它要求我的網絡的名稱。
這也被稱為作為SSID。
你在這裡看到的權利，我有一個框，顯示我使用的SSID。
有哈佛大學，CS50和CS50員工網絡。
現在，你們有多少人知道，有一個的CS50員工網絡周圍？
你們中的一些。並非所有的你。
的問題，當然，如果我們不把這個在我們的SSID列表，
沒有人會知道它最有可能。
我的希望。除非你們都試圖破解我們的無線。
但是，這是你能做到這一點是非常重要的，當你設置了
一個路由器在家裡。
這可能不會發生了幾年了很多你，
但千萬記住，保持該SSID那裡，而不是將其命名為
超級共同的東西將有助於讓您更安全的長遠。
>> 最後一個夫婦的事情你可以做的。一個是HTTPS。
如果你在星巴克，如果你是在公共Wi-Fi
你決定訪問您的銀行帳戶，訪問您的Gmail，你的Facebook，
確保這些連接通過HTTPS。
這是一個額外的安全層，加層加密。
有一件事要記住的是，
你們有多少人曾經通過點擊那個又大又紅的屏幕，上面寫著，
“這個網站可能是壞的。”
我知道我有。
這也可能是，當你瀏覽去看看國土或類似的東西，對不對？
是啊。 （觀眾笑）是啊。你去那裡。我們知道誰在觀看國土。
那又大又紅的屏幕右下角有
往往預示著一些時髦是怎麼回事。
有時，它只是網站本身是不安全的，
但同樣的，紅色的大屏幕上出現時，人們正試圖
安裝網絡攻擊。
所以，如果你看到了，紅色的大屏幕在星巴克，
不會通過點擊它。
壞消息。壞消息熊。
>> 最後一點，你可以看一下
是某種形式的VPN。
VPN可通過哈佛 - vpn.fas.harvard.edu -
這是什麼做的是建立一個安全的連接
你和哈佛之間，漏斗，通過它，你的流量
這樣，如果你​​正坐在一家星巴克這樣的地方
您可以連接到哈佛，交通，安全，然後從哈佛大學瀏覽。
同樣，並非萬無一失。人們可以在中間。
他們可以開始打破它，而不是依賴的安全性，這是更為安全
在Wi-Fi單獨。
>> 好的。總之，
當你設置的無線網絡，
當你走出去，在公共場所使用無線 -
無論是星巴克，無論是五個人，無論是B.Good，
類似的東西 - 無論他們有Wi-Fi -
要知道你周圍的環境。
要知道，什麼人都可以做。
並且是安全的。不要訪問您的銀行帳戶。
這可能是一個粗魯的覺醒，如果有人顯示了你的密碼。
，深紅色！我要扭轉乾坤大衛最後一個字。
（掌聲）
>> [大衛]我想從個人的經驗，我會分享一件事。
你可能喜歡玩的 - 儘管蘋果已經在很大程度上根除這個問題的工具
如果您更新您的軟件，因為 -
但為此而沒有真正能夠信任的軟件，我們使用，
和Nate的點，能嗅出了相當多的其他人在做什麼
- 這是一個軟件，現在是大約一年和半前。
[iPhoneTracker] [http://petewarden.github.com/iPhoneTracker/]
一段時間以來，iTunes的 - 之前的iCloud，當你被同步您的iPod或您的iPhone或
與iTunes或你的ipad公司 - 中備份的利益，
你的iPhone和其他設備已經做了一段時​​間
利用GPS數據。
>> 你們都知道也許你的iPhone和Android的Windows Mobile手機
和這樣的日子可以跟踪你是在顯示你的地圖的利益
和類似 - 蘋果和其他公司做什麼
他們通常跟踪幾乎無處不在，你的利益，實際上已在
提高服務質量。
一，你可以得到更有針對性的廣告和喜歡，
但有兩個，他們也可以找出哪裡有無線熱點，在世界上，
這可以幫助與地理定位 - 三角測量人的位置排序。
>> 長話短說，我們所有的人已經走的天線一定量的時間。
不幸的是，蘋果已經作出設計決策 - 或缺少 -
不加密信息，當它被備份到iTunes。
什麼樣的安全研究人員發現的是，這是一個巨大的XML文件 -
一個巨大的文本文件 - 坐在人們的iTunes軟件，
如果你只是有點好奇，
你可以去打探你的配偶的歷史，你的室友的歷史，
你的兄弟姐妹的歷史等，
由於一些免費的軟件，你可以繪製所有的這些GPS坐標 -
經度和緯度。
>> 所以，其實我這樣做，我自己的手機。
我插在我的手機，果然，我的版本的iTunes未加密的時候，
我能看到的是我自己的模式。
下面是美國和每一個的這些藍色圓圈代表
我碰巧已經超過那些擁有這種特殊的電話的前幾個月。
我花了很多的時間，當然，在東北，在美國加州的一點點時間，
得克薩斯州的一個短命的行，如果你再放大，在此 -
這是所有種類的罰款和有趣的，但我知道這一點。
我的許多朋友都知道這一點，但如果你在更深的潛水，
你看，我花了我大部分時間在東北。
如果抓住一些熟悉的前瞻性城鎮 -
這個大的，藍色的墨水污點基本上是集中在波士頓，
然後我花了一點時間在從波士頓郊區輻射。
但我也做了相當多的諮詢服務，一年。
今年是東部沿海地區，實際上，你可以看到我
我在我的口袋裡的iPhone在波士頓和紐約之間來回行駛
和費城的進一步下降，以及花費一點點的休假時間
在開普敦，這是小胳膊有。
因此，每一個這些點代表我已經有一些地方，
我完全不知道的是，這整個歷史只是坐在那裡，
在我的桌面計算機上。
如果你縮小 - 這其實是一個小麻煩的。
我不記得曾在賓夕法尼亞州，尤其是今年。
但我雖然有點困難，我想通了，哦，這是事實，旅
果然，我的手機已經抓住了我。
>> 蘋果自加密信息，
然而，這也僅僅是證明關於我們多少信息被收集，
以及如何輕鬆 - 或好或壞 - 這是可以接受的。
其中一個外賣希望從Rob的談話，從Nate的談話
今天這個樣子是小的視覺效果，更認識到這一點
所以，即使 - 羅布的點 - 走，排序完蛋了，對不對？
有沒有什麼我們可以做的，當涉及到其中的一些威脅，
但在一天結束的時候，我們要相信某事或某人
如果我們想使用這些技術。
至少，我們可以做出明智的決策和計算決定是否
實際上，我們應該檢查這個特別敏感的帳戶
實際上，我們應該發出那略帶懷疑的即時消息
在這樣一個Wi-Fi環境。
>> 因此，隨著中說，只有一次測驗，一次講座依然存在。
我們會看到你在週三然後週一。
（熱烈的掌聲和歡呼聲）
[CS50TV]