OWASP Top 10 이름 : 학번 : 과목 : 담당교수 :OWASP Top10 이란 무엇인가 ?? OWASP 란 ? OWASP 란 “ The Open Web Application SecurityProject” 의 약자로 국제 웹 표준 기구 이며 , 정보 노출 , 악성 파일 , 보안 취약점등을 연구 하는 일을 합니다 OWASP Top10 이란 ? 이 기구에서 연구하고 있는 것 중 일부의 프로젝트이다 . 쉽게 설명하면 웹 어플리케이션 취약점 중에서 빈도가 많이 발생하고 , 보안상 영향을 많이 줄 수 있는 것 10 개를 선택한 것이다 . 2004 년부터 시작해 3 년마다 발표가 되면서 순서도 바뀌고 , 용어도 조금씩 바뀌며 , 포괄적으로 포함이 되어서 항목이 없어지는 것도 있다 .OWASP Top 10 종류 OWASP Top 10 – 2013 OWASP Top 10 -2013 번역 A1 - Injection A1 - 인젝션 ( Injection) A2 – Broken Authentication and Session Management A2 – 취약한 인증과 세션 관리 A3 – Cross-Site Scripting (XSS) A3 – 크로스 사이트 스크립팅 ( XSS) A4 – Insecure Direct Object References A4 – 안전하지 않은 직접 객체 참조 A5 – Security Misconfiguration A5 – 보안상 잘못된 구성 A6 – Sensitive Data Exposure A6 – 중요한 정보 노출 A7 – Missing Function Level Access Control A7 – 접근 제한 함수의 미흡 A8 - Cross-Site Request Forgery (CSRF) A8 - 크로스 사이트 요청 변조 ( CSRF) A9 - Using Components with Known Vulnerabilities A9 - 공개된 컴포넌트에 대한 취약점 노출 A10 – Unvalidated Redirects and Forwards A10 – 확인되지 않은 리다이렉션과 포워드contents A10 – 확인되지 않은 리다이렉션과 포워드 확인되지 않은 리다이렉션과 포워드란 ? 마치 안전할 듯한 것처럼 위장된 사이트로 리다이렉트를 하여 사용자가 공격자가 원하는 사이트로 접속하도록 하는 공격하는 취약점을 말하는 것이다 ( 피싱 ) 전문연구요원이 되기 위한 준비 석사 학위 취득 토익 점수 면접 준비 학점 관리contents A9 - 공개된 컴포넌트에 대한 취약점 노출 공개된 컴포넌트에 대한 취약점이란 ? 취약점이 존재하고 공개된 컴포넌트를 사용하는 것을 말한다 . 대응방안 사용하고 있는 모든 버전의 컴포넌트에 대해 파악한다 . 컴포넌트 사용을 통제할 수 있는 보안정책을 구성한다 사용하고 있는 모든 버전의 컴포넌트에 대해 파악한다A8 - 크로스 사이트 요청 변조 (CSRF) 크로스 사이트 요청 변조란 ? 악성 스크립트를 이용해 로그인한 사용자의 브라우저가 사용의 세션 쿠키 및 자동으로 포함되는 다른 인증정보를 포함하는 조작된 HTTP 요청을 보내도록 한다 대응방안 중요한 기능 url 접속시 랜덤하게 발생되는 토큰을 발행한다 . 폼 데이터가 전송될 때 정상적인 전송인지 여부를 검사한다 .A7 - 접근 제한 함수의 미흡 접근 제한 함수의 미흡이 란 ? URL 접근제어 실패 ) 를 확장시킨 것으로 단순히 URL 접근제어 뿐만이 아닌 , 모든 단계적 (level) 접근 제한 기능을 내포하기 위해서 확장시킨 것입니다 . 대응방안 비인가 페이지에 접근 제한 권한 레벨을 설정하는 프로세스가 반영됐는지 확인한다 개발단계부터 접근 제한에 대한 레벨 설정을 한다 .A6 – 중요한 정보 노출 중요한 정보 노출노출이란 ? 카드번호와 개인정보 같은 중요정보를 암호화 시키지 않고 저장하거나 취약한 알고리즘 사용으로 인해 중요한 정보의 유출이 발생하는 취약점입니다 . 대응방안 클라와 서버가 통신하는 과정에서는 암호화 통신 (SSL) 이 이루어져야 한다 . 안전한 암호화 기법으로 데이터가 보호되는지 , 암호화 통신이 이루어지는지 확인한다 .A5 – 보안상 잘못된 구성 보안상 잘못된 구성란 ? 어플리케이션 , 데이터베이스등 보안설정을 적절하게 설정하지 않아 발생되는 취약점입니다 . 대응방안 최적화된 값으로 유지하며 소프트웨어는 최신의 상태로 유지한다 . 폼 데이터가 전송될 때 정상적인 전송인지 여부를 검사한다 .A4 – 안전하지 않은 직접 객체 참조 안전하지 않은 직접 객체 참조란 ? 파일 , 디렉토리 , 데이터베이스 키와 같은 내부적으로 처리되는 오브젝트가 노출되는 경우 , 다운로드 취약점 등을 이용하여 시스템파일에 접근하는 취약점 등을 의미한다 . 대응방안 사용자 또는 세션당 간접적인 객체 참조 사용을한다 . 사용자가 권한이 있는지를 확인하기 위해 접근 통제를 포함한다 .A3 – 크로스 사이트 스크립팅 (XSS) A3 – 크로스 사이트 스크립팅 (XSS) 란 ? 콘텐츠를 암호화나 검증하는 절차 없이 사용자가 제공하는 데이터를 공격자가 피해자의 브라우저 내에서 스크립트의 실행을 허용하도록 함으로써 세션을 가로채거나 , 웹 사이트를 손상하거나 웜을 심는 것 등을 할 수 있는 취약점입니다 . 대응방안 신뢰할 수 없는 데이터가 포함될 수 있는 HTML 기반 데이터 전체를 제한한다 . 활성 브라우저 콘텐츠와 신뢰할 수 없는 데이터를 항상 분리한다 .A2 – 취약한 인증과 세션 관리 취약한 인증과 세션 관리란 ? 공격자로 하여금 다른 사용자의 신분으로 가장 할 수 있도록 패스워드 , 키 , 세션 , 토큰체계를 위태롭게 하거나 , 구현된 다른 결함들을 악용할 수 있도록 허용하도록 하는 취약점을 말합니다 대응방안 강력한 인증 및 세션 관리 통제의 단일체계를 위해 노력한다 세션 ID 를 도용하는데 사용될 수 있는 XSS 취약점을 막기 위해 철저하게 노력한다A1 - 인젝션 (Injection) 인젝션이란 ? 공격자의 악의적인 데이터는 예기지 않은 명령실행이나 권한 없는 데이터에 접근하도록 인터프리터를 속여 데이터손실 , 변조 및 시스템 권한 획득 당하는 취약점이다 . 대응방안 신뢰할 수 없는 데이터를 명령어와 질의로부터 항상 분리해야 한다 . 인터프리터 사용을 전면 금지한다 . 변수 화된 인터페이스를 제공하는 안전한 API 를 사용한다 .mysqli_real_escape_string 함수 알기 mysqli_real_escape_string 함수란 ?? PHP 기본 함수로써 쉼표 (,) 따음표 (“) 주석문 문자열 (--) 등의 쿼리에 영향을 줄 수 있는 문자를 제거하는 기능을 합니다 . 쓰는방법 $name = mysqli_real_escape_string($dbc, trim($_POST['name'])); 이 함수는 mysql_connect() 함수 뒤에 사용해야 합니다 .SQL 인젝션 많은 방법들이 있지만 이방법은 쉽고 다른 함수와 함께 사용하면 가장 완벽한 방어를 할 수 있습니다 . MySQL 일 경우 이렇게 MySQL 로 질의를 전송하기 전에 안전하게 검사를 해주기 때문에 항상 이 함수를 사용해야만 합니다 .감사합니다{nameOfApplication=Show}
OWASP Top10 과 국정원 8대 취약점제출일전공과목학번담당교수이름Ⅰ. OWASP TOP 10 이란 무엇인가??OWASP란 “The Open Web Application SecurityProject” 의 약자로 국제 웹 표준 기구 이며, 정보 노출, 악성 파일, 보안 취약점등을 연구 하는 일을 합니다. OWASP TOP 10은 이 기구에서 연구하고 있는 것 중 일부의 프로젝트이다. 쉽게 설명하면 웹 어플리케이션 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 많이 줄 수 있는 것 10개를 선택한 것이다. 2004년부터 시작해 3년마다 발표가 되면서 순서도 바뀌고, 용어도 조금씩 바뀌며, 포괄적으로 포함이 되어서 항목이 없어지는 것도 있다.OWASP Top 10 - 2010(Previous)OWASP Top 10 - 2013(New)A1 - InjectionA1 - InjectionA2 - Cross Site Scripting (XSS)A2 ? Broken Authentication and Session ManagementA3 - Broken Authentication and Session ManagementA3 ? Cross-Site Scripting (XSS)A4 - Insecure Direct Object ReferencesA4 ? Insecure Direct Object ReferencesA5 - Cross Site Request Forgery (CSRF)A5 ? Security MisconfigurationA6 - Security MisconfigurationA6 ? Sensitive Data ExposureA7 - Insecure Cryptographic StorageA7 ? Missing Function Level Access ControlA8 - Failure to Restrict URL AccessA8 - Cross-Site Request Forgery (CSRF)A9 - Insufficient Transport Layer Protecti성A6 - 보안상 잘못된 구성A6 ? 중요한 정보 노출A7 - 안전하지 않은 암호화 저장A7 ? 접근 제한 함수의 미흡A8 - URL 접근제어 실패A8 - 크로스 사이트 요청 변조(CSRF)A9 - 불충분한 전송 계층 보호A9 - 공개된 컴포넌트에 대한 취약점 노출A10 - 확인되지 않은 리다이렉션과 포워드A10 ? 확인되지 않은 리다이렉션과 포워드Ⅱ. OWASP TOP 10의 설명과 해결방안1. OWASP Top 10 2010 삭제된 항목(1) 안전하지 않은 암호화 저장 [A7]많은 웹 어플리케이션들이 적절한 암호나 해쉬를 갖고 신용카드 번호나 주민등록번호 같은 민감한 데이터를 적절히 보호하지 않습니다. 따라서 안전하지 않은 암호저장에 있어 공격자는 신분위장, 신용카드 사기나 그 외의 범죄를 저지르기 위해서 취약한 데이터를 훔치거나 조작을 하게 됩니다.해결방안 : 해쉬 또는 암호화로 항상 보호하고 최신 최적의 암호화 정책을 적용하고 유지한다.- 기밀정보는 최소한 두 군데 이상 분산하여 저장하고, 실행할 때 합쳐서 사용한다.(2) URL 접근제어 실패 [A8]많은 웹 어플리케이션들이 보호된 링크나 버튼을 표현하기 전에 URL접근 권한을 확인하게 됩니다. 그러나 어플리케이션은 이 페이지들이 접근될 때마다 매번 유사한 접근통제확인을 요구합니다. 공격자는 이 감춰진 페이지에 접근하기위해 URL변조를 시도하게 되는데 이로 인해 외부로터 URL접근제한을 실패할 경우노출이 되는 취약점입니다.해결방안 : 메커니즘을 검증하기 위해 코드 검토와 보안 테스트를 병행한다.- 각 페이지별 접근 통제 강제성을 확인한다.- 무작위적 접근 허용 금지 및 권한을 설정한다.(3) 불충분한 전송 계층 보호 [A9]대체로 약한 알고리즘을 사용하거나 만료되거나 유효하지 않은 인증서를 사용하거나 또는 그것들을 올바르게 사용하지 않을 때 어플리케이션은 종종 민감한 네트워크 트래픽의 인증, 암호화, 그리고 비밀성과 무결성을 보호하는데 실패합니다. 이로 인해 정보나 인증관련 토큰을 가로챌 수 있습니다.는지를 진단한다.- 클라이언트와 서버와 통신하는 과정에서는 암호화 통신(SSL)이 이루어져야 한다.- 안전한 암호화 기법으로 데이터가 보호되는지, 암호화 통신이 이루어지는지 확인한다.(2) 접근 제한 함수의 미흡 [A7]OWASP 2010 TOP 10에서 Failure to Restrict URL Access(URL 접근제어 실패)를 확장시킨 것으로 단순히 URL 접근제어 뿐만이 아닌, 모든 단계적(level) 접근 제한 기능을 내포하기 위해서 확장시킨 것입니다. 가상적으로는 UI에서 보여지는 특정기능을 수행 전, 기능 접근 제한 권한을 검증해야하나, 어플리케이션은 각 기능에 대한 접근시 동일한 접근통제검사 수행이 요구됩니다. 만일 적절하게 수행되지 않는 경우 공격자는 비인가 된 기능에 접근하기 위해, 정상적인요청을 변조하여 익명으로 중요기능에 접근할 수 있습니다.해결방안: 비인가 페이지에 접근 제한 권한 레벨을 설정하는 프로세스가 반영됐는지 확인한다.- 개발단계부터 접근 제한에 대한 레벨 설정을 한다.(3) 공개된 컴포넌트에 대한 취약점 노출 [A9]Security Misconfiguration(보안상 잘못된 구성)에서 기본적으로 내포하고 있었지만 컴포넌트 기반 개발의 성장으로, 알려진 취약한 컴포넌트 사용의 위험이 커짐으로써 분리된 것입니다. 공개된 컴포넌트의 활용은 사업비용 측면에서도 매우 큰 도움을 주지만, 이런 공개된 컴포넌트는 소스가 오픈되어 있기 때문에 화이트 박스(WiteBox) 방식의 집단 접근이 가능 합니다.해결방안: 프로젝트, 보안 메일링 리스트 등의 정보를 확인하고, 최신패치를 유지한다.- 보안테스트를 통과한 컴포넌트 사용을 통제할 수 있는 보안정책을 구성한다.- 사용하고 있는 모든 버전의 컴포넌트에 대해 파악한다.3. OWASP TOP 2013 중요한 항목(1) 인젝션(Injection)SQL, OS, LDAP 인젝션과 같은 인젝션 결함은 신뢰할 수 없는 데이터가 명령어나 질의어의 일부분으로써 인터프리터에 보내 질 때 발생합니다. 공격자SP의 보안 표준항목과 세션관리에 정의 돼 있는 요구사항을 모두 충족한다.- 세션 ID를 도용하는데 사용될 수 있는 XSS취약점을 막기 위해 철저하게 노력한다.(3) 크로스 사이트 스크립팅(XSS)XSS취약점은 콘텐츠를 암호화나 검증하는 절차 없이 사용자가 제공하는 데이터를 애플리케이션에서 받아들이거나, 웹 브로우저로 보낼때마다 발생하며, 공격자가 피해자의 브라우저 내에서 스크립트의 실행을 허용하도록 함으로써 세션을 가로채거나, 웹 사이트를 손상하거나 웜을 심는 것 등을 할 수 있는 취약점입니다.해결방안 : 신뢰할 수 없는 데이터가 포함될 수 있는 HTML기반 데이터 전체를 제한한다.- 적절한 정규화와 디코딩으로 긍정적 혹은 화이트리스트 입력 검증을 수행한다.- 활성 브라우저 콘텐츠와 신뢰할 수 없는 데이터를 항상 분리한다.Ⅲ. 국정원 8대 취약점이란 무엇인가??2005년 국가사이버안전센터(NCSC)에서 국내 각 기관에서 홈페이지 해킹에 많이 악용되었던 보안취약점 8종을 선정하고 발표한 것이다.1. 국정원 8대 취약점의 종류(1)디렉터리 리스팅(Directory Risting)(2)파일 다운로드(File Down)(3)크로스 사이트 스크립트(Cross Site Script)(4)파일 업로드(File Upload)(5)웹 DAV(Web DAV)(6)테크노트(TechNote)(7)ZeroBoard(제로보드)(8)SQL Injection(SQL 인젝션)2. 국정원 8대 취약점의 설명(1) 디렉터리 리스팅홈페이지의 속성을 설정하는 웹사이트 등록정보에 특정 디렉터리에 대하여 디렉터리 검색 항목이 체크되어 있거나 옵션이 잘못되어있을 경우 다른 사용자들이 모든 디렉터리 및 파일 목록이 보이게 되고, 파일 열람 및 저장도 가능하게 되어 비공개 자료가 유출될 수 있는 취약점이다.해결방안 : 인터넷 망 연결 서비스의 웹 서버에서 디렉터리 검색 메뉴 체크를 해제 시킨다.- 검색이 되지 않도록 홈페이지의 최상위 주소에 robots.txt를 추가시킨다.- 모든 디렉터리에 대해 디렉터 운영 명령어를 실행 시킬 수 있는 취약점이다해결방안 : 파일이 업로드 되는 시스템과 서비스가 운영되는 시스템과 분리한다.- 확장자를 우회하여 업로드 하더라고 파일 이름과 확장자를 임의대로 수정한다.- 서비스에 필요한 확장자만 허용한다.(2) 테크노트테크노트란 국내에서 개발되어 무료 배포중인 게시판 제작 프로그램으로 리눅스 및 유닉스 계열의 홈페이지 서버 컴퓨터에 주로 사용되는데 일부 CGI프로그램들에서 인수값 처리 시에 ‘|’문자 이후에 나오는 컴퓨터 운영 명령어가 실행될 수 있는 결함이 있어 해커가 홈페이지 접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조하거나 컴퓨터를 조작할 수 있는 취약점이다.해결방안 : php의 설정파일인 php.ini와 apache 설정파일인 httpd.conf를 수정한다.- 보안 취약점이 존재하는 소스를 수정하거나, 보안패치를 다운 받는다.(3) 제로보드제로보드 또한 국내에서 개발되어 무료 배포중인 게시판 제작 프로그램으로 리눅스 및 유닉스 계열의 홈페이지 서버 컴퓨터에 주로 사용되는데, 일부 php프로그램이 원격에 있는 php파일을 실행할 수 있는 결함이 있어 해커가 홈페이지 접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조하거나 컴퓨터를 조작할 수 있는 취약점이다.해결방안 : 게시판 환경 설정에서 허용된 확장자만이 업로드 되도록 보안설정을 적용한다.- httpd.conf 파일에서 Override FileInfo 와 Override All 의 설정을 삭제한다.- 보안 취약점이 존재하는 소스를 수정하거나, 보안패치를 다운 받는다.Ⅳ. OWASP Top 10과 국정원 8대 취약점OWASP Top 10은 국제 기구에서 취약점 중에서 빈도가 많이 발생되는 10가지를 선정한것이고 국정원 8대 취약점은 국내에서 많이 악용되었던 취약점 8가지를 선정한 것이다. 서로 중복되는 것도 있고 중복되지 않은 것도 있지만 포괄적으로 보면 OWASP TOP 10 항목에 모두 포함이 된다.1. OWASP Top 10과 국정원 8대 취약점 비교국정원 8
ARP(address resolution protocol )제출일전공과목학번담당교수이름목차Ⅰ. 서 론(1) RFC란??(2) RFC문서의 용어 정리Ⅱ. 본 론(1) ARP(Address Resolution Protocol)란??(2) ARP(Address Resolution Protocol)의 RFC 문서 이력(3) ARP(Address Resolution Protocol)의 RFC 826 문서 분석Ⅲ. 결 론Ⅳ. 참고자료Ⅰ. 서 론(1) RFC란??인터넷 문서인 RFC는 인터넷 연구와 개발 공동체의 작업 문서이다. 이 문서 내용의 대부분은 인터넷상에서 기술을 구현함에 있어서 요구되는 상세한 절차와 기본 틀을 제공하는 기술 관련 내용이다. 필요하면 전자우편을 통하거나 직접 특정 호스트에 접속하여 FTP로 다운로드할 수 있다. 한 문서에 RFC 문서 번호가 부여되고 출판되면, 수정되거나 같은 번호가 부여되는 일은 없다. RFC를 쉽게 구하기 위해서는 RFC 색인을 참조하면 된다. 색인은 어떤 RFC가 유일한 것인지 아니면 또 다른 RFC에 의해 갱신된 것인지를 나타내주고 있다.(2) RFC의 용어 정리① Proposed standard- 인터넷 공동체를 통해 많은 노력과 충분한 논의를 거친 안정된 규격② Draft standard- Proposed 표준이 적어도 2번의 독자적인 성공과 상호 운용성이 이루어진 규격③ Internet standard- Draft 표준에서 구현이 완전하게 이루어진 규격④ Historic- 최종규격에 의해 대치되었거나, 표준이 되기위한 단계를 통과하지 못한 것.⑤ Experimental- 인터넷 운영에는 영향을 주지 않고 실험적인 상황과 관련된 작업을 나타냄.⑥ Informational- 인터넷과 관련된 일반적이면서 역사적인 튜토리얼 정보가 들어있음.⑦ Obsoletes- 파기된 문서Ⅱ. 본 론(1) ARP(Address Resolution Protocol)란??ARP는 IP 네트워크 상에서 IP 주소를 물리적인 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다.(2) ARP(Address Resolution Protocol)의 RFC 문서 이력NumberDateMore infoStatusRFC 826a.k.a. STD 37November 1982Updated by RFC 5227, RFC 5494Internet StandardRFC 5494April 2009Updates RFC 826, RFC 951, RFC 1044........Proposed StandardRFC 1293January 1992Obsoleted by RFC 2390Proposed StandardRFC 2390September 1998Obsoletes RFC 1293Draft Standard(3) ARP(Address Resolution Protocol)의 RFC 826 문서 분석32-bit internet address -> 48-bit Ethernet address : ARP32-bit internet address -> 48-bit Ethernet address : RARPARP는 IP 주소에서 대응하는 하드웨어 주소로 유동적인 Mapping을 제공한다.유동적이라는 말을 쓰는 이유는 그것이 자동적으로 되고 application user나 시스템 어드민을 구분하지 않기 때문이다.RARP는 디스크가 없는 시스템에서 사용된다. 그러나 시스템 어드민의 수동적인 설정을 요구한다.4.2 예제ftp bsdi를 누를때마다 다음과 같은 상황이 발생한다.(bsdi -> 버클리 스탠다드 디자인 임플리먼트)1. FTP 클라이언트가 호스트이름(bs야)을 32-bit IP 주소로 바꾸기 위해 gethostbyname(3) 함수를 호출한다. 이 함수는 DNS에서 reslover라고 불린다. 이 러한 변환은 DNS나 작은 network를 사용해서 되는 것이다.2. FTP 클라이언트가 TCP에게 IP 주소와 연결을 해달라고 부탁한다.3. TCP가 IP 주소에게 IP 데이터그램을 보내는 방식으로 리모트 호스트에게 연결형 세그먼트를 보낸다.4. 목적지 호스트가 로컬 네트워크면(이더넷,토큰링, 또는 ptp링크의 다른끝) IP 데이터그램은 호스트로 바로 보내질 수 있다. 목적지 호스트가 리모트 네트워크면 IP 라우팅 함수는 IP 데이터그램을 보낼 가장 가까이 있는 라우터의 인터넷 주소를 결정한다.5. 전송 호스트는 32-bit IP 주소를 48-bit 이더넷 주소로 변환해야 한다. logical 인터넷 주소에서 그것에 대응하는 physical 하드웨어 주소로 바꿔야 한다. 이것이 ARP의 기능이다. ARP는 single network에 연결되어있는 많은 host와 라우터들의 broadcast networks를 위한 것이다.6. ARP는 ARP 요청이라고 불리는 이더넷프레임을 네트워크에 있는 모든 host에게 보낸다. 이것은 broadcast라고 불린다. ARP 요청은 목적지 호스트의 IP주소를 포함한다. 그리고 그 요청은 “이 IP 주소 소유자라면 하드웨어 주소를 가르쳐주시오”이다.7. 목적지 호스트의 ARP 레이어는 이 브로드캐스트를 받아들여서 보내는 사람이 하드웨어 주소를 요청하고 있는 것을 인식하고 ARP reply를 이용해 응답한다. 이 응답은 IP 주소와 그에 상응하는 하드웨어 주소를 포함한다.8. ARP reply가 받아들여져서 arp가 requst-reply가 변하게하는 IP 데이터그램이 지금 보내질 수 있다.9. ip 데이터그램은 목적지 host로 보내진다.Arp의 기초적인 내용은 네트워크 interface는 하드웨어 주소를 가지고 있다는 것이다.(이더넷이나 토큰링 interface를 위한 48-bit 값이다) 하드웨어 단계에서 변환되는 프레임은 올바른 interface로 전해져야한다. 그러나 tcp/ip는 32-bit 주소로 작업한다. 호스트의 ip주소는 커널이 호스트로 프레임을 보내도록 하지 못한다. 커널(이더넷 드라이버)은 프레임을 보내기 위해선 목적지의 하드웨어 주소를 알아야 한다. Arp의 기능은 다양한 네트워크 기술에 의해 사용되는 32-bit ip주소와 하드웨어 사이에서 유동적인 mapping을 제공한다.
AES 와 RSA 암호 방식제출일전공과목학번담당교수이름Ⅰ. AES(Advanced Encryption Standard)1. 개요□ 정의○ 미국의 연방 표준 알고리즘으로서 DES(Data Encryption Standard)를 대신할 차세대 표준 알고리즘임○ DES는 연방 표준으로 제정된 후 5년마다 안정성을 인정받으면서 표준으로 존속되어 왔으나, 1997년 이후 안정성에 대한 논란이 대두되자 NIST가 DES를 대체할 차세대 표준 암호 알고리즘 제정을 위한 프로젝트로 추진한 것이 AES임○ NIST는 기술된 AES의 일반 요구사항 외에 추가적으로 블록 길이가 128Bit인 대칭 블록 암호방식으로 128, 192 및 256비트 길이의 키를 지원할 수 있어야 함을 명시하였음○ 1차 평가에서 15개의 알고리즘이 채택되었고, 그 후 5개의 알고리즘으로, 최종적으로 벨기에 출신의 수학자 John Daemen, Vincent Rijmen 박사에 의해 개발된 Rijndael을 AES로 채택□ 특징분류AES-128AES-192AES-256키 길이(워드/바이트/비트? 4/16/128? 6/24/192? 8/32/256평문 블록 사이즈(워드/바이트/비트)? 4/16/128? 4/16/128? 4/16/128라운드 수? 10? 12? 14라운드 키 길이(워드/바이트/비트)? 4/16/128? 4/16/128? 4/16/128확장 키 길이(워드/바이트)? 44/176? 52/208? 60/240□ 설계적 특징○ 모든 알려진 공격에 대한 저항력○ 다양한 플랫폼에 대한 속도와 코드의 간결성○ 단순한 설계2. AES의 구조□ 전체 구조○ Rijndael 알고리즘은 Feistel 구조를 사용하지 않고 각 라운드에서 순열과 치환을 수행하는 동안 전체 데이터 블록이 병렬처리 됨○ 입력으로 주어지는 128Bit 키는 44개의 32비트 워드, w[i]로 확장되고 4개의 서로 다른 워드(128Bit)는 각 라운드에서 라운드 키로 사용○ 1회의 순열과 3회의 치환으로 구성된 4단계를 사용○ 암호화와 복호화 모두 라운드 키 추가 단계로 시작되고 4단계 모두를 포함하는 9회의 라운드가 이어지고, 3단계만을 포함하는 10번째 라운드가 이어짐○ 실제적으로 라운드 키 단계는 그 자체로는 강력하지 않으며 다른 3개의 단계와 연대하여 혼란, 확산 및 비선형성을 제공하지만, 키를 사용하지 않기 때문에 보안성을 제공하지 못함○ AES 암호는 블록의 변형된 XOR 연산(라운드 키 추가), 블록의 혼합(바이트 치환, 행 이동, 열 혼합), XOR 연산 등의 순서로 진행되어 효율적이고 안정성이 높음○ 복호화의 경우 바이트 치환, 행 이동, 열 혼합 단계들은 역함수를 이용하며 라운드 키 추가 단계는 A?B?B = A를 이용함○ 대부분의의 블록 암호에서 복호화 알고리즘은 확장키의 역순을 사용하여 이루어지지만 복호화 알고리즘과 암호화 알고리즘은 동일하지 않으며 둘 다 마지막 라운드는 3단계만으로 구성된다는 것이 AES의 특수한 구조임3. AES 암호화 과정□ 암호화 전체적인 구조□ SubBytes○ SubBytes 연산 과정은 암호문이 비 선형성을 갖도록 하기 위해 바이트 단위로 역 변환이 가능한 S-Box를 적용하는 것임○ 연산은 크게 두 단계로 구성되며 첫 번째 단계는, 각 바이트를 GF(2^{ 8}) 위의 다항식으로 표현하여 mod 8차 기약다항식 상에서의 역수를 구하는 것으로 확장 유클리드 호제법을 이용하여 수행하며 다음 단계는 GF(2) 위에서 Afine 변환을 적용하는 과정으로 아래의 행렬을 이용함○ S-Box는 256가지의 모든 가능한 8비트 값의 순열을 포함하고 있는 16x16 크기의 바이트 행렬을 사용하며 상태 배열의 각 바이트에서 왼쪽 4비트는 행 값, 오른쪽 4비트는 열값으로 사용됨○ 이 행과 열값을 인덱스로 이용하여 S-Box에서 유일한 8비트 출력 값을 선택함(예를 들어 16진수 {89}는 S-Box에서 8행, 9열에 해당하며, 그 값은 {A7}이므로 상태 배열의 값 {89}는 {A7}로 치환됨□ ShiftRows○ 상태 배열에서 첫 번째 행은 그대로 두고, 두 번째 행은 1바이트, 세 번째 행은 2바이트, 네 번째 행은 3바이트씩 왼쪽으로 순환이동 시킴○ 이 변환은 4바이트가 4개의 다른 열로 흩어지는 효과를 얻을 수 있음○ 아래는 ShiftRows의 예□ MixColumns○ MixColumns 연산은 상태 배열의 각 열을 GF(2^{ 8}) 상에서의 다항식들로 생각하고, 고정된 다항식 c(x)와 곱셈을 수행함○ 고정된 다항식 c(x)는 c(x) = 03 *x^{ 3}+x^{ 2}+x^{}+02로 계산됨○ 따라서 아래와 같은 곱셈 행태로 나타낼 수 있음□ AddRoundKey○ AddRoundKey 연산은 라운드 키와 현재 State를 비트 단위로 XOR를 수행하는 과정임○ 암호화 과정의 State와 라운드 키는 동일한 크기를 가지며, 1라운드를 수행하기 전에 초기 평문과 라운드 키를 XOR하는 과정이 필요하므로, AddRoundKey 연산은 전체 암호화 과정에서 Nr+1번 수행하게 됨○ 현재 State와 라운드 키의 AddRoundKey 연산과정은 아래와 같음4. AES 복호화 과정□ 복호화 전체적인 구조□ Inverse SubBytes○ 이 과정은 S-Box를 이용한 바이트 단위의 치환 연산인 SubBytes의 역변환임○ SubBytes에서 적용한 Afine 변환의 역 변환을 적용한 후, 각 바이트 단위로 GF(2^{ 8})상의 곱셈의 역을 취하여 구할 수 있음○ Inverse SubBytes에서 수행되는 변환을 행렬 형태로 표현하면 아래와 같음□ Inverse ShiftRows○ 첫 번째 행은 그대로 두고, 두 번째 행은 1바이트, 세 번째 행은 2바이트, 네 번째 행은 3바이트 오른쪽으로 순환이동 시킴○ 아래는 InvShiftRows의 예□ Inverse MixColumns○ MixColumns의 역 과정으로 다항식 c(x)^{ -1}와 곱셈을 수행함○ c(x)^{ -1}은 c(x) = {0B}x^{ 3} + {0D}x^{ 2} + {09}x + {0E}로 계산됨□ Inverse AddRoundKey○ 어떤 값에 XOR 연산을 취하고 동일한 값을 다시 XOR 연산하면 원래의 값이 복원되기 때문에 역 라운드 키 추가 변환은 순 라운드 키 추가 변환과 동일하게 수행함Ⅱ. RSA( Rivest Shamir Adleman )1. 개요□ 정의○ 공개키 암호화시스템으로, 암호화 뿐 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다.○ RSA는 소인수분해의 난해함에 기반을 두어, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없다.○ 1977년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레오널드 애들먼(Leonard Adleman)의 연구에 의해 체계화되었으며 RSA라는 이름은 이들 3명의 이름 앞글자를 딴 것이다.○ 암호화 할 때 쓰는 키와 복호화 할 때 쓰는 키가 다른 비대칭형 암호 방식의 일종이다.□ 특징○ 암호 열쇠와 복호 열쇠가 다르다.○ 암호 열쇠가 있어도 복호가 되지 않는다.○ 공개되어 있으므로 상대에게 넘길 필요가 없다.2. RSA의 구조□ 전체 과정○ B에게 평문 M을 비밀리에 전달하려는 A는 공개목록에서 B의 공개키를 찾는다.○ 암호문을 계산하여 B에게 전송한다.○ B는 A로부터 수신한 암호문을 자신이 보관하고 있는 개인키로 평문으로 복원한다.3. RSA 암호화, 복호화□ 전체 과정 표가입자 A공개목록KeA , nA , KeB , nB가입자 BpA , qAnA=pA· qAØ(nA) = (pA ? 1)(qA ? 1)gcd(KeA , Ø(nA)) = 1KeA · KdA≡ 1 mod Ø(nA)C ≡ MKeB mod nBCpB , qBnB=pB· qBØ(nB) = (pB ? 1)(qB ? 1)gcd(KeB , Ø(nB)) = 1KeB· KdB≡ 1 mod Ø(nB)M ≡ CKdB mod nB○ 두 개의 서로 다른 큰 소수를 선택한다. 이를 각각 p , q 라고 하자○ 두 개의 소수 p , q를 곱하여 새로운 수 n을 계산한다 즉, n = p*q 라 한다.○ (p-1) * (q-1)와 서로소 이고 n 보다는 작은 Ke 를 구한다.○ KeA · KdA≡ 1 mod Ø(nA) 식을 이용해 Kd 를 구한다.○ Ke(공개키) , Kd(개인키) , C ≡ MKeB mod nB(암호화) , M ≡ CKdB mod nB(복호화)