본문 바로가기

Kitri_NCS3기 보안과정

170403 네트워크 기초(용어와 네트워크 접속장치) 1. 네트워크 사전적 의미 : 컴퓨터를 서로 연결하는 조직 체계, 통신망 네트워크를 사용한 효과 - 데이터 공유- 주변장치 공유- 능률적인 통신- 손쉬운 백업 네트워크 관련 용어 시스템 : 내부규칙에 따라 능동적으로 동작하는 대상인터페이스 : 사람과 시스템을 연결하는 표준화된 접근방법전송매체 : 시스템끼리 데이터를 전송하기 위한 수단프로토콜 : 전송매체를 통해 데이터를 전달하기 위한 특정 규칙네트워크 : 프로토콜을 사용하여 데이터를 교환하는 시스템의 집합인터넷 : 네트워크가 연결되어 유기적으로 동작하는 통합 네트워크 계층모델 * OSI 7계층 모델 2017/04/04 - [NCS보안/Network] - 170404 네트워크 기초( 계층구조 , OSI 참조모델, TCP/IP ) * 프로토콜과 인터페이스프로.. 더보기
170329 키 관리 2017/03/28 - [NCS보안/정보보호개론] - 170328 공개키암호(knapsack, RSA) 이전에 공개 키 암호기법을 살펴 보았는데 그 키에 대해 어떻게 관리하는지 알아보도록하자. 공개키는 키분배 문제를 해결할 수 있는 효과적인 도구다. 공개 키를 어떻게 분배 할 것인가. 그리고 암호 시스템을 이용한 비밀 키 공유방법에 대해서 살펴보자. 공개키의 분배public anouncement, publicy available directory, public key authority, public key certificates 의 네가지 방법을 살펴보자. - public anouncement : 커뮤니티 등에 무분별한 공개 → 아무나 접근 가능하기 때문에 위조에 취약하다. - publicy availa.. 더보기
170329 전자서명 필요성- 사용자 간의 분쟁 (부인방지 필요)- 인증의 한계 기본 정의 - 전자 서명 : 전자문서와 전자서명이 결합된 스트링- Signing + Verification algorithm 조건Integrity : 서명내용 인증가능 ( hash로 )Unforgeability : 서명자 확인가능 (위조 불가)Non-repudiation : 제 3 자에 의한 분쟁조정 가능 (부인방지) 특징 - 디지털 데이터의 복사 가능 (원본인지 알아내기 어려움)- 데이터에 대응되는 서명 필요 → 알고리즘으로- 사용자만 서명 생성 가능 → 사용자의 비밀정보 사용- 서명을 쉽게 확인할 수 있어야 한다. → 공개된 정보 사용- 공개키 암호를 반대로하는 것과 비슷 전자서명 기법 - 메세지 부가형수신측에서 메세지 복구 - 메세지 복구형 더보기
170328 공개키암호(knapsack, RSA) 대칭키 암호의 문제점 - 전제 조건으로 안전한 채널이 필요함. - 사용자가 많으면 키의 개수가 너무 많음 - 키관리가 힘듦 - 새로운 사용자 추가 어려움 - 서로 모르는 사람들끼리 통신하기 위해 키를 받아야함 공개 키 암호의 개념 - 암호화키 와 복호화 키가 다름 ( 대칭키암호는 암호화 복호화를 같은 키로 함) - 암호화키로 복호화키를 얻을 수 없음 - 암호화 키 공개 , 복호화키 보관 - 키 공유에 대한 어려움을 해결 대칭키에서는 암호화 복호화 키를 모두 같은걸 썼다. 하지만 실제로 사용 하려 할 때는 네트워크로 엮인 수많은 사람이 사용하기 위해선 제한사항이 많다. 대칭키는 공개키와 개인키를 구분하여 문제해결을 제시했다. 공개 키 암호의 성질 - One Way function y = f(x) 는 쉽지만.. 더보기
170328 해쉬함수 1. 해시함수(hash function)사람이 자신을 증명할 때 지문을 사용하는 것 처럼 전자서명등과 함께 이용하여 인증에 효율적으로 활용하기 위해 사용한다. 적은 비용: 어떤 입력 x 에 대해 hash(x)를 계산하기 쉬워야 함.일방향(단방향)성: hash(x)=y 에서 x 값을 찾기 어려워야 한다.약한 충돌 방지: hash(a)=hash(b) 이면서 a 와 다른 b 를 찾기 어려워야 한다.강한 충돌 방지: hash(a)=hash(b) 이면서 a!=b 인 a 와 b 를 찾기 어려워야 한다. 해시함수는 압축을 한다는 특징을 가지고 있다. 어떤 한 내용(긴 문장)에 대해 해시함수를 사용하면 압축이된 길이가 고정된 결과물(Digest)이 나오게 되는데 결과물을 보고 압축되기 이전에 내용을 알 수 없어야 한다.. 더보기
170327 블록암호화 DES 1. 블록암호란 ? 평문 블록 전체를 가지고 동일한 길이의 암호문을 블록생성하는 암/복호화 방식 블록암호화 vs 스트림암호화 스트림 암호화 - 한번에 1비트 혹은 1바이트 씩 암호화- 키의 길이는 스트림의 길이만큼의 크기를 가짐. 블록암호화 - 평문 블록을 가지고 같은 크기의 암호문블록 생성 - 대부분 64비트이거나 128비트 블록암호의 원리 치환 : 평문을 다른 원소에 사상순열 : 평문은 순서대로 배치확산과 혼돈 확산 : 평문의 구조가 암호문에 영향을 미치게끔.혼돈 : 암호문의 통계적 구조와 암호 키 사이의 복잡. * 많은 블록암호가 Feistel 구조를 띄고 있음. - 동일한 라운드 수로 구성되어 동작- 데이터 절반 치환 후 데이터 두개의 반을 교환하는 순열 수행- 원본의 키는 확장되어 각 라운드마다.. 더보기
170327 고전 암호 기법 1. 대칭 암호 모델 : 암호화와 복호화 과정에 동일한 키를 사용하는 암호화 시스템 * 평문 → 알고리즘 + 비밀키 → 암호문 → 비밀키+알고리즘 → 평문 암호 시스템의 특성 ( 평문 → 암호문 ) - 평문을 암호문으로 바꾸는데 사용되는 동작 치환(Substitution) : 한 단어와 매칭되는 단어로 바꿈 전치(Transposition) : 위치를 바꿈 - 사용한 키의 수Single-Key : 대칭키/비밀키 암호, 관용암호Two-Key : 비대칭키/공개키 암호 - 평문이 처리되는 방법블록 암호스트림 암호공격 유형- 암호해독 : 알고리즘 본질을 공략 / 평문 , 키값 추론 공격 - 전사적 공격 : 특정 암호문에서 이해할 수 있는 평문을 알아낼 때 까지 모든 키에대해 시도함전사적 공격은 키 길이가 길어짐에.. 더보기
170327 컴퓨터 보안과 암호 1. 컴퓨터 보안에 대한 정의 - 정보시스템 자원 ( 하드웨어, 소프트웨어, 펌웨어, 정보/데이터 , 통신) 에 대한 무결성, 가용성, 기밀성 유지와 같은 목적을 달성을 위해 자동화된 정보 시스템이 적용되는 보호 2. 컴퓨터 보안의 세가지 목적(보안의 3요소)- 기밀성 ( Confidentiality ) - 사용 예 )암호 데이터 기밀성 : 권한이 없는자에게 노출되거나 소유할 수 없게 함 프라이버시 : 개인과 관련된 정보에대해 수집,저장,노출되는지 통제하거나 영향력을 행사할 수 있도록 함. (나만 알고 있는 내용을 다른사람이 몰래 엿보게 되거나 내용을 알게 되면 기밀성이 침해되었다고 할 수 있다.) → 기밀성 보장을 위해서는 '암호'를 사용해야 한다! 과거 네트워크가 발달하지않았을 시기에는 정보상의 개인.. 더보기
170321 Json : JSON은 데이타를 교환하는 한 포맷으로서 그 단순함과 유연함 때문에 널리 사용되고 있다. import json # python → Json Json → python 의 인코딩, 디코딩이 가능하다 Python은 기본적으로 JSON 표준 라이브러리(json)를 제공하고 있는데, "import json" 을 사용하여 JSON 라이브러리를 사용할 수 있다 인코딩 python → Json 으로 바꾼다.Python Object (Dictionary, List, Tuple 등) 를 JSON 문자열로 변경하는 JSON Encoding 이라 부른다. test에 넣고싶은 내용을 담아서 .dumps()로 json문자열로 변경해 준다. 이렇게 출력된 문자열은 한 줄로 나열되서 나올것이다. .dumps() 에 indent.. 더보기
170321 urllib, urllib2 활용 (pokedex100 data 활용하기) urllib2는 URL을 가져오는 모듈.urlopen 함수의 형태로 제공된다. import urllib2response = urllib2.urlopen('http://www.naver.com/')html = response.read() 이런 간단한 방법으로 사용이 가능하다. ('http:'뿐 아니라 'ftp:', 'file' 등으로 시작하는 URL에도 사용이 가능하다) urllib2는 사용자가 만든 http 요청을 대표하는 request 객체를 흉내낸다.(가져오고싶은 url을 나타내는 요청 객체를 만드는것이 가장 단순한 형태.) * 'urlopen'요청 → 응답객체(file종류) 반환 - 이 응답에 대하여 .read()를 호출 할 수 있다는 뜻 req = urllib2.Request('ftp://exam.. 더보기