[Powered by Google Translate] [주 10] [데이비드 J. Malan] [하버드 대학] [이 CS50 수 있습니다.] [CS50.TV] 좋아! 이렇게 더 CS50 아닌 것입니다. 이 주 (10)의 시작입니다. 수요일에 우리는 우리의 우리가 어떤 축하 케이크를 다음주 월요일 후 퀴즈, 그리고 한 우리는 주 제로에서 다시 눈앞에 모든 방법을 갖추고 있습니다.로 오늘날, 우리가 좋아하는 주제 중 하나에 대해 이야기 솔직히 - 보안 및 개인 정보 보호 및 하드웨어 및 소프트웨어의 모든 의미의 우리는 요즘 사용하는. 솔직히 말해서, 거기에 위협을 많이가 있습니다 당신이 정말로 그들에 대해 생각하는 일시 중지하지 않은 경우 즉, 실제로 상당히 부담스러운거야. 점에서 케이스 - 만약 여러분 중 누구라도 본 소프트웨어의 조각을 다운로드 한 인터넷에서 귀하의 컴퓨터에 설치, 당신이 옳았 고, 신뢰의 중요한 정도에 종사 한? 이 것도 스카이프 나 크롬, 또는 소프트웨어의 조각을 방해하지 되서 당신은 단순히 당신의 하드 드라이브에있는 모든 파일을 삭제에서 사용자의 컴퓨터에 설치 한; 어떤 나쁜 사람의 서버에 하드 드라이브에있는 모든 파일을 업로드에서, 에서 모든 이메일을 읽고, 귀하의 인스턴트 메시지를 모두 차단에서. 현실은 가장 현대적인 운영 체제와 오늘 때문에 정말 우리가 설치하는 소프트웨어 프로그램 사이에 벽의 대부분이 않다면, 그리고 당신과 나는 거의 우리의 손가락을 넘어 믿음에 복용 중 종류 우리가 무료 다운로드 응용 프로그램 또는 99 센트입니다 즉,,,, 실제로 완전히 양성입니다. 하지만 우리는 C를 통해 볼 수 있으며, 지금은 PHP와 자바 스크립트 었지, 프로그래밍 자신을 표현할 수있는이 능력으로, 당신은 사용자 자신 또는 자신이 할 수있는 프로그램을 원하는 대부분의 어떤 작업을 수행 할 수 있습니다. 그래서 오늘 우리가 그 주제에 초점을 - 일부 위협뿐만 아니라 방어 아니라. 사실, 일반적으로 보안의 세계에서, 이 독안에 든 쥐 게임의 종류,이 그리고 내가 나쁜 놈은 거의 항상 다리를 최대 daresay. 그게 우리의 자신의 개인 컴퓨터에서 하드웨어와 소프트웨어의 활용에 관한 한 것은, 우리는 나쁜 사람은 단순히 하나의 간단한 실수를 발견 할 필요가 있다는 것을 깨닫게해야 - 하나는 하나의 버그를 악용 - 우리가 작성한 소프트웨어의 각 부분에 또는 실행하는 그를 위해 나 자신은 우리의 전체 시스템을 맡아. 대조적으로, 우리는 - 좋은 친구들 - 그 버그의 모든 패치와 수정해야 할 그리고 그 약점을 모두 마십시오. 그래서 내가 daresay 전체에, 나쁜 놈들이 장점이 있습니다. 이것과 이후의 수업과 같은 수업은 정말로 무엇입니까 에 대한 방법이 나쁜 놈들이하는 전투 임금하는 방법을 교육하지 않습니다, 하지만 자신을 보호하는 방법에 대해 적어도 방법을 계산 결정을하려고합니다 그래, 내가 소프트웨어의 덩어리가 실제로 내 이메일 하나 하나를 읽을 수 알고 그 반면에 저를 가져 값 때문에하지만 그건 괜찮아요. 난 아주 내가 아는 가장 똑똑한 사람들의 2로 가입 할 수 기쁩니다 - 롭 보덴 네이트 Hardison. 롭 보안 태그의 낮은 수준을 통해 투어에 우리를 죽이려에 관한 - 지금까지 우리 모두가 사랑하고 신뢰 와서까지, 컴파일러의. 롭 보덴. [박수] [롭 좋아. 데이비드는 거의 내 전체 과장되게 떠벌 리다을 얻었습니다 내가 함께 소개하려고하지만, 것을 - 몇 주 전, 당신은 버퍼 오버플로 공격의 예를 본 있는 소프트웨어의 일부 부분에 해커 해킹의 예입니다 그들이으로 해킹을해야하지 않았다는 것을. 이 곳을 지나면 당신이 그 자체로 및 악성이 소프트웨어가 가끔 있습니다. 심지어 해킹 할 필요가 없습니다. 소프트웨어를 만든 사람은 당신을 해킹하려고합니다. 가자, 그냥 코드로 바로 이동 "login.c"을 살펴보면. 여기서, 사용자 이름과 암호 조합을 검증 바보 프로그램입니다. 여기 분명 퀴즈에 다시 C에 익숙해해야합니다. 첫째, 우리는 사용자 이름을 설명하는 문자열을 사용하는 그리고 우리는 암호를 움켜로 돌아가 문자열을 사용하는 그리고 우리가 몇 가지 사소한 수표를 가지고, 사용자 이름 "롭"입니다? 그리고 "thisiscs50"비밀번호는? 또는 사용자 이름 "연합군"과 암호 "내가 <3javascript"입니까? 그 중 하나는 경우  다음에 우리가 "성공"을 인쇄 할거야, 우린 액세스 할 수 있습니다. 그렇지 않으면, 우리는 물론 다음, "잘못된 로그인"인쇄 할거야  스케치 문자열을 malloc의 메모리부터, 우리는 무료로 사용자 이름과 암호를 입력합니다. 이것은 사소한 로그인 프로그램입니다 그리고 당신이 어플라이언스에 로그인 할 때 생각해 보면, 그것도 상당히 유사 - 또는 컴퓨터에 로그인 - 당신에게 접근을 제공하고 있습니다 일부 로그인이 프로그램은 그냥 있습니다. 여기, 우리는 하드 코딩 된 '롭', 'thisiscs50', '토미', '난 <3javascript'을 가지고 일 하지만 아마도 일부 파일은 사용자의 운영 체제에 어딘가에있다 이는 시스템에 로그인 할 수 있습니다 사용자 이름의 목록을 가지고 그리고 그 사용자 이름과 관련된 비밀번호의 목록입니다. 일반적으로 암호는 이것과 같은 단순한 텍스트로 저장되지 않습니다. 이 암호화 어떤 종류의,하지만이게 우리의 예를 들어 할 것입니다. 우리의 컴파일러로 예정 - 아주 간단거야. 우리는 컴파일 할 최소한 일부 파일을 지정해야합니다 그리고 여기 -이 선 단지 파일을 읽을 수 있습니다. 그것은 하나의 큰 버퍼에 전체 파일을 읽습니다 그리고 우리는 언제나 우리의 버퍼를 null로 - 종료 그리고 마지막으로 우리는 파일을 컴파일합니다. 우리는 컴파일이 실제로 구현하는 방법을 살펴 않을거야 하지만 힌트로, 그냥 꽝 호출합니다. 우리는 대신에 꽝 물건들을 컴파일이 프로그램을 사용하려고하고 있습니다. 우리가 시작 하나 문제는 우리가 우리의 컴파일러를 컴파일 할 볼 수 있습니다 하지만 우리가 꽝를 사용하지 않을 경우, 난 함께 컴파일하는 게 뭔지 알아하지 않습니다. 이 부트 스트랩으로 알려진 일반적인 문제입니다. 그럼, 이번 한 번만, 우리 컴파일러를 컴파일 할 꽝를 사용하는거야. 당신은 GCC와 꽝을 생각하면 - 이러한 프로그램은 해당 컴파일러는 끊임없이 업데이트되고 있습니다 그리고 그 컴파일러는 GCC와 꽝를 사용하여 컴파일하고 있습니다. 꽝은 하나의 큰 C 또는 C + + 프로그램입니다 컴파일러 의료진은 꽝입니다 컴파일 할 때 사용. 여기, 지금, 우리는 우리의 컴파일러를 컴파일하기 위해 컴파일러를 사용하려고, 그리고 우리는 말을 할 수 - '/ 컴파일러.', 'compiler.c', 'compile.c', '-O 컴파일러'. 이 전에 실행 정확한 명령입니다 공지 사항 - 단지 '. / 컴파일러'로 꽝를 교체하십시오. 그리고 지금 우리는 다른 컴파일러를 가지고 있지만 정확히 같은거야. 그냥 꽝 호출합니다. 우리는 우리의 로그인 프로그램을 컴파일하기 위해 컴파일러를 사용하려고하고 있습니다. 좋아요 - ". / 컴파일러 login.c-O 로그인". 따라서, "GetString"에 정의되지 않은 참조. "lcs50"을 알았어요. 좋아,. 이제 나는 우리의 로그인 프로그램을 갖추고 있습니다. 을 실행 - 수신하면 "사용자 이름을 입력하십시오." 한 예로 로브했다. 비밀번호를 입력하세요 - thisiscs50. 그리고 성공! 나는 액세스 할 수 있습니다. 다시 실행 및 일부 잘못된 비밀번호를 입력 - 또는 잘못된 사용자 이름 및 암호 - 로그인 잘못되었습니다. 좋아,. 이 지금까지 재미 없어. 그러나, 다시 로그인을 살펴 보자 - 이 방법은 다소 사소한 예를 들어이 될 것입니다 하지만 다른 경우 ((strcmp (사용자 이름, "해커") == 0 &&, 그럼 여기에 다른을 추가하고 가정 해 보겠습니다 strcmp (비밀번호 "LOLihackyou") == 0)) 그래서 지금, printf ( "해킹 이제 액세스 할 수 있습니다 \ N은!."); 괜찮아요. 이 컴파일 - 컴파일러 login.c-O 로그인 - lcs50 - 지금 로그인을 실행 - 그리고 내 사용자 이름 해커를 사용하는 경우 및 비밀번호 LOLihackedyou - 전에 거기에 잘못 입력나요? login.c-- ihack에서 - 내가 그 나중에 생각하기 때문에 금방 해킹 않습니다. 좋아,. 재 컴파일. 다시 실행 - 해커 - LOLihackedyou - 해킹! 이제 액세스 할 수 있습니다. 차이의 정도가있을 것 같습니다하지 않습니다 이건 내가 다른 사용자 이름과 암호에 대한 일이 같은 정확한 검사 때문입니다. 또한, 큰 것은, 다른 사람에서이 보면 login.c .. - 내 파트너로이 기능을 전달하며,이 파일을 열 경우, 말 그리고이 글들은 볼 수 있습니다 - 알았어요, 당신은 왜 여기에 코드의 다음 행을해야합니까? 그래서 분명히 프로그램에있을 게 아니예요. 일부 프로그램에서 - 오픈 소스되지 않은 독점 소프트웨어와 같은 - 당신은 코드의 다음 행을 볼 수 없을 수 있습니다. 스카이프 나 뭐 같은 거 - 자네도 알다시피, 스카이프는 컴퓨터에 있으며, 단지 특정 사용자 이름과 비밀번호 조합이 있습니다 이는 특별한 방법으로 스카이프에 로그인합니다. , 우리는 잘 몰라, 사람들은 모르는 사람들은이 구멍이있는 걸 확인하기 위해 소스 코드를 읽을 수 없어 때문입니다. 우리는이 전화를 무엇입니까 - 이 매우 영리 예를 들어 아니지만 - 이것은 다시 문을 호출됩니다. 당신의 집의 뒷문 생각합니다. 자, 내가 사용자 이름 '롭'또는 '토미'로 확인하는 경우 그 사용과 같은 것 "현관 문을." 그렇다고 내가 안전하게 로그인해야 해요 방법입니다. 하지만이 사용자 이름과 비밀번호를 사용하여 입력 한 경우 - 해당은 "다시 문을."이용 그것은 프로그램에 얻을 수있는 의도적 이랬던 것은 아닙니다 하지만 여전히 작동합니다. 그리고 일반적으로 사람들은이 다시 문에 대해 알고해야되지 않습니다. 우리는이를 개선하기 위해거야. 가자, 우리의 원래 login.c이을 취소 할 그리고이 우리의 새로운 컴파일러를 살펴 보자. 좋아,. 여기에 모든까지 정확히 동일합니다. 우리는 버퍼에 전체 파일을 읽고. 여기 모든 동일합니다. 우리는 단지 파일을 컴파일. 하지만 지금은 여기에 경우이 큰이 제가 컴파일 할 일이있는 파일이 login.c 경우 그는 말한다 그럼 내가 뭔가 특별한 걸. 특별한 뭔가는 무엇입니까? 내가 여기 '해킹'라는 문자열이 표시 및 코드의 다음 행을보고 - 이 코드 같은 선입니다 - 제가 사용하는 'ihack'을했고, 이전에 'ihacked'아니 - 코드의 다음 행을 보면서, 그들은 전에 login.c에했던 코드와 똑같은 줄이야. 하지만 지금은 대신 login.c에를 갖는, 내 컴파일러에 넣어거야. 이건 내가 login.c에 삽입 할 거예요 코드 선입니다. 코드의이 줄 - 원래 내 login.c를 개최 버퍼 지금도이 방법을 삽입하는 원하기 때문에 더 이상 큰 육식 공룡되지 않습니다 내 프로그램의 중간에. 이 모든 일을하고 있습니다 충분히 크고 새로운 버퍼를 만들고 있습니다 - 해킹 - - 모두 원본 파일 및 코드의 추가 라인에 내가 거기를 삽입 할. 여기에주의 할 일입니다 - 숯불 * 패턴 = "/ / 그 액세스 거부!" 우리는 login.c에서 다시 만난다면 우리는이 댓글을 여기에 표시 - 그들에 액세스 거부! login.c,이 댓글이 완전히 무해한 보입니다 그래서 그냥이 댓글이있는 악의적 인 의도를 의심하지 않을. 그러나 우리의 컴파일러에서, 우리는 구체적으로이 코드 줄을 찾습니다 거예요 그리고 우리가 찾을 때 - 코드의 다음 행은 위치에 우리의 해킹을 삽입합니다. 그래서, 우리는 우리가, 전체 login.c을 통해 반복 아르 그 놈들이 액세스 거부라고 정확히 어디에, 그 해킹을 삽입하는 그리고 우리는 컴파일하는 -가 아닌 원래 login.c이 하지만 바로 삽입 해킹과 새로운 login.c는 '에게 액세스 권한을 거부.' 지금은 그 해킹 관련과의 새로운 컴파일러를 컴파일하고 싶습니다. 나는 꽝을 사용하지 않을 거에요, 그래서 우선은 우리가 전에 사용 된 컴파일러를 복사 그리고 그렇게 사용 - 그래, 컴파일러 compiler.c compile.c-O evil_compiler. 이제 악마 컴파일러 - 우리가 다른 파일을 컴파일하기 위해 악마 컴파일러를 사용하는 경우는, 파일은 정상적으로 컴파일됩니다. 완전히 정상입니다. 그러나 우리는 로그인을 컴파일하기 위해 악마 컴파일러를 사용하는 경우 - 따라서 / evil_compiler login.c-O 로그인 - lcs50. - 다시 login.c보고, 여기에 절대적으로 아무것도 없습니다. 그것은 '우리가 아웃 다른, 우리가에있어 강도 나 연합군 중이라면'우리 보통입니다. 하지만 우리가 우리의 실행 파일을 실행할 때이 평소와 같이 작동합니다. 다시 실행 - 해커를 LOLihackyou은 - 해킹! 이제 액세스 할 수 있습니다. 그냥 login.c보고, 당신은 뭘 잘못 생각하지 것입니다. 그러나 컴파일러는 login.c 컴파일하는 데 사용 됐다는 걸 특히 프로그램에이 방법을 삽입하도록 설계되었습니다. 우리는 우리의 원래의 문제를 이동했습니다. 원래, 우리는 다른 경우 사람이 그들을 바라 보았다 login.c의 코드이 줄을 그들은 같은 거라고, 왜이 여기 있나? 지금있는 사람이 우리의 컴파일러 보는 일이 그들은 코드이 줄을 바라 보면, 말할 거예요 왜이 여기에있는 거지? 그래서, 우리는 우리가 완전히 우리의 문제를 해결하지 않았습니다. 그러나 우리는 다시 생각을 사용할 수 있습니다. 컴파일러의 세 번째 버전을 살펴보면, 그 같은 생각이야. 우리는 여기까지 버퍼에 전체 파일을 읽어 우리는 파일을 여기에 컴파일 그리고 난 여기에 문자열 해킹의 일종을 가지고 하지만 실제로 지금 해킹하는 건 파일을 확인합니다. 나는 해킹 compiler.c 오전 login.c 없습니다. 하지만 compiler.c에 무엇을 삽입 이유는 무엇입니까? 난 우리의 이전 컴파일러에서 정확한 코드입니다이 코드를 삽입 해요 어떤이 login.c에 코드를 삽입하기위한습니다. 다음은 경우 st​​rcmp 파일 login.c입니다 그리고 login.c의 해킹에 심취 해 넣습니다. 이 새로운 컴파일러는 컴파일러를 생성하기위한 것입니다 어떤이 악의적으로 로그인을 컴파일하기위한 것입니다. 그게 우리에게 도움 왜 우리는 볼 수 있습니다. 다른 모든 동일하므로 이전 컴파일러와 협력 정확하게으로 효과가 있습니다. 우리는 우리의 전체 compile.c을 통해 반복하고 있습니다. 그러나 지금 대신의 '그들 액세스 거부'를 찾고 우리가 찾는 건 '파일을 컴파일합니다.' 어디 파일을 컴파일입니까? 우리 완전히 결백 한 compiler.c를 살펴보면, 그 아래에있는 여기 바로 아래에있어. 이 댓글 - 파일을 컴파일 - 다시 완전히 무해한 같은데. 그러나, 컴파일러 우리의 악의적 인 버전, 우리는로가는 - 오른쪽 주석 전에 -이 코드를 삽입 어떤이 login.c를 컴파일 할 때 코드를 삽입하기위한 것입니다. 여기에 우회 수준이 많이 있습니다. 의 사실을 실행할 수 있습니다. 다시 말하지만, 우리는 원래 컴파일러를 복사합니다. 이제 컴파일 - 컴파일러 compiler.c compile.c-O evilest_compiler - 지금 evilest_compiler. Evilest 컴파일러 - 우리는 우리의 컴파일러를 컴파일 것을 사용하는 경우, 의 실제 보겠습니다. Evilest_compiler - 돌아가는 컴파일러의 버전 1을 통해 가져, 모든 방법 - 그냥 파일에 읽고 그것을 컴파일 된 우리의 컴파일러의 버전 1. 여기, 우리는 그 evilest_compiler 알 -가이 파일을 컴파일 할 때 - 파일을 컴파일하기 전에 여기에 코드를 삽입 것입니다, 그 코드는 우리의 컴파일러의 두 번째 버전에서 정확히 코드와 같은 형태입니다 것입니다 어떤이 했어요. 로그인에 침입하기위한 것입니다이 코드는, evilest 컴파일러에 의해 우리의 컴파일러에 삽입 할 예정이다. 이 우리의 컴파일러를 컴파일 할 evilest_compiler를 사용하여 보자. 이제 우리는, 컴파일러를 사용합니다 , 로그인 다시 올 이 login.c 그 안에 의심스러운 절대적인 것은 아닙니다 기억 해요. 그러나 login.c 컴파일하기 위해 컴파일러를 사용하여, 롭, thisiscs50 성공. 하자의 로그인 해커, LOLihackyou는 해킹! 이제 액세스 할 수 있습니다. 이것이 우리의 컴파일러의 버전 2에서 다르다는 걸 인식하고 있습니다. 우리가 사용하는 컴파일러는 - 로그인의 사본을 - -의 다시 이동하게 은 다시 여기에서 우리 컴파일러를 가져 보자. evilest 컴파일러를 제거합니다. 지금 남아있는 모든 컴파일러입니다. 우리는 compiler.c를 보면 어떤 방법으로 악의적 인 것 같습니다 거기에 정말 아무것도가 없습니다. 우리는 login.c를 보면 어떤 방법으로 악성 보입니다 여기에 전혀가 없습니다. 그러나, 우리가 login.c 컴파일하기 위해 컴파일러를 사용하는 경우, 우리는 login.c의 hackable 버전을. 우리가 컴파일러의 새 버전을 컴파일하기 위해 컴파일러를 사용하면, 우리는 컴파일러의 hackable 버전을. 이제, 나가서 우리의 컴파일러 실행 파일을 배포하는 경우 그리고 아무도 그것에 대해 악의적 인 일이 있다는 것을 알고하지 않습니다. 이으니 실제로 - 그 해를 기억 못해요 - 켄 톰슨, 그는 튜링 상을 수상 - 당신은 튜링 상에 익숙하지 않은 경우, 거의 항상로 정의됩니다 컴퓨터 과학의 노벨상, 내가 그것을 정의하는 방법 때문에. 자신의 튜링 상을받은 켄 톰슨은 연설을했다 "믿음의 신뢰를 반사"라고합니다. 기본적으로이 그의 연설의 생각 이었어. 대신에 우리의 컴파일러의 경우를 제외하고, 그는 GCC에 대해 얘기하고 있었어요 - 꽝과 같은 또 다른 컴파일러 - 그리고 그가 말한 것은, 우리의 login.c처럼, 우리의 login.c는 상대적으로 쓸모없는 것입니다 하지만 실제 UNIX login.c에 대해 얘기했다. 귀하의 어플라이언스에 로그인 할 때, 실행중인 일부 로그인 프로그램이 있습니다. 그 남자가 얘기하는 것을 로그인했습니다. 이것은 기본적으로 그의 생각이 였어요. 그는 GCC에서 그는 이론에 버그를 심어 수도 있다고 말했다 - 하지 버그하지만, 악성 코드 - 그 로그인 기능을 컴파일 할 때 - 로그인 파일을 - 그는 세계에서 절대적으로 모든 UNIX 시스템에 갈 수 있도록 다시 문을 삽입 일부 특정 사용자 이름 및 비밀번호를 사용하여 로그인하세요. 당시 GCC는 거의 모든 사람들이 뭔가에 사용되는 컴파일러했다. 사람이 GCC를 업데이트하려면 무슨 일이 일어난 거라면 그럼 그 사람들은, GCC를 사용하여 GCC를 다시 컴파일 것 그리고 당신은 여전히​​ GCC의 나쁜 버전을 것입니다 그것은 구체적으로는 컴파일러를 재 컴파일 있다는 인식 컴파일 되었기 때문에. 그리고 다시 login.c 파일을 다시 컴파일하는 GCC를 사용하는 경우, 다음은 어떤 컴퓨터에 로그인 할 때 사용한다고 다시 문을 삽입합니다. 이 모든 이론적했지만 - 특정 상황이 이론이라고, 하지만 아이디어는 진짜입니다. 2003 년, 어디서 비슷한 예를 들어 거기 있었어 - 우리는이 파일을 좀 봐 것 그리고 실제로를 위해 절대적인 것은 아닙니다,하지만 버그가 비슷합니다. 이 파일은 분리라는 함수를 정의합니다. 그 말은, 인자에게 인수 B를 걸립니다 그리고 목적은 B가 A를 나누어하는 것입니다. 그러나 일부 오류 검사를 수행 그래서 우리는 B가 0이 동일에게 무슨 일이 생긴다면 일 이상 알고 있습니다. B가 0 인 경우, 우리는 2가지 경우에이 분할. 당신은 이미 버그를 볼 수 있습니다. 첫 번째 사건은 -이 0 인 경우, 우리는 영을하고 0으로 나누어, 그리고 우리가 정의되지 않은 걸 말한다. 두 번째 경우 -이 제로가 아닌 경우는, 다음 1과 같은 그 뭔가가 0으로 나누어, 우리는 그 무한를 호출합니다. 아니면 우리는 B로 나눈 일상을 반환합니다. 그리고 여기, 우리는 이러한 3가지 경우를 실행중인 우리는 실제로 분할을 실행 - 저를 위해에 으악 - 그래서, 꽝의 경고를 무시 - 비 무효 함수의 끝은 - 분명히, 난 사전이 컴파일되지 않았습니다. 0을 반환합니다. 분할하기 - 알았어. . / 분리를 통해, 우리는 무한, 무한, 3을 참조하십시오. 0으로 나누어 제로는 무한대의 공간을 반환해서는 안됩니다. 그리고 당신은 아직 버그를 알아 냈어하지 않은 경우 - 또는 전에 보지 못했어요 - 우리는 = 0을 다하고 것을 볼 수 있습니다. 아마 우리는 == 0을 의미. 아마도. -하지만,이 사실은 뭔가, 다시 2003 년, 리눅스 커널했습니다 그래서 우리 어플라이언스는 리눅스 커널을 사용 - 어떤 리눅스 운영 체제는 리눅스 커널을 사용 - 그래서 매우 유사한 버그가 나타났다. 이 버그에 대한 아이디어는 있었어요 - 다시가 호출 한 단지 기능이 있었고, 그 오류 검사의 비트를 했어요. 이 오류가 확인되는 일부 특정 입력이 발생했습니다 - 괜찮아 같은 존재해야하는, 당신은 0 제수이 함수를 호출 할 수 없습니다. 그래서, 단지 일부 오류를 반환하는거야. 경우를 제외하고, 그냥 0 동등한를 설정만큼 죄가 아니 었습니다. 대신,이 코드 줄은 더 많은 사용자 = 관리자와 같은 뭔가를하고 결국. 또는 사용자 = 슈퍼 유저. 천진난 였어요 - 한눈에보기 - 실수 그냥 이치 수있는 곳 나는 특정 무언가를보고 싶어한다는 것을 사용자는 슈퍼 유저 관리자에게 무슨 일이 생기면. 하지만 그것에 대해 다시 생각하는 사람, 그건 오타가 간단한 걸보고 싶었어요 하지만이 코드는 실제로 공개 된 경우, 다음은 특정 플래그를 통과하여 시스템을 해킹 할 수 있었던 것이다 - 이 경우 B = 0 - 그리고 자동으로 사용자가 관리자 할거라 그리고 그 다음에 그는 모든 권한이 있습니다. 이 2003 년에 일어났다. 그냥 무슨 일이 생긴 그런가 잡힌 이유 일부 자동화 시스템이있을 일 때문 이었어 그이 파일의 변화를 발견 어떤 사람에 의해 변경되지 말았어야. 파일은 자동으로 생성되었을 것입니다. 그것은 너무 사람이 만지는 게 일 - 잘, 해킹 바라는 사람, 그 파일을 건드리지 그리고 컴퓨터가 감동하는 잡았어. 그래, 저들이이 변경되며 나중에는 어땠 을까 재해 실현 이 현실 세계로 빠져 나간다면. 당신은 생각 될 수 있습니다 - 우리의 컴파일러의 예에 돌아오고 - 비록 우리는 볼 수 없습니다 - 소스 코드를보고 - 특히 그 일이 잘못, 우리는 실제로 컴파일러의 이진 코드를 보면 우리는 뭔가 잘못 볼 것입니다. 우리가 실행하는 경우 예를 들어, 문자열은 작동 - 이는 단지 파일을 살펴 보게하고 찾을 수있는 모든 문자열을 출력 것입니다 - 우리는 우리의 컴파일러에 문자열을 실행하는 경우 우리는 발견되는 하나의 문자열이 이상한 것을보고 - 다른 경우 (strcmp (사용자 이름, "해커") - 어쩌구 저쩌구. 누군가가 자신의 컴파일러를 신뢰하지 정도로 과민 반응에게 무슨 일이 생기면 그들은 문자열을 실행하고이를 볼 수 그리고 그들은 실제 바이너리가 뭔가 잘못됐다 는걸 알게 될 것입니다. 그러나, 문자열은 필연적으로 컴파일 된 것이었다. 그럼 누가 우리의 컴파일러가 더 많은 특별한 코드가없는 말을 해요 그 문자열은 언제나 우리의 컴파일러에서 실행되는 경우, 해당 악성 코드를 모두 출력하지 않습니다 말한다. 우리가 파일을 비밀입니다 - 조립하려는 경우와 같은 생각 - 우리는 어셈블러는 기계 코드로 어셈블리 코드에서 우리를 제공합니다 것을 알게 - 우리는 반대 방향으로 이동할 수 - objdump-D 컴파일러 - 우리의 코드의 어셈블리를 제공합니다. 이걸 보면, 그것도 상당히 이상한이지만, 우리가 원한다면, 우리는이를 통해 볼 수 그리고 이유는, 기다려, 일하지 말아야 여기에서 뭔가가 그리고 우리는 컴파일러가 악의적 인 일을하고 있다는 인식됩니다. 하지만, 문자열처럼, 누가 objdump는 특수 맡았다 건 아니라고입니다. 기본적으로, 당신이 아무 것도 믿을 수 없어 아래로 있습니다. "믿음의 신뢰"라고하는 종이의 요점은 일반적으로, 우리는 우리 컴파일러를 신뢰합니다. 당신은 코드를 컴파일하고 당신이하기를 요구하는 일을 할 예정입니다. 그러나, 왜 컴파일러를 신뢰해야합니까? 당신은 컴파일러를 작성하지 않았습니다. 당신은 컴파일러가 반드시 실제로 무엇을하고 있는지 모르겠어요. 누가 당신이 신뢰할 수있는 말있어? 하지만 그렇다하더라도, 그럼 우리는 컴파일러를 신뢰하실 수 있습니다. 이 바라 보았다 한 사람의 수만이 있습니다. 누군가가 컴파일러에 올라 무언가를 인정해야합니다. 우리가 단 1 수준 깊은면? 심지어 프로세서가 될 수 있습니다. 가 가능하게 될 수 있으므로 터무니로서, 어쩌면 이러한 프로세서를 생성 인텔의 일부 악성 직원이있어 저거 프로세서는 당신이 명령을 실행중인 통지 할 때마다 그는 컴퓨터에 로그인하기위한거야 프로세서는 일부 특정 사용자 이름과 암호 조합을 허용합니다. 그것은 격렬하게 복잡됩니다, 하지만 사람이 할 수 있습니다. 그 시점에서, 당신은 정말 프로세서를보고 컴퓨터를 열 겁니까? 그리고이 있어야 이러한 회로가 늘어선되지 않는다는 인식 할 수 현미경을 사용합니까? 아무도 그 오류를 잡아주지 못해요. 어떤 시점에서, 당신은 무언가를 포기하고 신뢰해야합니다. 대부분의 사람들은이 시점에서 컴파일러를 믿는다. 그 뜻이 아니 반드시 그렇게해야 그 말을하는 것입니다. 다소 악명 높은 동영상을 보면 - [극적인 음악 연주] [이 UNIX 시스템입니다. 나는이 사실을 알고.] [그것은 모든 파일 야 -] 그녀는 "이것은 UNIX 시스템입니다. 제가이 사실을 알고"고 말했다. 좋아하는 운영 체제는 상관없이 UNIX 교체 - 그녀는 "이것은 Windows 시스템입니다. 제가이 사실을 알고"고 말했다. 수 그것은 아무런 의미 진술입니다 하지만 우리가 아는 한, 그녀는 UNIX 시스템에 다시 문을 알고 발생합니다. 그녀는 실제로 드리죠 일부 사용자 이름 / 암호 조합을 알고 그녀 그녀가 원하는 건 뭐든지. 괜찮아요. 오늘날의 도덕적는 아무것도 믿을 수 없어 기본적으로 있습니다. 도 일 당신은 쓰기 - 당신은 컴파일러를 작성하지 않았습니다. 컴파일러는 나쁜 수 있습니다. 당신이 컴파일러를 작성했다고하더라도, 컴파일러를 실행중인 것은 나쁜 수 있습니다. (웃음) 많은 당신이 할 수있는가 없습니다. 세계는 끝이다. 데이비드으로 돌아 가기! [박수] [데이비드] 감사합니다. 그건 정말 우울했습니다. 그러나 실제로, 롭이 올바른 것입니다. 일부 솔루션을 얻을 우리는 정말 해결 방법이 없지만,있을거야 좀 더 일반적인 방어합니다. 이 기대에 네이트와 나는 무대 뒤에서 뭐하는 거에요되었습니다 이 방에서 많은 노트북이 있다는 것을 알고 있으며, 우리는 지난 20 분 동안이 방을 거쳐가는 무선 통신을 모두 찾으려 돌아 다녔지 롭의 이야기 동안, 우리는 여기에 2 분 쉬도록하겠습니다. 네이트 우리가 물건들에 대해 이야기 할거야 다음에 설치하도록하고,있어 우리는 발견 한 수 있습니다. (웃음) 그래서, 그냥 드라마의 위해 약간의 과장했을 수 있습니다 그러나 우리는 때문에 실제로 무선 트래픽을 모두 스니핑 될 수있는 그렇게 간단합니다. 하지만 당신이 그와 함께 있으므로 방어, 그리고 수있는 방법도 있습니다 내가 네이트 Hardison을 제공합니다. >> [네이트] 귀엽다. (박수) [네이트]는 고마워. 나는 환호 해 주셔서 감사합니다. 좋아! 이 게임 주입니다. 너희도 그러니? 운이 좋다면 오늘은 토요일에 큰 게임이 될거야. 내가이 시점에서 사람들을 상상 - 당신이 수요일에 퀴즈를 가지고 주어진 모든 코드에 대해, 그래서 우리는 단지 롭하여 훌륭한 강의를 통해 토 - 거기에 C 코드의 모든것과 어쩌면 코드 지쳐 조금 있습니다. 이 부분에서 우리는 실제로 어떠한 코드를 만지지 않을거야. 우리는 당신이 매일 사용하는 기술에 대해 이야기 할거야 종종 많은 시간에, 우리는이 있다는 것을 보안과 의미에 대해 이야기합니다. 우리는 학기의 과정을 통해 보안에 대해 많이 얘기 했어요 우리는 암호 약간의와 도망 시작했다. [Bdoh 주사 vwlqng!] 그리고 둘은 서로에 메모를 통과 할 수있을 수퍼 흥분하는 동안 이것과 같은 시저 암호를 사용하여 클래스에 당신이 실제로 보안에 대해 얘기 할 때 현실에서 할 게 좀 더 재미가 물건을 그 종류. 오늘, 우리는 몇 가지 기술을 적용 할거야 그 사람들은 실제로 모든 일을 수행하는 현실 세계에서 사용 사람들의 패킷을 스니핑에서 실제로에 가서 사람들의 은행 계좌하고 모든에 침입. 이러한 우리에 대해 얘기하는 합법적 인 도구입니다 가능한 도구 중 하나를 제외한. 그리고 전 그냥 재빨리 면책 조항을 만들고 싶어. 무슨 사람이 있다는 거 알아 있도록 우리가이 일에 대해 이야기 할 때, 우리는 그들에 대해 얘기하고 그리고 당신이 밖으로 컴퓨터를 사용할 때 안전한 방법에 알고 있습니다. 그러나 우리는 확실히이 도구를 사용해야한다는 의미하지 않으 당신의 기숙사 나 집에서 당신은 큰 문제가 많은로 실행 할수 있기 때문이다. 우리가 실제로 패킷을 스니핑되지 않은 것이 한 가지 이유 오늘. 괜찮아요. 지난 월요일, 우리는 쿠키에 대해 얘기하고, HTTP 및 인증 얼마나 Firesheep은 사용자의 Facebook 계정에 큰 문을 열어 Hotmail 계정 - 사람은 아직 Hotmail을 사용하고있는 경우 - 많은 다른 계정. 이 물건의 많은 그 오프 구축 할 것이다 하지만 먼저, 나는 인터넷이 시간이 지남에 따라 진화 방법을 둘러을 받고 있습니다. 위로 90 년대에, 당신들은 실제로에 연결해 기억 수도 다음 중 하나를 사용하여 컴퓨터. 이제 우리는 많은 더이상 그러지 마세요. 사실은 순서대로 내 컴퓨터에 이더넷 케이블을 연결하는 것이 밝혀 지금은 미친 듯이입니다 이러한 어댑터 중 하나를 사용해야합니다. 대신 1997 년에 우리는이 새로운 재미 기술을 가지고 IEEE 802.11로 알려져 있습니다 그 나와 있으므로이 무선 인터넷 표준입니다 IEEE는 모든 종류의를 제공합니다이 운영 기관입니다 - 컴퓨터 관련과 표준의 모든 종류를 게시합니다. 802 표준은 인터넷 기술에 대한 모든 수 있습니다. 802.3 그래서 예를 들어, 이더넷 표준은, 저는 믿습니다 802.15.1은 블루투스 표준입니다 그리고 802.11은 모든에 대해 무선 인터넷입니다. 1997 년이 나왔다. 꽤 바로 잡을 없습니다. 그것은 1999까지 아니 었 및 802.11b 표준은 정말 인기가되었다고 나왔다. 컴퓨터에서 나오는 그들에 Wi-Fi 인터넷 접속을 받고 시작했을 때 얼마나 기억하지? 그런 멋지지의 종류 였죠? 나는 고등학교 처음으로 노트북을 받고 기억 그리고 거기에 무선 카드를했다. 아버지가 나에게 준, 그리고 내 대학 응용하고 모두를 위해 그것을 사용해야 말했듯이 그리고 내가이 물건을 온라인으로 찾아 줄 방법​​을 몰랐어요. 하지만 운좋게도, 그게 정말 멋졌어 때문에, 무선 카드를했다. 현재, 여러분은 정말 인기가 다른 중 하나 802.11g 볼 수 있습니다 무선 표준이 있어요. b와 g 모두 아름다운이 시점에서 구형 있습니다. 사람은 대부분의 사람들이 지금의 어떤 버전이 무엇인지 사람들이 새로운 무선 라우터 및 그런 종류의 물건을 구입하는 경우? 정확히 N.. 빙고. 그리고, AC 표준, 그냥 초안 형태로 오는 것이 밝혀 그리고가는 길에 다른 버전이 있습니다. 우리가 확보하고 있는지 이러한 표준의 각으로 더 많은 대역폭입니다 빠른 속도로 더 많은 데이터. 이런 일들은 너무 빨리 변화 유지. 우리가 더 많은 라우터 및 모든 재미 물건을 구입해야 할 수 있도록 그것은 또한을합니다. 의 무선 통신은 실제로는 핵심이 무엇에 대해 얘기합시다. 이더넷 및 오래된 전화 접속 모뎀으로, 당신은 실제로 당신이 컴퓨터에 연결되어있는이 물건을 가지고 그리고 당신은 종류의 모뎀에 연결 한 다음 당신의 벽에 잭으로 연결을. 당신이 옳아,이 유선 연결을 했어요? 무선 요점은이 물건을 잊어 버리기 있습니다. 그렇게하기 위해 우리가해야하는 것은 본질적이다 무선 통신의 무선 라우터 - 우리의 작은 무선 아이콘으로 지정 - 유선 연결의 어떤 종류를 나타내는이 단단한 화살표가 인터넷에 연결되어, 하지만 당신은 무선 라우터에 연결하는 경우 당신은 실제로 거의 간의 무전기처럼 사용하고 컴퓨터와 무선 라우터. 이게 무슨 정말 멋진 것은 당신이 이동할 수 있다는 것입니다. 당신은 샌더스를 통해 모든 컴퓨터를 수행 할 수있는, 당신이 원하는대로, 웹 서핑을 이동 당신이 모두 알고 좋아, 그냥 좋아 그리고 당신은 어떤에 연결해야 할 필요가 없습니다. 이 일을 위해, 우리는이 리셉션 및 전송을 모두 갖추고 있습니다. 정말 그 워키 토키 같습니다. 이 무선 라우터 - 샌더스에 바로이 단계 아래에 앉아 - 항상 방송 수신, 방송 수신, 와 마찬가지로, 컴퓨터는 역시 일 같은 종류의 작업을 수행 할 수있다. 우리는 듣고 할 수 없습니다. 당신이 할 수있는 또 다른 문제는 여러 대의 컴퓨터를 가질 수 있습니다 동일한 무선 라우터에 이야기. 가까이는 라우터에 있습니다 - 다시, 이것은 무선 통신입니다 - 가까이 당신이, 더 나은 신호는, 더 나은 컴퓨터가 라우터 '듣고' 그리고 인터넷과 통신 할 수 있습니다. 너희들은 집에 당신의 기숙사에 가졌던하여 신호가 나쁜 이유 당신이 궁금해하는 경우 때문에) 때문일 수 있습니다. 당신은 매우 귀하의 라우터에 가까이하지 않았거나 B). 귀하와 귀하의 라우터 사이에 뭔가가 시멘트 벽이나 뭔가가있어 그게 그 전파가 통과하게하지 않습니다. 가 Wi-Fi 접속 설비 등의 이유 나쁜 놈들에 대해 조금 얘기합시다. 나쁜 놈들은 몇 가지 이유로 Wi-Fi 접속 설비를 사랑 해요. 다음은 고약한 나쁜 사람이 바로 저기있어. 이 나쁜 남자가 Wi-Fi 인터넷 접속을 좋아하는 이유 중의 하나 기본적으로 무선 라우터의 많은 당신이 그들을 설정할 때 와서 있기 때문입니다 그들은 암호화되지 않은하고 있습니다. 이 문제가되었으며, 인스턴스가되었습니다 - 지금 여러 인스턴스 - 나쁜 남자가 다른 사람의 집에 나타 곳 이 있다는 통지는 사람들이 연락 할 수있는 Wi-Fi 접속 설비를 암호화되지 않은. 그들은 재미 별걸 다 다운로드를 시작 후 Wi-Fi 인터넷에 연결합니다. 그리고 그 고양이를 다운로드하지, 그들은 강아지를 다운로드하지. 이 비트 토런트 같습니다. 이 이쪽으로의 불쾌한입니다. FBI가도 참여 얻었다 가지 경우가 발생했을 집을 소유하고있는 사람이 실제로 하나 생각 밖에하고 정말 안된다는 물건을 다운로드. Wi-Fi 접속 설비가 확실히 당신이 원하는 것이 아닙니다 암호화되지 않은 것으로, FBI가 없다는 경우에만하면 문을 두드리다 있습니다. 나쁜 놈들은 Wi-Fi 접속 설비를 사랑 또 다른 이유 다윗이 휴식하는 동안 아까 말한 이유입니다. 그 핵심에서 무선 통신 야하기 때문에 당신은 채널을 알고있는 경우, 당신이 라디오 방송국을 청취 할 수 있습니다. 예를 들어, 액세스 포인트 옆에있는 중간 오른쪽에 앉아가 나쁜 권리가 있는지, 바로 그 무선 라우터 옆에 나쁜 남자는 무선 트래픽 모두에들을 수 있습니다 그게 그 모든 컴퓨터에서 온다. 사실,이 사람들 - 맨 앞줄에서 현재 사람이 운이 몇 개 있습니다 - 그들은이 무선 라우터의 모든 초 가까이 때문에 그건 그저 무대 아래에 앉아 그들은이 모든 객실에 모두의 트래픽을들을 수있을 것입니다 당신은 Wi-Fi에 연결하고 이러한 액세스 포인트 (AP)를 검색 시작합니다.하는 경우 이 냄새를 맡다 할 수있는 좋은 위치에 자신을 앉아 파악하는 것은 매우 어려운 아닙니다 다른 사람들이하는 일. 액세스 지점이 어디 있는지 확실하지 특히​​ 경우는 유의해야 할 뭔가가 그리고 당신은 스타 벅스에서 말하자면를 검색하고 있습니다. 이 스니핑 그 모든 것이 밝혀 별로 할 모든 어렵습니다. tcpdump라는 프로그램이 어떤 덤프 TCP 트래픽을 모든 종류의 그리고 당신은 아주 간단히 실행할 수 있습니다 - 오늘 아침에 그랬던 것처럼. 다음은 덤프가 좀 있고, 여기에 오는 걸 트래픽의 일부입니다 당시 내 네트워크. 당신은 볼 수 있습니다 - 당신이 곁눈질하면 정말 열심히 - 저기 Spotify 약간의가 있습니다. tcpdump의 상단에 -이 사용할 수있는 고통의 종류이기 때문에 - 좋은 GUI에서 Wireshark있는 번들이 다라는 프로그램이 있어요. 당신은 네트워킹 수업을로 이동 만약 그렇다면 Wireshark는, 슈퍼 편리합니다 이 당신이 패킷을 모두 해부하는 데 도움이 있기 때문에 당신이 사랑하게되는 도구입니다 그 밖에 주위에 떠 있습니다. 그러나 또한 나쁜에 사용할 수 있습니다. 단지가 부팅이 프로그램을 다운로드하려면 그것은 매우 간단 네트워크 캡처를 시작하고 무슨 일이야 모든 걸보고 - 그와 함께 재미있는 것들 모든 종류의 필터링 마십시오. 당신이 무선 통신을 할 수있는 다른 것 만이 도청 할 수 있지 않습니다뿐만 아니라 네트워크와 나사하는 방법을 배울 수 있습니다 과 경험을 제어 할 수 귀하의 정보를 삽입 그 다른 사람 동일한 무선 네트워크에 받고있다. 씨가를 살펴 보자. 여기 Firesheep이야 - 우리가 지난 주부터 알고 좋아하는 - 그 도청 기술하는 것입니다. 경우, 예를 들어, 우리는 적극적으로 주변의 나쁜 녀석 이동하여 혼란을 좀하고 싶어 이러한 컴퓨터 중 하나 이 시나리오에서 우리는 harvard.edu to 서핑을 이동하는 컴퓨터있어. 이 어떻게됩니까, 컴퓨터는 먼저, 무선 라우터에 메시지를 보내고 있다고 이봐, 내 방문 www.harvard.edu에 가고 싶어요. 그들은 이번 주말에 게임에 대한 정보를 얻으려고하는 어떤 이유로 말해. 나쁜 남자, 그는 중간에 오른쪽 앉아 있기 때문에, 액세스 지점 바로 옆에, 그 통신이 컴퓨터에서 오는 볼 수 있습니다 라우터로, 그는 알고, "아하! 누군가 harvard.edu로 갈거야." (evilly 웃음) 통신 라우터에서가는 동안이 지연이있을거야 나가 인터넷에있는 웹 페이지를 찾아 이동하십시오 harvard.edu .. - 처럼 너희들은 모든 PHP의 psets하고 이후에 알아 - 그리고 나쁜 남자는 시간이 약간, 창 조금 있습니다 있는 그는 일 때문에 응답 할 수 있습니다. 자,이 나쁜 사람은 물론, Yaley이라고 말을합니다. 그는 harvardsucks.org로 응답합니다. 어흥! 나쁜 사람! 나쁜 Yaley! 또는 더 나쁜, 그는 그와 함께 응답 할 수 있습니다. [http://youtu.be/ZSBq8geuJk0]. 나는 너희들이 그게 뭔지 알아 알려드립니다. 이와 같은 사실은 실제로 Airpwn라는 기술입니다! 어떤이의 데뷔했습니다 보안 컨퍼런스 중 하나를 몇 년. Airpwn으로! 당신은 실제로 네트워크에 다시 트래픽을 삽입 할 수. 인터넷에 외출하려고 시도로 갈려고했는데 컴퓨터 Facebook.com에, harvard.edu에 Google.com, 에 와서 악의적 인 응답을 확인하고 즉시 가정, 좋아요 그건 내가 기다리고과 콘텐츠를에서 치울 것을 대답 harvardsucks.org 또는 nameyourfavoriteshocksite.com, 그리고 일이 저하됩니다 얼마나 빨리 볼 수 있습니다. 일 이러한 종류의 모든 수행 할 수 없습니다 때문에 유선 연결이 유선 연결로 또한 트래픽에 뒤져 어렵습니다. 난 나쁜 남자 야 한 끝에 컴퓨터가있는 경우 모뎀 -하고 다른 쪽 끝을 라우터입니다 - 그 연결 사이에서 얻을 수있는 유일한 방법은 실제로 컴퓨터를 연결하는 거죠 중간에 또는 라우터와 함께 무언가의 하류를 다른 일을. 그러나 무선의 경우는, 교실의 가장 앞줄에 앉아으로 쉽게 할 수 있습니다 그리고 당신은 다시에있는 사람들에게 음흉한 것들 모든 종류의 작업을 수행 할 수 있습니다. 가 당신이 이런 것들을 어느 정도 방어 할 수 방법에 대해 얘기합시다. 802.11 - 무선 표준을 개발하는 사람들 - 상상의 스트레칭으로 바보 같은 사람이 아니야. 이 멋진 기술이며 1999 년에 데뷔했을 때 그들은 WEP이라는 표준을 나왔다. 당신은 무선 네트워크를 시도하고 가입 할 때 여기에서 볼 수 있습니다 당신은 다른 보안 옵션을 모든 종류의가 있습니다. 6 모든이 함께 있기 때문에 그 고통의 일종 이죠 그리고 정말 1에 가입 할 의미가 없어. 상단에있는이 1들이 WEP라고 나온 건 처음입니다. WEP는 유선 동등한 개인 정보 보호 정책을 의미합니다, 저는 믿습니다, 어떤하지 무선 암호화 프로토콜은 일반적인 그릇된 명칭이다. 당신에게 개인 정보 보호에 상응 및 보안 보호를 제공하려고하기 때문에 유선 네트워크의에 해당 WEP 무슨 일이 끝나 것은로, 당신이 입력하는 간단한, 작은 비밀번호를하고는 암호화 제공 컴퓨터와 라우터 사이에 통신의 모든. WEP하지만있는 문제는 무엇입니까? WEP와 비밀번호, 정말 짧은 또한 모든 사람들이 그와 똑같은 암호를 사용  그래서 그 암호를 해독하기 정말 간단합니다. 매우 빠르게 사람들은 WEP 문제라고 알아 냈어 그리고 당신이이 작은 녀석은 여전히​​ 표시 볼 수있는 유일한 이유는 - WEP를 사용하는 일부 오래된 시스템이 있습니다 - 대신 WPA 아르를 찾고 심지어는 WPA2 표준을해야하는지 그는 나중에 릴리스되었습니다. 이러한 시스템은 무선 인터넷을 보호에서 더 나은 이동합니다. 그래서 그들이 아직 hackability있어했다. 이 작업을 수행 갈 수 밖에 도구가 있습니다. 고약한 할 수 있습니다 특히 한 것은, 당신은 연결 무선 라우터에 인증하고 어떤 종류의를 사용하는 경우 암호화 통신, 이건 해커가 쉽게 하나의 패킷을 보낼 수있는 것이 밝혀 , 라우터에서 연결을 해제하는 방법 한 번 그들은 다음에들을 수 있습니다 당신을 끊어어요 - 귀하의 라우터와 다시 설정 연결에 시도로 사람들은 그 패킷을 도청 할 수 있습니다. 그리고 그 정보들은 다음 커뮤니케이션의 나머지 부분과 해독 이동할 수 있습니다. 모든이 모든 상상을 넘어서는 보안의 종류를 의미하여이 없습니다. 당신이 무선 네트워크를 설정할 때 당신이 할 수있는 다른 것 또는 당신이 그들을 가입하는 것입니다 - 당신은 여기이 네트워크에 가입 할 때 것을 알, 내 네트워크의 이름을 묻습니다. 이것은 또한 SSID로 알려져 있습니다. 그리고 당신은 오른쪽에 저에게 사용할 수있는 SSID를 표시하는 상자를 가지고 여기를 참조하십시오. 하버드 대학교, CS50 및 CS50 직원 네트워크가 있습니다. 이제 CS50 직원 네트워크가 주위에 얼마나 여러분의 많은 알고 계셨어요? 당신의 일부. 너 말고 모든. 이있는 문제는 물론, 우리가 SSIDs의 목록에이을 두지했다는 것입니다 아무도는 대부분에 대해 알지 것이다. 나는 바랍니다. 당신들은 우리의 모든 무선으로 해킹하려고하지 않는 한. 하지만 지금은 당신이 할 수있는 일이 뭔가가 설정 때 정말 중요한 것입니다 집에서 라우터. 이 아마 당신의 많은에 대한 몇 년 동안 이런 일 없을 거예요 하지만 유지하는 것은 거기서 SSID 것을 명심하고 또한 이름을 지정하지 않는 슈퍼 - 일반적인 뭔가가 장기적으로 더 많은 보안을 유지하는 데 도움이됩니다. 당신이 할 수있는 일의 마지막 몇. 하나는 HTTPS입니다. 당신은 공용 Wi-Fi 지역에있는 경우 당신은 스타 벅스에있는 경우 그리고 귀하의 은행 계좌에 액세스하기로 결정하여 Gmail, 페이스 북에 액세스 이러한 연결 HTTPS를 통해가는 있는지 확인하십시오. 이 보안 추가 레이어 암호화의 추가 계층입니다. 여기 염두에 두어야 할 한 가지입니다 어떻게 많은 적 의하면 크고, 붉은 색의 화면을 클릭 한 "이 웹 사이트는 나쁜 수 있습니다." 난 알지. 당신이 모든 국토 안보부 또는 오른쪽으로 그런 일을, 만나러 검색 할 때 아마? 그래. (청중 웃음) 그래. 여기 있습니다. 우리 국토를보고 누군지 알아요. 바로 그 크고, 붉은 색의 화면 자주 뭔가 펑키 한 일이 벌어지고 있음을 나타냅니다. 때때로, 웹 사이트 자체가 안전하지 않은 것입니다 그냥 사람들이려고했을 때 같은 크고, 붉은 색의 화면이됩니다 마운트 네트워크는 당신을 공격합니다. 당신은 크고, 붉은 색의 화면이, 스타 벅스에 와서 알면 그것을 통해 클릭하지 않습니다. 나쁜 소식. 나쁜 소식은 맺는다. 당신이 볼 수있는 마지막으로 한가지 VPN의 일종입니다. 이 VPN은 하버드을 통해 사용할 수 있습니다 - vpn.fas.harvard.edu .. - 과이 수행하는 것은 실제로 보안 연결을 설정합니다 그 통해, 하버드 사이 유입 경로는 트래픽, 그리고 스타 벅스 같은 장소에 앉아있는 경우 그런 식으로 당신이 하버드에 연결할 수, 그 안전 트래픽을 한 후 하버드에서 검색 할 수 있습니다. 다시 말하지만, 절대 안전한 않습니다. 사람들은 중간에받을 수 있습니다. 그들이 부러 시작할 수 있지만이 훨씬 더 안전한 보안에 의존보다 Wi-Fi 접속 설비를 혼자의. 괜찮아요. 요컨대, 당신은 무선 네트워크를 설정하는 경우, - 당신은 공공 장소에서 무선을 사용하는가는 때 그, 그건 B.Good이든, 그 다섯 친구들이든, 스타 벅스이든 그런 일을 - 그들이 Wi-Fi 접속 설비를 갖추고없이 - 당신의 주변 환경을 인식. 사람들이 할 수있는 일을 인식합니다. 그리고 안전. 귀하의 은행 계좌에 액세스하지 마십시오. 누군가가 나중에 비밀번호으로 표시하는 경우이 불쾌한 일이 될 수 있습니다. 그와 함께, 진홍 가자! 그리고 마지막 단어 데이비드에 다시 물건을 돌려거야. (박수) [데이비드] 그냥 제 개인적인 경험 하나를 공유 할 줄​​ 알았는데. 애플은 주로이 문제를 일으킬 수있는 요소들은 미리 제거되었습니다 있지만 - 당신이 갖고 노는 수있는 도구 그 이후 소프트웨어를 업데이트 한 경우 - 하지만 정말 우리가 사용하는 소프트웨어를 신뢰할 수 없다는이 끝을 향해, 네이트의 포인트로, 다른 사람들이하는 일의 꽤 도청 할 수있는 저기 -이 이제 1 년 반 전에 나온 소프트웨어의 일부 였지. [iPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 약간의 시간이 들어, 아이튠즈 - iCloud 전에, 귀하의 아이팟이나 아이폰을 동기화 때 또는 iTunes와 나 iPads - 백업의 관심, 시간이 귀하의 아이폰과 다른 기기 뭘 했지 GPS 데이터의 활용. 당신은 아마 알고 귀하의 아이폰과 안드로이드와 윈도우 모바일 전화 당신이 당신에게지도를 보여주는 관심에 어디 요즘 같은 추적 할 수 있습니다 와 유사한 - 잘 애플과 다른 회사가하는 일입니다 그들은 일반적으로 당신이 실제로의 이익에 있었어요 거의 모든 곳 추적 서비스의 품질을 향상. 하나는, 당신은 더 많은 타겟이 분명한 광고 및 같은을 얻을 수 하지만 두 그들은 또한,이 세계의 무선 핫스팟의 위치를​​ 알아낼 수 이는 지리적 위치와 함께 도움을 줄 수 - 사람들의 입장 삼각 측량의 일종입니다. 짧게 말하면, 우리 모두는 시간의 일부 금액에 대해 안테나를 걸어 왔습니다. 불행하게도, 애플은 디자인 결정을했습니다 - 또는 그 부족 - 가 iTunes에 백업되는 때이 정보를 암호화하지. 그리고 보안 연구자가 발견 한이 단지 거대한 XML 파일이라고 있었어요 - 거대한 텍스트 파일 - 사람들의 아이튠즈 소프트웨어에 앉아, 그리고 당신은 약간의 호기심 있다면, 귀하의 배우자의 역사, 니 룸메이트의 역사, 주변에 파고 갈 수 당신의 형제 자매의 역사와 같은 일부 무료 소프트웨어 덕분에, 당신은이 GPS 좌표를 모두 있겠나 수 있습니다 - 위도와 경도. 그래서 사실은 내 자신의 휴대 전화로 이런 짓을. 난 내 휴대 전화에 연결하고, 확실히 충분히, 아이튠즈의 내 버전은 시간에 암호화 아니 었 내가 볼 수 뭔지 내 자신의 패턴이었다. 여기에 미국은 있고이 파란색 원의 각을 나타냅니다 내가이 특정 전화를 소유 그 이전 개월 동안받은 적이 있었던 곳.  나는 동북 캘리포니아에서 약간의 시간에, 물론, 많은 시간을 할애 수명이 짧은 텍사스 여행, 당신은 다음이를 확대한다면 - 이 훌륭한 흥미로운 모든 종류의 수 있습니다,하지만이 알고 있었다. 내 친구 대부분이 알고 있지만, 깊이에 잠수하는 경우 나는 동북에서 내 대부분의 시간을 보내는 곳은를 참조하십시오. 좀 익숙한 모양의 마을에 래치 경우 - 이 큰, 파랑 잉크 얼룩지게하다는 본질적으로, 보스턴으로 중심 그럼 내가 보스턴에서 아웃 방사 교외에 시간이 조금 지출. 그렇지만, 나 또한 그 해 컨설팅 상당히을하고 있었어요. 그리고 올해는 동부입니다, 당신은 사실을 볼 수 있습니다 내 주머니에 내 아이폰은 보스턴과 뉴욕 간 여행 그리고 더 아래로 필라델피아뿐만 아니라 휴가 시간을 조금 소비 거기 작은 팔이 케이프에. 따라서이 점을 각각, 난 있던 곳을 나타냅니다 나는 완전히 미지의, 전체 역사는 그대로 앉아 있었어 내 데스크톱 컴퓨터에. 당신이 축소하는 경우 -이 사실 조금 염려가. 내가 언제 펜실베니아에서 특정 년에 있었다는 것을 전혀 기억 없었다. 하지만 조금 그것에 대해 더 내가 알아 낸하지만, 이런 사실에이었다 여행 그리고 확실히 충분히, 내 휴대폰을 잡았습니다. 애플은 이후이 정보를 암호화하고 있습니다 하지만이 역시 우리에 대해 수집하고 있습니다 얼마나 많은 정보에 불과 선언과도 같은 것입니다 얼마나 쉽게 - 더 나은 또는 악화에 대한 -이 허용입니다. 네이트의 이야기에서 희망 롭의 이야기에서 테이크 예측 중 하나 이 오늘 같은 작은 영상은이 모든 더 인식 될 단지입니다 그래서지라도 - 라브 지점으로 - 우린 종류의 권리, 망? 가 이러한 위협의 일부에있어서 우리가 할 수는 없 거든 하지만 하루의 끝에서 우리가 뭔가 나 사람을 믿어야 해요 우리가 실제로 이러한 기술을 사용하려면. 적어도 우리가 정보를 결정하고 계산 의사 결정을 할 수 있는지 여부 우리는 실제로이 특히 중요한 계정을 확인해야합니다 또는 우리가 실제로하는 약간 인스턴트 메시지를 보내 의심해야  이와 같은 Wi-Fi 인터넷 접속 환경 인치 따라서 하나의 퀴즈 유적, 그렇게 말을 한 강연이 남아 있습니다. 우리는 수요일 다음 월요일에 보자. (박수와 환호) [CS50TV]