[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]