프로그래밍[Univ] 343

[컴퓨터보안] 현실 프로토콜 Part 1. PGP & SSL

* 전자메일의 보안(PGP) - 목표 > 다른 사람이 보지 못하게 한다.(기밀성) > 보낸 사람이 자신이 아는 그 사람인지를 증명해준다.(인증) > 메세지의 무결성을 증명해준다.(무결성) - 이를 위해서 암호화와 전자서명을 사용한다. - 암호화 : 메세지를 암호화한다 > 전에 배웠듯이, MAC을 사용한다. -- 송신 -- 1) 대칭키를 생성하여, 생성된 대칭키로 메세지를 암호화한다. 2) 대칭키는 상대방의 공개키로 암호화한다. 3) 1)과 2)의 생성물을 하나로 합쳐서 전송한다. -- 수신 -- 1) 자신의 개인키로 공개키를 찾는다. 2) 공개키로 메세지를 복화하한다. - 전자서명 : 송신자 정보확인 및 메세지의 무결성 증명 > 이 방법 역시 전에 디지털 서명때 배운 것과 동일하다. -- 송신 -- 1)..

[컴퓨터보안] 인증 프로토콜

* Protocol - 특정 상태에서 지켜야할 규칙들(eg. Human, networking, security) - 프로토콜의 결함은 미묘한 문제이다. > 하지만, 몇몇 보안 프로토콜의 결함은 심각한 오류를 가지고 온다. > 구현시 환경에 따라 에러가 발생하는 경우가 많다. - 이상적인 보안 프로토콜 1) 보안 요구사항을 만족 2) 효율성이 높아야 한다 > 계산 과정을 최소화 해야한다. 3) 견고성 : 환경이 변해도 동작해야 하며, 공격을 당하는 중에도 동작해야 한다. 4) 사용용이성, 구현 용이성, 유연성, .. ETC ※ 모든 조건을 충족하기는 힘들다. * 인증 방법 - 상대방이 진짜인지를 판별하는데 사용하는 방법을 인증 방법이라고한다. - 암호, 스마트카드, 생체인식(홍채, 지문, 얼굴)등을 이에 ..

[컴퓨터보안] Access Control part 3. 제한 방법/도구

* CAPTCHA - Completely Automated Public Turing test to tell Computers and Human Apart - 완전히 컴퓨터 주관으로 Turing Test를 하는데 사람은 통과하지만 컴퓨터는 통과하지 못하게 하는 것 - 컴퓨터가 문제를 만들고 책점을 하지만 자신은 통과할 수 없다.(Paradox) ⓐ 사용처 - bots가 무더기로 투표하는 것을 막는데 사용한다. - 무료 이메일 서비스에서 스팸성으로 무한정으로 이메일 등록하는(Bot 생성)을 방지한다. - 검색엔진에 의해 자신의 HTML을 숨기기 위해서 사용한다. ⓑ 원칙/법칙 - 인간은 쉽게 해결해야 한다. - 기계는 통과하기 힘들거나 불가능해야 한다. - 사람도 통과하지 못하는 문제에 대비하기 위해 여러개..

[컴퓨터보안] Access Control part 2. Authorization

* Authorization - 접근 제어 : 접근 범위를 제한(Resource 분배 문제) - 보호 받아야 할 시스템의 데이터와 자원에 대해서 행해지는 동작을 규제 - Access control = Authorization + Authentication 이지만, Authorization만을 Access Control이라고 부르기도 한다. - 목적 : 데이터와 자원에 손상을 입히는 동작을 제어하기 위해서. 주체 : 동작을 수행하는 대상 객체 : 주체가 접근하는 대상 reference monitor : 접근을 허락하거나 거부 Access permission : 접근 제어 정책 * 접근 제어 행렬 (Access Control Matrix) - Lampson's Access control matrix > 주체..

[Architecture] 컴퓨터 성능 평가

