DAVID J. Malan: Ini adalah CS50, dan ini adalah awal minggu 10. Anda mungkin ingat bahwa kami telah menunjukkan pada layar printer 3D, yang adalah perangkat ini yang mengambil gulungan plastik dan kemudian extrudes dengan memanaskannya dan mencair sehingga kita dapat kemudian membentuk tentara Chang dari gajah, misalnya. Jadi pada Leverett House, meskipun, baru-baru ini, saya sedang mengobrol dengan salah satu dari Anda teman sekelas dan teman Chang bernama Michelle, yang benar-benar magang di perusahaan lainnya tahun terakhir ini yang memiliki teknik yang berbeda untuk benar-benar membuat objek tiga dimensi, seperti ini gajah kecil kecil di sini. Secara khusus, cara ini bekerja adalah bahwa hal itu adalah contoh sesuatu disebut stereolithography, dimana ada cekungan ini resin atau cair, dan kemudian laser pemogokan yang cair, dan secara bertahap, perangkat Lift dan Lift dan mengangkat hal bahwa Anda mencetak, seperti gajah, sebagai cairan yang menjadi padat. Dan hasilnya, benar-benar, adalah sesuatu yang jauh lebih kuat daripada beberapa plastik hadiah beberapa dari Anda mungkin punya. Dan apa Chang ramah lakukan bagi kita di sini adalah melakukan time-lapse menggunakan foto selama satu jam atau lebih, mungkin, untuk menghasilkan orang ini di sini. Akan seseorang yang pernah datang sebelumnya ingin datang memukul Start pada video ini? Biarkan aku pergi dengan, bagaimana sana. Ayo up. Baik. Dan Anda? LUKE: Namaku Luke [tak terdengar]. DAVID J. Malan: Hi, Luke. Senang kenalan dengan anda. LUKE: Senang bertemu Anda. AUDIENCE: Dia berjalan untuk UC. DAVID J. Malan: Aku tahu, kita mencoba untuk tidak mempromosikan. Baiklah, jadi Luke, semua yang harus Anda lakukan di sini di CS50 adalah menekan space bar untuk mencetak gajah ini. [VIDEO PLAYBACK] - [MESIN berputar] - [CRASH] - [BOOM] - [CRASH] [END VIDEO PLAYBACK] DAVID J. Malan: Jadi itulah apa rasanya 3D print. Dan di sini adalah gajah Anda. Terima kasih untuk relawan. Baik. Jadi sekali lagi, sesuai spesifikasi untuk tugas akhir, perangkat ini itu tersedia untuk kalian adalah, untuk beberapa alasan, proyek Anda memiliki beberapa persimpangan perangkat lunak dan perangkat keras, menyadari bahwa ini sekarang sumber daya. Saya ingin mengambil satu saat menyentuh pada sebuah artikel Crimson yang keluar larut malam terakhir, yang adalah untuk mengumumkan bahwa orang ini di sini, David Johnson, yang sudah senior pembimbing untuk Ec 10 untuk beberapa waktu, meninggalkan Harvard pada akhir tahun ajaran. Dan aku hanya ingin luangkan waktu, jujur, mengucapkan terima kasih kepada David di depan CS50. Dia menjadi mentor dari macam kepada kami selama bertahun-tahun. Dan aku merasa seperti kami, CS50, memiliki agak tumbuh dengan Ec 10 di sini, karena mereka tepat sebelum kita. Dan dia dan seluruh tim di Ec 10 memiliki telah mengagumkan anggun, terus terang, seperti yang kita membawa semua peralatan kami masing-masing dan setiap minggu, dan tahun lalu, tersedia banyak nasihat saat kami ingin tahu bagaimana mereka beroperasi Ec 10. Jadi terima kasih dan kekaguman David Johnson. [Tepuk Tangan] Sekarang, unrelatedly, jadi akhirnya memang dekat. Kami berada di sini di minggu 10. Dan kami hanya memiliki hanya beberapa minggu resmi di sini di kelas kiri, diikuti oleh beberapa peristiwa. Jadi untuk memberikan rasa apa yang di cakrawala, di sini kita hari ini. Ini Rabu, ingat, kita akan memiliki kuliah tamu oleh tak lain dari Microsoft sendiri Steve Ballmer. Jika Anda belum pergi ke cs50.harvard.edu/register, melakukannya, karena ruang akan terbatas. Dan mereka akan memeriksa ID di pintu hari ini. Jika Anda tidak di sini minggu lalu, saya pikir saya akan menggoda Anda dengan tampilan yang berbeda Steve dan kegembiraan yang menanti kita pada hari Rabu. [VIDEO PLAYBACK] -Passion. -Kita Akan menjadi hardcore hardcore--. -Innovator. -Bill Mengatakan, Anda tidak mendapatkannya. Kita akan menempatkan komputer di setiap meja dan di setiap rumah, yang menjadi moto bagi perusahaan. Aku bersumpah, Bill menciptakannya malam itu untuk benar-benar memberi saya beberapa visi mengapa saya harus mengatakan ya. Aku tidak pernah melihat ke belakang, benar-benar, setelah itu. -segar Dari perguruan tinggi, ia bergabung dengan startup pemula dan membantu tumbuh menjadi salah satu Amerika bisnis yang paling sukses yang pernah. Kehidupan dan bisnis pelajaran sepanjang jalan biarkan dia kembali ke nya gairah anak dan cinta. Dan pengalaman-pengalaman telah mempersiapkan dia untuk tantangan berikutnya dalam hidup. -Tidak Ada aral booming way-- kami! Jauhkan hardcore datang! Buka Clippers! -Ini Adalah Steve Ballmer, "Dalam My Own Words." [END VIDEO PLAYBACK] DAVID J. Malan: --this Rabu sampai CS50. Kepala lagi untuk URL ini di sini. Adapun apa lagi yang di cakrawala, minggu depan, tidak ada kuliah pada hari Senin. Tapi kita akan berikut yang oleh kuis satu pada hari Rabu. Membuka situs CS50 untuk rincian pada orang-orang, tempat, dan waktu untuk semua berbagai proctoring logistik dan sejenisnya, serta tentang ulasan sesi yang akan datang. Dan kemudian, akhirnya, pada hari Senin, hari sebelum minggu istirahat Thanksgiving, menyadari itu akan menjadi ceramah terakhir kami. Kami akan melayani kue dan besar kesepakatan kegembiraan, kami berharap. Sekarang, beberapa pembaruan lainnya. Perlu diingat bahwa status Laporan, yang benar-benar hanya dimaksudkan untuk menjadi interaksi kasual dengan TF Anda untuk bangga menyatakan hanya seberapa jauh bersama dengan Anda tugas akhir Anda, atau setidaknya sebagai kewarasan memeriksa bahwa Anda harus akan mendekati bahwa titik segera sesudahnya. The Hackathon kemudian mengikuti itu. Menyadari Hackathon bukan kesempatan untuk memulai proyek akhir Anda, tetapi dimaksudkan untuk menjadi sebuah kesempatan berada di tengah-tengah atau ke arah akhir proyek akhir Anda, dengan pelaksanaan karena beberapa hari kemudian, diikuti oleh adil CS50. Sekarang, produksi CS50 ini Tim, beberapa tahun yang lalu, mengumpulkan teaser untuk adil CS50 yang kita pikir kami akan menampilkan hari ini, karena mereka sudah bekerja keras pada prequel untuk itu, video baru bahwa kita akan menyimpulkan hari ini dengan. Tapi di sini apa yang menanti Anda untuk tahun ini CS50 adil. [VIDEO PLAYBACK] - [CELL PHONE RINGING] [MUSIC "TEMA DARI MISI: IMPOSSIBLE"] [END VIDEO PLAYBACK] DAVID J. Malan: Jadi itulah bagaimana kita menutup kiriman tugas akhir. Beberapa saat teasers-- jika Anda ingin bergabung dengan Nick di sini untuk makan siang, seperti biasa, ini Jumat, menuju ke URL ini di sini. Selain itu, jika Anda ingin untuk bergabung Nick atau Nick ini atau Allison ini atau anggota tim CS50 ini, menyadari bahwa, tak lama setelah akhir masa ini, CS50 sudah akan merekrut untuk tim tahun depan, untuk CA, TF, desainer, produser, peneliti, dan posisi lain bahwa di sini beroperasi CS50 baik dalam depan dan di belakang layar. Jadi jika ini mungkin menarik kepada Anda, kepala ke URL ini di sini. Dan siswa lebih nyaman, kurang nyaman, dan di suatu tempat di antara sama semua welcome dan didorong untuk menerapkan. Jadi itu waktu yang sempurna itu, tidak ada lelucon, pagi ini, ketika aku terbangun, Aku punya ini di sini spam dalam inbox saya. Itu benar-benar tergelincir melalui Gmail filter spam entah bagaimana dan berakhir di inbox saya yang sebenarnya. Dan ia mengatakan, "Sayang kotak pengguna, Anda saat ini upgrade ke 4 gigabytes ruang. Silahkan login ke akun Anda untuk memvalidasi E-ruang. " Dan kemudian ada biru ini bagus menarik tautan sana untuk mengklik untuk fakultas dan staf, yang kemudian membawa saya ke halaman indah yang sah, yang meminta saya untuk memberi mereka nama saya dan alamat email dan, tentu saja, sandi untuk memvalidasi siapa saya dan sebagainya. Tapi tentu saja, seperti yang selalu terjadi, Anda tiba di halaman arahan ini, dan tentu saja, ada setidaknya satu typo, yang tampaknya menjadi paku di peti mati salah satu penipuan ini. Dan kami akan posting, mungkin, beberapa lainnya link ke jenis-jenis screen shot di masa depan. Tapi mudah-mudahan, kebanyakan orang di Ruangan ini belum clicked-- atau bahkan jika Anda mengklik Link seperti ini, Anda tidak pergi sejauh untuk mengisi bentuk-bentuk dan sebagainya. Bahkan, tidak apa-apa jika Anda memiliki. Kami akan mencoba untuk memperbaikinya hari ini, karena, memang, percakapan hari ini tentang keamanan. Dan memang, salah satu tujuan CS50 tidak begitu banyak untuk mengajar Anda CE atau PHP atau JavaScript atau SQL atau salah satu dari ini mendasari rincian pelaksanaan. Tapi itu untuk memberdayakan Anda sebagai manusia hanya membuat keputusan cerdas karena berkaitan dengan teknologi turun jalan sehingga, apakah Anda seorang insinyur atau humanis atau ilmuwan atau peran lain, Anda membuat keputusan tentang penggunaan komputasi Anda sendiri, atau jika Anda berada dalam Posisi pengambilan keputusan, dalam politik, khususnya, Anda membuat banyak, keputusan jauh lebih baik daripada banyak manusia saat ini telah. Dan kita akan melakukan ini dengan cara beberapa contoh. Pertama, saya agak terkejut baru-baru ini menemukan berikut. Jadi password, tentu saja, adalah apa yang sebagian besar dari kita gunakan untuk melindungi email data-- kami, chatting, dan segala macam sumber daya seperti itu. Dan hanya dengan sebuah awkward-- tidak menunjukkan dari tangan, tapi terlihat malu malu, berapa banyak dari Anda menggunakan password yang sama dalam banyak website yang berbeda? Oh, OK, jadi kita akan melakukan tangan. OK, jadi banyak yang Anda lakukan. Siapapun yang melakukan hal ini, hanya mengapa? Dan apa? Ya? AUDIENCE: Sangat mudah untuk diingat, karena Anda tidak perlu mengingat [tak terdengar]. DAVID J. Malan: Yeah, sangat mudah untuk diingat. Ini adalah masuk akal, perilaku rasional, meskipun risiko Anda menempatkan diri di dalam kasus ini hanya satu atau lebih dari situs web tersebut rentan terhadap hacking atau ke tidak aman atau sandi Anda hanya begitu darn ditebak, siapa pun bisa figure it out. Tidak hanya satu account dikompromikan, tetapi dalam teori, setiap account yang Anda miliki di internet. Jadi saya tahu saya bisa mengatakan hari ini, jangan menggunakan password yang sama di mana-mana, tapi itu jauh lebih mudah diucapkan daripada dilakukan. Tapi ada teknik untuk mengurangi bahwa perhatian khusus. Sekarang, saya kebetulan, misalnya, untuk menggunakan sebuah program bernama 1Password. Satu lagi populer disebut LastPass. Dan sekelompok staf menggunakan CS50 satu atau lebih dari jenis alat. Dan singkat cerita, satu takeaway untuk hari ini seharusnya, ya, Anda mungkin harus password yang sama di mana-mana, tapi itu sangat mudah untuk tidak lagi melakukan hal itu. Misalnya, hari ini, saya tahu mungkin satu dari puluhan atau ratusan saya password. Semua password saya yang lain adalah pseudo-acak yang dihasilkan oleh salah satu program di sini. Dan singkatnya, dan bahkan meskipun sebagian besar dari program ini cenderung datang dengan sedikit biaya, Anda akan menginstal sebuah program seperti ini, Anda kemudian akan menyimpan semua username dan password dalam program ini pada Mac atau PC atau entah apa lagi Anda sendiri, dan kemudian akan dienkripsi pada komputer Anda dengan apa yang mudah-mudahan sandi sangat lama. Jadi saya memiliki sejumlah besar password untuk situs web masing-masing, dan kemudian aku harus benar-benar password yang panjang yang saya gunakan untuk membuka semua mereka password lainnya. Dan apa yang baik tentang perangkat lunak seperti ini bahwa, ketika Anda mengunjungi sebuah website yang meminta username dan password, hari ini, saya tidak ketik username dan password, karena, sekali lagi, saya bahkan tidak tahu apa yang kebanyakan password saya. Saya malah memukul keyboard shortcut, yang hasilnya adalah untuk memicu software ini untuk meminta saya untuk password master saya. Saya kemudian ketik bahwa salah satu besar sandi, dan kemudian browser otomatis mengisi apa password saya. Jadi benar-benar, jika Anda mengambil apa-apa lagi jauh dari hari ini dalam hal password, ini adalah software yang patut men-download atau berinvestasi dalam begitu bahwa Anda dapat setidaknya istirahat kebiasaan tertentu. Dan jika Anda adalah tipe orang yang menggunakan Post-It atau like-- dan kemungkinan besar setidaknya satu dari Anda is-- Kebiasaan itu juga, cukup untuk mengatakan, harus rusak. Sekarang, saya kebetulan menemukan, sebagai hasilnya menggunakan software, berikut. Saya memesan sebuah Arrangement Goreng, keranjang ini buah, baru-baru ini. Dan aku memukul keyboard khusus saya pintas untuk login ke situs web. Dan perangkat lunak memicu pop-up yang mengatakan, apakah Anda yakin Anda ingin saya otomatis masukkan nama login dan password ini? Karena sambungan tidak aman. Sambungan tidak menggunakan HTTPS, untuk aman, menggunakan protokol yang dikenal sebagai SSL, Secure Socket Layer. Dan memang, jika Anda melihat kiri atas website ini, itu hanya www.ediblearrangements.com, ada HTTPS, yang tidak begitu baik. Sekarang, aku curious-- mungkin ini hanya bug dalam perangkat lunak. Tentunya, beberapa website seperti ini bahwa banyak dari kita tahu setidaknya menggunakan enkripsi atau HTTPS URL untuk memasukkan anda. Jadi saya punya sedikit penasaran pagi ini. Dan aku keluar keterampilan CS50 saya, Saya membuka Chrome Inspektur. Ini bahkan tidak banyak keterampilan. Ini hanya memukul keyboard yang tepat shortcut untuk membuka hal ini. Dan inilah jendela besar Inspektur Chrome. Tapi apa sebenarnya sedikit tragis dan konyol dua baris ini di sini. Sampai di atas, perhatikan URL untuk yang username dan password saya diajukan. Biarkan aku memperbesar. Itu ini di sini. Dan semua itu adalah semacam menarik, kecuali untuk hal sepanjang jalan di kiri, yang dimulai dengan http: //. Dan kemudian, OK, mungkin mereka hanya mengirimkan username saya, yang bukan masalah besar. Mungkin kata sandi akan dikirim kemudian. Itu akan menjadi semacam sebuah keputusan desain yang menarik. Tapi nggak. Jika Anda kemudian melihat permintaan payload, username dan password Saya sent-- dan saya mengejek ini untuk slide-- yang benar-benar dikirim dalam jelas. Jadi Anda pergi ke website tertentu dan memesan Pengaturan Edible seperti ini, dan memang, tampaknya, untuk semua ini kali saya sudah memesan dari mereka, username dan password Anda akan melintasi di jelas. Jadi jujur, ini adalah benar tidak dapat diterima. Dan sangat sepele untuk menghindari hal-hal seperti ini sebagai desainer website dan sebagai programmer website. Tapi takeaway di sini untuk kita sebagai pengguna website hanya untuk menghargai bahwa semua itu membutuhkan waktu adalah untuk satu desain bodoh keputusan, keputusan desain tidak dapat dibenarkan, sehingga sekarang, jika Anda tahu password saya adalah "Crimson" dalam hal ini website, Anda mungkin pernah hanya masuk ke sejumlah besar situs-situs lain yang sekarang saya miliki. Dan tidak ada banyak dari pertahanan terhadap yang selain apa Chang lakukan pagi ini. Ia pergi ke Pengaturan Goreng, yang terletak di jalan di Cambridge, dan fisik membeli ini untuk kita. Itu jauh lebih aman daripada menggunakan website dalam kasus ini. Tapi detail untuk mengawasi keluar untuk sebenarnya apa yang ada di atas browser up di sana. Tetapi bahkan yang bisa sedikit menipu. Jadi lain yang menarik contoh dan cara membela terhadap this-- dan benar-benar, mari kita melakukan itu first-- cara membela terhadap hal ini adalah teknik bahwa orang-orang keamanan akan memanggil otentikasi dua faktor. Apakah ada yang tahu apa solusinya untuk masalah seperti ini berarti? Apa itu otentikasi dua faktor? Atau dengan kata lain, bagaimana banyak dari Anda menggunakannya? OK, jadi beberapa orang yang pemalu. Tapi ya. Aku melihat tangan Anda naik. Apa itu otentikasi dua faktor? AUDIENCE: Pada dasarnya, selain untuk mengetikkan password Anda, Anda juga memiliki [tidak terdengar] sekunder dikirim melalui pesan teks ke telepon Anda di [tidak terdengar]. DAVID J. Malan: Tepat. Selain beberapa bentuk primer otentikasi, seperti sandi, Anda diminta untuk sekunder Faktor, yang biasanya sesuatu yang harus secara fisik pada Anda, meskipun dapat menjadi sesuatu yang lain sama sekali. Dan hal yang biasanya Cellphone hari ini yang Anda dapatkan mengirim pesan teks sementara yang mengatakan "Kode pass sementara Anda adalah 12345." Jadi selain saya password "merah," Saya juga harus mengetikkan apa pun website telah mengirim sms saya. Atau jika Anda memiliki ini dengan bank atau rekening investasi, Anda kadang-kadang memiliki ini dongle kecil yang benar-benar memiliki pseudo-acak number generator dibangun ke dalam mereka, namun kedua perangkat dan bank tahu apa benih awal Anda adalah sehingga mereka tahu, bahkan sebagai sedikit kode pada fob kunci kecil Anda berbaris di depan setiap menit atau dua, mengubah nilai-nilai, begitu juga bahwa perubahan nilai pada server bank sehingga mereka sama dapat mengotentikasi Anda, tidak hanya dengan kata sandi Anda, tapi dengan kode sementara. Sekarang, Anda benar-benar dapat melakukan ini di Google. Dan terus terang, ini adalah kebiasaan yang baik untuk masuk ke dalam, terutama jika Anda menggunakan Gmail sepanjang waktu pada browser. Jika Anda pergi ke URL ini di sini, yang di slide online untuk hari ini, dan kemudian klik Verifikasi 2 Langkah, hal yang sebenarnya sama ada. Anda akan diminta untuk memberikan mereka nomor ponsel Anda. Dan kemudian, setiap kali Anda login ke Gmail, Anda akan tidak hanya meminta untuk password Anda, tetapi juga untuk sedikit kode yang akan dikirim ke ponsel Anda sementara. Dan selama Anda memiliki cookie diaktifkan, dan selama Anda tidak secara eksplisit log out, Anda hanya akan memiliki untuk melakukan itu sesekali waktu, seperti ketika Anda duduk pada komputer baru. Dan terbalik di sini, juga, adalah, jika Anda duduk di beberapa gaya cafe internet komputer atau hanya komputer teman, bahkan jika teman itu jahat atau tidak sadar memiliki beberapa logger Keyboard diinstal pada komputer nya, sehingga segala sesuatu yang Anda Jenis sedang login, setidaknya itu faktor kedua, bahwa kode sementara, adalah fana. Jadi dia atau siapa pun yang dikompromikan komputer tidak bisa login ke Anda kemudian, bahkan jika segala sesuatu yang lain adalah rentan atau bahkan terenkripsi sama sekali. Facebook memiliki ini juga, dengan URL di sini, di mana Anda dapat mengklik Login Approvals. Jadi di sini, juga, jika Anda tidak ingin teman-teman untuk menyodok orang, Anda tidak ingin menusuk di Facebook atau posting update status untuk Anda, otentikasi dua faktor di sini adalah mungkin hal yang baik. Dan kemudian ada ini Teknik lain sama sekali, hanya audit, yang bahkan hal yang baik bagi kita manusia, jika dua faktor membuktikan menjengkelkan, yang, diakui, itu bisa, atau itu hanya tidak tersedia pada beberapa situs, minimal mengawasi jika dan ketika Anda login ke situs, jika mereka memungkinkan Anda, adalah teknik yang baik, juga. Jadi Facebook juga memberikan ini pemberitahuan masuk fitur, dimana kapan saja Facebook menyadari, hm, David memiliki login dari beberapa komputer atau telepon bahwa kita belum pernah lihat sebelumnya dari alamat IP yang terlihat asing, mereka akan setidaknya mengirimkan email apa pun alamat email Anda miliki di file, mengatakan, hal ini terlihat mencurigakan? Jika demikian, segera ubah sandi Anda. Dan di sana, juga, hanya perilaku audit bahkan setelah Anda sudah dikompromikan, setidaknya bisa mempersempit jendela selama yang Anda rentan. Baiklah, pertanyaan pada hal-hal yang sejauh ini? Hari ini adalah hari untuk mendapatkan semua paranoia Anda dikonfirmasi atau ditolak. Itu sebagian dikonfirmasi, sayangnya. Ya? AUDIENCE: [tak terdengar] telepon, bagaimana jika istirahat telepon Anda, dan kemudian itu selalu sulit untuk verify-- DAVID J. Malan: Benar. AUDIENCE: Atau jika Anda berada dalam berbeda negara, dan mereka tidak membiarkan Anda login karena [tak terdengar]. DAVID J. Malan: Tentu saja. Dan jadi ini adalah tambahan Biaya yang Anda keluarkan. Selalu ada tema ini dari trade-off, setelah semua. Dan kemudian, jika Anda kehilangan ponsel Anda, kalau rusak, jika Anda di luar negeri, atau Anda hanya tidak memiliki sinyal, seperti 3G atau sinyal LTE, Anda mungkin tidak benar-benar dapat mengotentikasi. Jadi sekali lagi, kedua adalah trade-off. Dan kadang-kadang, itu bisa membuat banyak bekerja untuk Anda sebagai hasilnya. Tapi itu benar-benar tergantung, lalu, pada berapa harga diharapkan Anda adalah sesuatu makhluk dikompromikan sama sekali. Jadi SSL, kemudian, adalah teknik ini yang kita semua umumnya mengambil untuk diberikan atau bertanggung ada, meskipun itu jelas tidak terjadi. Dan Anda masih dapat menyesatkan orang, meskipun, bahkan dengan ini. Jadi di sini adalah contoh bank. Ini adalah Bank of America. Ada sejumlah besar ini di Harvard Square dan di luar. Dan perhatikan bahwa, di bagian paling atas dari layar, ada sebuah, memang, HTTPS. Dan itu bahkan hijau dan disorot untuk kita untuk menunjukkan bahwa ini memang website sah aman, atau jadi kami telah dilatih untuk percaya. Sekarang, selain itu, meskipun, melihat bahwa, jika kita memperbesar, ada hal ini di sini, di mana Anda akan diminta untuk log in. Apa gembok ini berarti tepat di sana, di samping username saya meminta? Hal ini sangat umum di website juga. Apa artinya gembok ini? Anda tampak seperti Anda tahu. AUDIENCE: Ini tidak berarti apa-apa. DAVID J. Malan: Ini tidak berarti apa-apa. Ini berarti bahwa Bank of America tahu bagaimana untuk menulis HTML dengan tag gambar, kan? Itu benar-benar berarti apa-apa, karena bahkan kami, menggunakan hari pertama melihat kami di HTML, dapat kode sebuah halaman dengan latar belakang merah dan gambar, seperti GIF atau entah apa lagi, yang terjadi terlihat seperti gembok. Namun, ini super umum di website, karena kita telah dilatih untuk mengasumsikan bahwa, oh, gembok berarti aman, ketika itu benar-benar hanya berarti Anda tahu HTML. Misalnya, kembali pada hari, aku bisa baru saja menempatkan ini di website saya, mengklaim itu aman, dan bertanya, efektif, untuk username dan password orang. Jadi melihat dalam URL adalah setidaknya petunjuk yang lebih baik, karena yang dibangun ke Chrome atau browser apa pun yang Anda gunakan. Tapi meskipun begitu, kadang-kadang hal yang bisa salah. Dan pada kenyataannya, Anda mungkin tidak selalu melihat HTTPS, apalagi dalam warna hijau. Apakah ada di antara kalian yang pernah melihat layar seperti ini? Anda mungkin memiliki, sebenarnya, sebelumnya pada bulan Oktober, ketika aku lupa untuk membayar untuk kami Sertifikat SSL, seperti disebut, dan kami sedang mencari seperti ini untuk satu atau dua jam. Jadi Anda mungkin pernah melihat hal-hal seperti ini, dengan pemogokan-melalui, seperti garis merah, melalui protokol pada URL atau beberapa jenis layar yang setidaknya mengingatkan Anda untuk mencoba untuk melangkah lebih jauh. Dan Google di sini mengundang Anda kembali ke tempat yang aman. Sekarang, dalam hal ini, ini hanya berarti bahwa sertifikat SSL yang kita gunakan, besar, angka matematis berguna yang terkait dengan server CS50 ini, tidak lagi berlaku. Dan pada kenyataannya, kita dapat mensimulasikan ini, yang Anda bisa pada laptop Anda. Jika saya pergi ke Chrome di sini, dan mari kita pergi ke facebook.com, dan sepertinya ini aman. Tapi biarkan aku pergi ke depan sekarang dan klik pada gembok di sini. Dan biarkan aku pergi ke Connection, Informasi Sertifikat. Dan memang, apa yang akan Anda lihat di sini adalah a bunch dari rincian tingkat rendah tentang yang facebook.com sebenarnya. Tampaknya bahwa mereka telah membayar uang untuk sebuah perusahaan bernama mungkin DigiCert Tinggi Jaminan yang telah dijanjikan untuk memberitahu seluruh dunia bahwa, jika browser pernah melihat sebuah certificate-- Anda bisa memikirkan itu benar-benar sebagai sertifikat yang terlihat seperti benda murahan di atas left-- kemudian facebook.com adalah siapa yang mereka katakan mereka, karena selama ini, ketika Anda mengunjungi sebuah website, seperti cs50.harvard.edu atau facebook.com atau gmail.com yang menggunakan HTTPS URL, di belakang layar, ada semacam ini transaksi terjadi secara otomatis untuk Anda, dimana facebook.com, dalam hal ini, mengirimkan ke browser Anda yang disebut sertifikat SSL, atau lebih tepatnya, kunci publik, dan kemudian browser Anda menggunakan kunci publik untuk kemudian mengirim terenkripsi lalu lintas ke dan dari itu. Tapi ada hirarki ini seluruh dalam dunia perusahaan bahwa Anda membayar uang untuk siapa yang akan kemudian bersaksi, dalam arti digital, bahwa Anda memang facebook.com atau server Anda memang cs50.harvard.edu. Dan dibangun ke browser, seperti Chrome dan IE dan Firefox, adalah daftar semua orang disebut otoritas sertifikat yang disahkan oleh Microsoft dan Google dan Mozilla untuk mengkonfirmasi atau menyangkal bahwa facebook.com adalah siapa yang dikatakannya itu. Tapi menangkap adalah bahwa hal-hal ini berakhir. Bahkan, Facebook terlihat seperti habis masa berlakunya Oktober mendatang, pada tahun 2015. Jadi kita benar-benar dapat mensimulasikan ini jika saya masuk Mac saya ke System Preferences saya, dan aku pergi ke Tanggal dan Jam, dan Aku pergi ke Tanggal dan Waktu di sini, dan saya membuka sini-ini untungnya, kami tidak mengungkapkan password time-- ini dan sekarang aku pergi ke hapus centang ini. Dan mari kita actually-- oops, itu tidak semenarik melakukan hal ini. Kami benar-benar di masa sekarang, yang berarti ini adalah apa 2020 adalah seperti. Jika saya sekarang ulang page-- yang mari kita lakukan di Ingognito mode-- jika saya kembali halaman tersebut, di sana kita pergi. Jadi sekarang, komputer saya berpikir itu 2020, tapi browser saya tahu bahwa sertifikat ini dari Facebook berakhir, tentu saja, pada tahun 2015. Jadi itu memberi saya pesan merah ini. Sekarang, untungnya, browser seperti Chrome telah benar-benar membuatnya cukup sulit untuk lanjutkan tetap. Mereka memang ingin aku untuk kembali ke tempat yang aman. Jika saya klik di sini pada Advance, itu akan menceritakan beberapa rincian lebih lanjut. Dan jika saya benar-benar ingin untuk melanjutkan, mereka akan membiarkan saya pergi ke facebook.com, yang, lagi, tidak aman, di mana titik Aku akan melihat homepage Facebook, seperti ini. Tapi hal-hal maka lain tampaknya melanggar. Apa yang mungkin melanggar pada saat ini? AUDIENCE: JavaScript. DAVID J. Malan: Seperti Javascripts dan / atau CSS file-sama menghadapi kesalahan itu. Jadi ini hanyalah sebuah situasi yang buruk secara keseluruhan. Tapi intinya di sini adalah bahwa setidaknya Facebook memang memiliki SSL diaktifkan untuk server mereka, karena banyak situs web, dilakukan, tetapi belum tentu semua. Tapi itu tidak sendirian takeaway di sini. Ternyata bahwa bahkan SSL telah dibuktikan tidak aman dalam beberapa cara. Jadi aku semacam mengisyaratkan SSL itu, baik. Carilah HTTPS URL, dan kehidupan adalah baik, karena semua lalu lintas HTTP Anda dan header dan konten dienkripsi. Tidak ada yang bisa mencegat itu di tengah, kecuali seorang pria yang disebut di tengah. Ini adalah teknik umum dalam dunia keamanan dikenal sebagai serangan man-in-the-middle. Misalkan Anda ini sedikit laptop di sini di sebelah kiri, dan anggaplah Anda mencoba untuk mengunjungi server di sana di sebelah kanan, seperti facebook.com. Tapi anggaplah bahwa, dalam antara Anda dan Facebook, adalah sejumlah besar server lain dan peralatan, seperti switch dan router, DNS server, DHCP server, tidak ada yang kami kontrol. Mungkin dikendalikan oleh Starbucks atau Harvard atau Comcast atau sejenisnya. Nah, anggaplah bahwa seseorang jahat, pada jaringan Anda, di antara Anda dan Facebook, adalah dapat memberi tahu Anda bahwa, Anda tahu apa, alamat IP dari Facebook adalah bukan apa yang Anda pikirkan. Ini IP ini sebagai gantinya. Dan browser Anda adalah tertipu meminta lalu lintas dari yang lain komputer sama sekali. Nah, misalkan komputer yang hanya tampak sama sekali lalu lintas yang Anda minta dari Facebook dan semua halaman web yang Anda minta dari Facebook. Dan setiap kali melihat lalu lintas Anda URL yang dimulai dengan HTTPS, secara dinamis, pada terbang, menuliskannya kembali sebagai HTTP. Dan setiap saat ia melihat lokasi header, lokasi usus besar, seperti kita gunakan untuk mengarahkan pengguna, mereka, juga, dapat diubah dengan orang ini dalam tengah dari HTTPS ke HTTP. Jadi meskipun Anda sendiri mungkin berpikir Anda berada di Facebook nyata, itu tidak sulit untuk musuh dengan akses fisik ke jaringan Anda untuk sekadar kembali halaman kepada Anda bahwa terlihat seperti Gmail, yang terlihat seperti Facebook, dan memang URL identik, karena mereka berpura-pura untuk memiliki nama host yang sama karena beberapa eksploitasi DNS atau sistem lain seperti itu. Dan hasilnya, kemudian, adalah bahwa kita manusia hanya mungkin menyadari bahwa, OK, ini tampak seperti Gmail atau setidaknya versi yang lebih tua, seperti geser ini dari presentasi yang lebih tua. Tapi sepertinya this-- http://www.google.com. Jadi di sini, juga, kenyataan adalah bahwa berapa banyak dari Anda, ketika Anda pergi ke Facebook atau Gmail atau situs dan Anda tahu sesuatu sedikit tentang SSL, berapa banyak dari Anda secara fisik ketik https: // dan kemudian website nama, Enter. Sebagian besar dari kita cukup ketik, seperti, CS50, tekan Enter, atau F-A untuk Facebook dan tekan Enter, dan biarkan auto-complete. Tapi di belakang layar, jika Anda menonton lalu lintas HTTP Anda, mungkin ada seluruh bunch dari mereka header lokasi yang mengirimkan Anda dari Facebook untuk www.facebook.com untuk https://www.facebook.com. Jadi itulah satu atau lebih transaksi HTTP di mana informasi Anda benar-benar dikirim dalam jelas, tidak ada enkripsi apapun. Sekarang, yang mungkin tidak menjadi besar seperti menangani jika semua yang Anda coba lakukan adalah mengakses homepage, Anda tidak mengirimkan username dan password Anda. Tapi apa yang terjadi di bawah kap, terutama untuk website berbasis PHP yang juga dikirim bolak-balik ketika Anda mengunjungi beberapa halaman web jika yang menggunakan situs, katakanlah, PHP dan mengimplementasikan fungsi seperti pset7? Apa yang sedang dikirim bolak-balik dalam header HTTP Anda yang memberi Anda akses ke cantik berguna global super di PHP? AUDIENCE: Cookies. DAVID J. Malan: Cookies, khususnya PHP sess ID kuki. Jadi ingat, jika kita pergi ke, mengatakan, cs50.harvard.edu lagi, tapi kali ini, mari kita membuka Jaringan tab, dan sekarang, di sini, mari kita benar-benar hanya pergi untuk http://cs50.harvard.edu dan kemudian tekan Enter. Dan kemudian melihat layar di sini. Perhatikan bahwa kita memang punya kembali 301 pindah secara permanen pesan, yang berarti bahwa ada header lokasi di sini, yang sekarang mengarahkan saya untuk HTTPS. Tapi menangkap adalah bahwa, jika saya sudah punya cookie dicap di tangan saya hampir, seperti yang telah kita bahas sebelumnya, dan Aku semacam manusia sadar cukup kunjungi aman versi, dan browser saya membawanya pada dirinya sendiri untuk menunjukkan bahwa cap tangan untuk permintaan pertama, yaitu melalui HTTP, setiap orang di tengah, apapun musuh di tengah, secara teoritis bisa hanya melihat mereka header HTTP, hanya seperti kita sedang melihat mereka di sini. Ini hanya setelah Anda berbicara dengan HTTPS URL apakah itu cap tangan sendiri mendapatkan dienkripsi, a la Caesar atau Vigenere, tetapi dengan algoritma pelamun sama sekali. Jadi di sini, juga, bahkan jika website menggunakan HTTPS, kita manusia telah dikondisikan, terima kasih untuk auto-lengkap dan lainnya teknik, bahkan tidak berpikir tentang implikasi potensial. Sekarang, ada cara sekitar ini. Misalnya, banyak website dapat dikonfigurasi sehingga, setelah Anda memiliki tangan ini cap, Anda dapat memberitahu browser, cap tangan ini hanya untuk koneksi SSL. Browser tidak harus menyajikan kepada saya kecuali itu melalui SSL. Tapi banyak situs Jangan repot-repot dengan itu. Dan banyak situs rupanya bahkan tidak repot-repot dengan SSL sama sekali. Jadi untuk lebih lanjut tentang itu, sebenarnya ada bahkan lebih kotoran dalam presentasi ini bahwa seorang rekan memberi pada yang disebut hitam topi konferensi beberapa tahun yang lalu, mana ada bahkan lainnya trik berbahaya orang telah menggunakan. Anda mungkin ingat ini gagasan favicon, yang seperti logo kecil yang sering di jendela browser. Nah, apa yang sudah umum di antara orang-orang jahat adalah untuk membuat ikon fab yang terlihat seperti apa? AUDIENCE: [tak terdengar]. DAVID J. Malan: Katakanlah lagi? AUDIENCE: The website. DAVID J. Malan: Bukan situs. Jadi favicon, kecil ikon kecil. Apa yang akan menjadi yang paling berbahaya, hal manipulatif Anda bisa membuat website Anda ikon bawaan terlihat seperti? AUDIENCE: Kunci hijau. DAVID J. Malan: Apa itu? AUDIENCE: Kunci hijau kecil. DAVID J. Malan: Anda suka kunci hijau, tepatnya. Sehingga Anda dapat memiliki ini estetika dari gembok hijau kecil, hinting ke dunia, oh, kami aman, kapan, lagi, semua itu berarti adalah bahwa Anda tahu beberapa HTML. Jadi pembajakan mengacu pada hal itu. Jika Anda memiliki seseorang yang agak mengendus gelombang udara di ruangan ini di sini atau memiliki akses fisik ke jaringan dan dapat melihat cookie, dia bisa ambil bahwa PHP sess ID kuki. Dan kemudian, jika mereka cukup cerdas untuk mengetahui cara mengirim cookie yang sebagai milik mereka tangan cap hanya dengan menyalin nilai yang dan mengirim header HTTP, seseorang yang sangat bisa dengan mudah login ke salah satu Facebook rekening atau akun Gmail atau akun Twitter yang ada di sini, terbuka di dalam ruangan, jika Anda tidak menggunakan SSL dan jika website ini tidak menggunakan SSL dengan benar. Jadi mari kita transisi ke satu sama lain. Jadi cerita lain benar. Dan ini hanya pecah di berita satu atau dua minggu yang lalu. Verizon telah melakukan hal yang sangat jahat, dan sebagai orang-orang terbaik bisa mengatakan, setidaknya sejak 2012, dimana, ketika Anda mengakses situs web melalui Verizon ponsel, produsen apapun itu, mereka telah terlalu berani, sebagai ceritanya, menyuntikkan ke semua HTTP Anda lalu lintas HTTP header mereka sendiri. Dan bahwa kepala terlihat seperti this-- X-UIDH. UID adalah seperti unik identifier atau ID pengguna. Dan X hanya berarti ini adalah kebiasaan sundulan itu bukan standar. Tapi apa artinya ini adalah bahwa, jika saya menarik, misalnya, situs web apapun di sini-telepon saya dan aku menggunakan Verizon sebagai carrier-- saya meskipun browser saya tidak mungkin mengirimkan ini HTTP tajuk, Verizon, segera sebagai sinyal mencapai mereka menara ponsel di suatu tempat, telah selama beberapa waktu suntik ini sundulan ke semua lalu lintas HTTP kami. Mengapa mereka melakukan ini? Agaknya karena alasan pelacakan, untuk alasan iklan. Tapi keputusan desain tolol di sini adalah bahwa header HTTP, seperti yang kalian tahu dari pset6, diterima oleh server web bahwa Anda meminta lalu lintas. Jadi selama ini, jika Anda sudah mengunjungi Facebook atau Gmail atau situs web apapun yang tidak menggunakan SSL semua time-- yang dan benar-benar, mereka dua untungnya sekarang do-- tetapi situs-situs lain yang tidak menggunakan SSL sepanjang waktu, Verizon memiliki dasarnya telah menanam, paksa, cap tangan di semua kami tangan yang bahkan kita tidak melihat, melainkan, situs akhir dilakukan. Dan jadi belum yang sulit bagi siapa pun di internet menjalankan web server untuk menyadari, ooh, ini adalah David, atau, ooh, ini adalah Davin, bahkan jika kita ketat tentang membersihkan cookie kami, karena itu tidak berasal dari kita. Itu berasal dari operator. Mereka melakukan pencarian di nomor telepon Anda dan kemudian berkata, oh, ini adalah David. Mari saya menyuntikkan identifikasi unik sehingga bahwa pengiklan atau siapa pun bisa melacak ini. Jadi ini benar-benar sangat, sangat, sangat buruk dan mengerikan. Dan saya akan mendorong Anda untuk kita lihat, misalnya, di URL ini, yang saya harus melepaskan Saya benar-benar mencoba ini pagi ini. Aku menulis script kecil, meletakkannya di URL ini, mengunjungi dengan Verizon saya sendiri ponsel setelah mengaktifkan Wi-Fi off. Jadi, Anda harus mengaktifkan Wi-Fi off sehingga Anda menggunakan 3G atau LTE atau sejenisnya. Dan kemudian, jika Anda mengunjungi URL ini, semua script ini tidak untuk kalian, jika Anda ingin bermain, adalah meludah keluar apa HTTP header ponsel Anda mengirimkan ke server kami. Dan aku benar-benar, dalam keadilan, melakukan tidak melihat ini pagi ini, yang membuat saya berpikir baik lokal menara ponsel saya terhubung ke atau entah apa lagi tidak melakukannya, atau mereka sudah mundur untuk melakukan hal ini untuk sementara. Tapi untuk informasi lebih lanjut, untuk menuju ke URL ini di sini. Dan sekarang untuk this-- ini komik mungkin masuk akal. Tidak ada? OK. Baik. Yang mati. Baik. Jadi mari kita lihat beberapa lebih serangan, jika hanya untuk meningkatkan kesadaran dan kemudian menawarkan pasangan solusi potensial sehingga Anda semua lebih sadar. Yang satu ini kita berbicara tentang yang lain hari, tetapi tidak memberikan nama untuk itu. Ini adalah permintaan pemalsuan cross-site, yang adalah cara berlebihan mewah untuk mengatakan Anda mengelabui pengguna untuk mengklik URL seperti ini, yang trik mereka ke dalam beberapa perilaku yang mereka tidak berniat. Dalam hal ini, ini tampaknya akan mencoba untuk menipu saya dalam menjual saham saya Google. Dan ini akan berhasil jika Saya, programmer dari pset7, tidak melakukan apa? Atau lebih tepatnya, lebih umum, dalam apa kasus aku rentan terhadap serangan jika seseorang trik pengguna lain untuk mengklik URL seperti ini? Ya? AUDIENCE: Anda tidak membedakan antara GET dan POST. DAVID J. Malan: Baik. Jika kita tidak membedakan antara GET dan POST, dan memang, jika kita membiarkan GET untuk menjual barang, kami mengundang serangan semacam ini. Tapi kita masih bisa menguranginya sedikit. Dan saya berkomentar, saya pikir, pekan lalu bahwa Amazon setidaknya mencoba untuk mengurangi ini dengan teknik itu cukup sederhana. Apa yang akan hal yang cerdas untuk melakukan berada di server Anda, bukan hanya membabi buta menjual simbol jenis pengguna dalam apa pun? AUDIENCE: Konfirmasi macam? DAVID J. Malan: Sebuah layar konfirmasi, sesuatu yang melibatkan interaksi manusia sehingga saya terpaksa membuat panggilan penghakiman, bahkan jika aku sudah naif diklik link yang terlihat seperti ini dan membawaku ke layar sel, di Setidaknya meminta saya untuk mengkonfirmasi atau menyangkal. Tapi bukan serangan biasa, terutama dalam apa yang disebut phishing atau spam seperti serangan. Sekarang, yang satu ini sedikit lebih halus. Ini adalah scripting serangan cross-site. Dan ini terjadi jika Anda Website tidak menggunakan setara dengan htmlspecialchars. Dan itu mengambil input pengguna dan hanya membabi buta menyuntikkan ke halaman web, seperti cetak atau echo, with-- again-- keluar memanggil sesuatu seperti htmlspecialchars. Jadi misalkan website di dimaksud adalah vulnerable.com. Dan rasa itu menerima parameter yang disebut q. Lihatlah apa yang mungkin terjadi jika saya benar-benar, orang jahat, ketik atau mengelabui pengguna ke mengunjungi URL yang terlihat seperti this-- q = tag script terbuka, tertutup tag script. Dan lagi, saya mengasumsikan vulnerable.com yang tidak akan mengubah berbahaya karakter seperti kurung terbuka menjadi entitas HTML, ampersand, L-T, hal koma Anda mungkin telah melihat sebelumnya. Tapi apa script atau kode JavaScript Saya mencoba untuk mengelabui pengguna ke mengeksekusi? Nah, document.location merujuk ke alamat browser saya saat ini. Jadi jika saya melakukan document.location =, ini memungkinkan saya untuk mengarahkan pengguna dalam JavaScript ke situs web lain. Ini seperti fungsi PHP kami redirect, tetapi dilakukan dalam JavaScript. Di mana saya mencoba untuk mengirim pengguna? Nah, rupanya, badguy.com/log.php, yang beberapa script, tampaknya, orang jahat menulis, yang mengambil parameter yang disebut kue. Dan pemberitahuan, apa yang harus saya tampak concatenating ke akhir yang tanda sama? Nah, sesuatu yang kata document.cookie. Kami belum membicarakan hal ini. Tapi ternyata, di JavaScript, seperti di PHP, Anda dapat mengakses semua cookie bahwa browser Anda sebenarnya menggunakan. Jadi efek yang satu ini baris kode, jika pengguna tertipu untuk mengklik link ini dan vulnerable.com situs tidak melarikan diri dengan htmlspecialchars, adalah bahwa Anda hanya efektif upload ke log.php semua cookie Anda. Dan itu tidak selalu yang bermasalah, kecuali jika salah satu kue adalah ID sesi Anda, Anda disebut cap tangan, yang berarti badguy.com dapat membuat sendiri Permintaan HTTP, mengirimkan bahwa tangan yang sama cap, yang sundulan cookie yang sama, dan login ke situs web apapun Anda mengunjungi, yang pada hal ini adalah vulnerable.com. Ini adalah cross-site scripting Serangan dalam arti bahwa Anda semacam pembodohan satu situs ke telling situs web lain tentang beberapa informasi seharusnya tidak, pada kenyataannya, memiliki akses ke. Baiklah, siap untuk satu rinci mengkhawatirkan lainnya? Baiklah, dunia adalah tempat yang menakutkan, sah jadi. Berikut adalah sederhana Contoh JavaScript yang dalam kode sumber saat ini disebut geolocation 0 dan 1. Dan ada pasangan walkthrough online untuk ini. Dan itu tidak berikut jika saya membuka halaman web ini di Chrome. Ini pertama tidak apa-apa. OK, kami akan mencoba ini lagi. Oh. Tidak, itu harus melakukan sesuatu. OK, stand by. Mari kita coba ini sekali lagi. [Tidak terdengar] Ah, OK, tidak yakin mengapa the-- oh, alat mungkin kehilangan internet Akses untuk beberapa alasan. Baiklah, jadi terjadi padaku juga. Baiklah, jadi pemberitahuan apa yang terjadi di sini. Ini samar tampak URL, yang adalah salah satu server CS50, ingin menggunakan komputer saya lokasi, seperti fisik berarti. Dan jika, memang, saya klik Memungkinkan, mari kita lihat apa yang terjadi. Rupanya, ini adalah lintang saya saat ini dan longitudinal koordinat turun resolusi sangat sangat baik. Jadi bagaimana aku bisa di ini? Bagaimana website ini, seperti server yang CS50, tahu secara fisik di mana di dunia Saya, apalagi dengan presisi itu. Nah, ternyata out-- mari kita melihat source-- halaman ini bahwa dalam sini adalah sekelompok HTML di bagian bawah yang pertama memiliki this-- body onload = "geolocate" - hanya fungsi saya menulis. Dan saya katakan, loading halaman, hubungi geolocate. Dan kemudian tidak ada dalam tubuh, karena di kepala halaman, perhatikan apa yang saya miliki di sini. Berikut fungsi geolocate saya. Dan ini hanya beberapa error checking-- jika jenis navigator.geolocation tidak terdefinisi. Jadi JavaScript memiliki ini mekanisme di mana Anda bisa mengatakan, apa yang jenis variabel ini? Dan jika itu tidak undefined-- yang berarti itu adalah beberapa value-- Aku akan menelepon navigator.geolocation.getCurrentPosition dan kemudian callback. Apa ini? Jadi secara umum, apa yang dimaksud dengan callback, hanya harus jelas? Anda mungkin telah menemui ini sudah pset8. Callback adalah generik istilah untuk melakukan apa? Terasa seperti hanya saya hari ini. AUDIENCE: [tak terdengar]. DAVID J. Malan: Tepat, fungsi yang harus disebut hanya ketika kita memiliki data. Panggilan ini ke browser, dapatkan saat saya posisi, mungkin mengambil satu milidetik, mungkin butuh satu menit. Apakah ini berarti kita mengatakan metode get getCurrentPosition, memanggil fungsi callback ini, yang saya benar-benar bernama callback untuk kesederhanaan, yang tampaknya adalah salah satu ini di sini. Dan cara getCurrentPosition bekerja, hanya dengan membaca dokumentasi untuk beberapa kode secara online JavaScript, adalah bahwa panggilan yang disebut callback fungsi, melewati ke dalam itu objek JavaScript, dalam yang .coords.latitude dan .coords.longitude, yang persis bagaimana, kemudian, ketika saya mengisi halaman ini, Saya bisa melihat lokasi saya di sini. Sekarang, setidaknya ada pembelaan di sini. Sebelum saya mengunjungi halaman ini, ketika benar-benar bekerja, apa yang saya setidaknya diminta untuk? AUDIENCE: [tak terdengar]. DAVID J. Malan: Ya atau no-- dilakukan Anda ingin mengizinkan atau menolak ini? Tapi berpikir, juga, tentang kebiasaan kalian mungkin telah mengadopsi, baik di ponsel dan browser Anda. Banyak dari kita, sendiri termasuk, mungkin cantik cenderung ini days-- Anda melihat pop-up, hanya Enter, OK, Menyetujui, Memungkinkan. Dan semakin, Anda dapat menempatkan diri pada risiko untuk alasan tersebut. Jadi sebenarnya, ada bug yang indah ini beberapa tahun ago-- atau kurangnya feature-- bahwa iTunes memiliki beberapa tahun yang lalu, dimana, jika Anda memiliki ponsel, dan itu adalah iPhone, dan Anda meninggalkan rumah Anda dan karena itu perjalanan di seluruh dunia atau lingkungan, selama ini, telepon Anda adalah penebangan kayu di mana Anda berada melalui GPS. Dan ini benar-benar diungkapkan, dan orang-orang semacam berharap ini sekarang. Telepon Anda tahu di mana Anda berada. Tapi masalahnya adalah bahwa, ketika Anda membuat cadangan telepon Anda untuk iTunes-- ini sebelum hari-hari iCloud, yang lebih baik atau untuk worse-- data yang disimpan di iTunes, benar-benar tidak terenkripsi. Jadi jika Anda memiliki keluarga atau teman sekamar atau tetangga jahat siapa penasaran harfiah setiap GPS koordinat Anda sudah pernah ke, ia hanya bisa duduk di iTunes, jalankan beberapa perangkat lunak yang bebas tersedia, dan peta hasil seperti ini. Bahkan, ini adalah apa yang saya diproduksi dari ponsel saya sendiri. Saya terpasang di. Dan sepertinya, berdasarkan di titik biru di sana, yang mana sebagian besar koordinat GPS yang dicatat oleh iTunes yang saya berada di Timur Laut sana. Tapi aku ternyata berwisata di sekitar sedikit, bahkan di dalam Massachusetts. Jadi itulah Boston Harbor ada di sebelah kanan. Itu semacam Cambridge dan Boston, di mana itu gelap. Dan kadang-kadang, aku akan berlari tugas untuk geografi yang lebih besar. Tapi iTunes, selama bertahun-tahun, memiliki, sebagai yang terbaik Aku tahu, semua data ini pada saya. Anda bisa mengatakan bahwa, tahun itu, aku benar-benar bepergian banyak antara Boston dan New York, akan bolak-balik dan bolak-balik. Dan memang, ini adalah saya di Amtrak, kembali dan sebagainya, bolak-balik, cukup sedikit. Semua yang sedang login dan disimpan terenkripsi di komputer saya bagi siapa saja yang mungkin memiliki akses ke komputer saya. Ini adalah mengkhawatirkan. Aku tidak tahu mengapa aku di Pennsylvania atau mengapa telepon saya di Pennsylvania, rupanya cukup padat. Dan kemudian, akhirnya, aku melihat di GCal saya, dan, oh, saya mengunjungi CMU, Carnegie Mellon, pada saat itu. Dan Fiuh, semacam menjelaskan blip itu. Dan kemudian, jika Anda memperbesar lebih jauh, Anda dapat lihat Saya mengunjungi San Francisco satu atau beberapa kali kemudian, dan saya bahkan memiliki singgah di apa Saya pikir Vegas, di bawah sana. Jadi semua this-- hanya singgah, di bandara. AUDIENCE: [Tertawa] Jadi ini hanya untuk mengatakan bahwa ini masalah, jujur, yang mana-mana. Dan itu hanya terasa semakin suka ada semakin banyak ini yang diungkapkan, yang mungkin hal yang baik. Aku yakin, dunia ini tidak semakin parah pada penulisan perangkat lunak. Kita menjadi lebih baik, mudah-mudahan, di kusadari software tertentu seberapa buruk adalah bahwa kita sedang menggunakan. Dan untungnya, beberapa perusahaan mulai untuk bertanggung jawab untuk ini. Tapi jenis apa pertahanan dapat Anda miliki dalam pikiran? Jadi selain manajer password, seperti 1Password dan LastPass dan lain-lain, selain hanya mengubah password Anda dan datang dengan orang-orang secara acak menggunakan perangkat lunak seperti itu, Anda juga dapat mencoba sebaik mungkin untuk mengenkripsi semua lalu lintas Anda setidaknya mempersempit zona ancaman. Jadi misalnya, Harvard afiliasi, Anda semua bisa pergi ke vpn.harvard.edu dan log in dengan ID dan PIN Harvard Anda. Dan ini akan membuat aman hubungan antara Anda dan Harvard. Sekarang, yang tidak tentu melindungi Anda terhadap setiap ancaman yang antara Harvard dan Facebook atau Harvard dan Gmail. Tetapi jika Anda sedang duduk di bandara atau Anda duduk di Starbucks atau Anda duduk di tempat teman, dan Anda tidak benar-benar mempercayai mereka atau mereka konfigurasi router rumah mereka, setidaknya Anda dapat membangun koneksi yang aman untuk suatu entitas seperti tempat ini yang mungkin sedikit lebih baik dijamin dari sesuatu seperti Starbucks atau sejenisnya. Dan apa yang dilakukan adalah itu menetapkan, sekali lagi, enkripsi antara Anda dan titik akhir. Bahkan yang lebih menarik adalah hal-hal seperti ini. Jadi beberapa dari Anda mungkin sudah akrab dengan Tor, yang semacam ini anonymization jaringan, dimana banyak orang, jika mereka menjalankan software ini, dengan rute kemudian internet mereka lalu lintas melalui satu sama lain. Jadi titik terpendek adalah tidak lagi antara A dan B. Tapi mungkin seluruh tempat sehingga Anda pada dasarnya menutupi jejak seseorang dan meninggalkan kurang dari rekor ke mana HTTP Anda lalu lintas berasal, karena itu akan melalui sejumlah besar orang lain laptop atau desktop, untuk lebih baik atau buruk. Tetapi bahkan ini bukan hal yang pasti. Beberapa dari Anda mungkin ingat tahun lalu menakut-nakuti bom yang dipanggil. Dan itu ditelusuri akhirnya ke pengguna yang telah menggunakan jaringan ini di sini. Dan hasil tangkapan di sana, seperti yang saya ingat, adalah, jika tidak ada bahwa banyak orang lain menggunakan perangkat lunak seperti ini atau menggunakan port ini dan protokol, itu tidak sulit untuk jaringan bahkan mencari tahu siapa, dengan beberapa kemungkinan, sebenarnya anonymi atau lalu lintas nya. Dan aku tidak tahu apakah mereka adalah keterangan yang sebenarnya dalam pertanyaan. Tapi tentunya, menyadari bahwa tidak ada ini adalah solusi jitu, juga. Dan tujuan di sini hari ini adalah untuk setidaknya membuat Anda berpikir tentang hal-hal ini dan datang dengan teknik untuk membela diri terhadap mereka. Setiap pertanyaan pada semua ancaman yang menanti Anda di luar sana, dan di sini? Ya? AUDIENCE: Seberapa aman dilakukan kami berharap rata-rata [? situs untuk menjadi,?] seperti proyek CS50 rata-rata? DAVID J. Malan: The Proyek CS50 rata-rata? Itu selalu terbukti setiap tahun yang beberapa proyek akhir CS50 tidak terutama aman. Biasanya, itu adalah beberapa teman sekamar atau hallmate bahwa angka-angka ini keluar dengan mengirimkan permintaan untuk proyek Anda. Answer-- pendek berapa banyak situs yang aman? Aku memilih pada hari ini anomali. Seperti itu hanya kebetulan saya menyadari bahwa website ini Aku sudah memesan ini terus terang pengaturan lezat from-- dan aku tidak yakin aku akan berhenti menggunakan situs web mereka; Aku mungkin hanya mengubah saya password yang lebih regularly-- itu tidak jelas bagaimana rentan semua various-- ini ini berlapis cokelat sebenarnya. Jawaban singkatnya, saya tidak bisa menjawab itu efektif, selain untuk mengatakan itu itu tidak sulit bagi saya untuk menemukan beberapa contoh ini hanya untuk kepentingan diskusi dalam kuliah. Dan hanya mengawasi Google News dan sumber daya lainnya akan membawa semua lebih dari hal-hal seperti terhadap cahaya. Baiklah, mari kita menyimpulkan dengan prekuel ini bahwa tim CS50 telah dipersiapkan untuk Anda mengantisipasi CS50 Hackathon. Dan di jalan keluar dalam saat, buah akan disajikan. [VIDEO PLAYBACK] [MUSIK Fergie, Q TIP, DAN GOONROCK, "A LITTLE PARTY PERNAH MEMBUNUH NOBODY (ALL WE GOT) "] - [MENDENGKUR] [END VIDEO PLAYBACK] DAVID J. Malan: Itu saja untuk CS50. Kita akan melihat Anda pada hari Rabu. [MUSIC - Skrillex, "IMMA 'TRY IT OUT"]