* 컴퓨터 성능 평가 - 컴퓨터의 성능을 평가하는 일은 단순하지 않다. - 보는 시점에 따라 다양한 결과가 나올 수 있다. - 응답시간(실행시간), 처리량, ... 등 다양한 시점이 존재한다. * 성능향상 1 : 처리량 and 응답시간 - 실행시간이나 처리량이 변화하면 다른 쪽에도 영향을 미친다. Case 1) Processor를 빠르게 업그레이드 한다. > 응답시간이 단축되고 이로인해 처리량도 증가한다. Case 2) 시스템 Processor를 하나더 추가한다. > 처리량이 증가하게 되고, 이로인해 응답시간이 감소한다. * 성능형상 2 : 상대적인 성능 Performance ∝ 1 / Execution Time - 성능은 실행시간과 반비례한다. ( 실행시간이 작을 수록 성능은 좋다.) - 같은 프로그램..

[컴퓨터보안] Access Control part 1. Authentication

* Access Control - 접근 제어 - 인증과 인가가 존재 - 때론, Access Control = Authorization으로 사용되기도 한다. ⓐ 인증(Authentication) - 접근이 허용이 될지를 결정 - 내가 아는 그 상대방인가? ⓑ 인가(Authorization) - 사용자는 무엇을 할 수 있는가? - 행동/동작을 제한 example) LINUX > Linux login // 인증 > 각 계정마다 동작범위가 제한 // 인가 * Authentication - 기계가 사람을 인증하는 법에 중심을 둔다. - 다음을 사용하여 인증을 한다. 1) 사람이 알고 있는 것 / 비밀번호 2) 사람이 가지고 있는 것 / 스마트 카드 3) 사람 자신 자체 인 것 / 지문 ---------------..

[Architecture] ISA (Instruction set architecture)

* Design Principle - smaller is faster : 작은 것일 수록 빠르다 - regularity : 단순한 일을 반복 실행 - Good common part : 항상 수행되는 일에 걸리는 시간ㅇ르 단축 - Good design demands compromise(타협) * Controller 결함 - CPU결함. 따라서, Controller는 잘 만들어야 한다. - 이는 ISA와 밀접한 연관 관계를 같는다. > 컴퓨터에서 어떤 명령이 수행될 수 있는 가를 알려준다. > 컴퓨터를 구현하기 위해서 어떤 하드웨어 기능이 필요한가를 알려준다. * 명령 표현 형식 - 각각의 명령을 이진수로 어떻게 표현되는가를 규정하는 방법 - 하나의 명령 = "연산조작(operation)" + "연산의 대상..

[컴퓨터보안] 기타 보안에서 알아야할 사항

* Secret Sharing - 비밀 공유법 : n-1차 다항식은 m개의 점에 의해서 결정된다. - "n out of m" 형식의 비밀 공유법이 존재한다. // 결정식 : n-1차 다항식, 공유하는 사람의 수 : m 1) 2 out of 2 // 1차식 사용. 2명이 점을 공유 - 하나의 점을 이용해서 k값을 찾는 것은 불가능하다. - (n 3명중 2명이 함께 Key값을 발효 하길 원할 경우 Key값이 발효가 된다. * Random number - 난수 : 임의성을 갖는 수들의 집합중 일부 - Random : 목적, 원인, 질서, 예측성이 없는 것을 의미한다. - 난수는 Key값을 생성하는 곳에 많이 사용된다. - 추후에 배울 nonce값 또한 랜덤값이다. - 난수는 임의성과 비예측성을 가져아하며, 임..

[Architecture] 명령 수행

이번엔 어떻게 작성된 보드가 일을 수행하는지 알아보도록 한다.이를 이용하여 시스템의 구성 및 프로그램의 수행과정을 이해하도록 한다. * Program 실행 과정 - 프로그램 변화 및 CPU실행까지의 경로 - 프로그램 실행 1. 메모리에서 명령어 및 데이터를 읽어온다.(Fetch) 2. 명령어를 해독한다.(Decode) 3. 명령어를 실행한다.(Execute) // 실행 작업의 속도가 빠르기 때문에 clock 표시시 생략된다. - 세부 실행 1. CPU는 PC(Program Counter Register)에 시작 위치를 저장한다. 2. CPU는 PC값을 이용하여 Address Bus에 시작 주소를 보낸다. 한편으로 Controller에 Read 명령어를 보낸다. 3. Memory는 주소를 해석(Decode..