Computer Science

    [CS][알기 쉬운 정보보호개론 3판] Chapter13. 난수

    난수의 용도 키 생성 난수를 안쓰면 인간의 의지가 들어가서 예측이 쉬워진다. 대칭 암호나 메세지 인증 코드 (공개X) 키 쌍 생성 공개키 암호나 디지털 서명 초기화 벡터(IV) 생성 블록 암호 모드인 CBC, CFB, OFB 비표(nonce) 생성 재전송 공격 방지나 블록 암호의 CTR 모드 솔트 생성 패스워드를 기초로 한 암호화 (PBE) 일회용 패드 패딩에 사용되는 열을 생성 아무리 강한 암호 알고리즘이라도 키가 공격자에게 알려져 버리면 아무 의미가 없다. 난수를 사용해서 키를 만들어, 공격자에게 키를 간파당하지 않도록 한다. (사람의 의지↓) 현재 사용되고 있는 대부분의 보안 프로토콜에서 난수가 사용되고 있다. 암호 알고리즘에서 각종 키 생성 in protocol 프로토콜에서 재전송 공격(Repla..

    [CS][알기 쉬운 정보보호개론 3판] Chapter12. Key

    Key의 안정성 암호(Cryptography) 기술을 사용하려면 대부분 키(key) 가 사용된다. 가역적으로 만들기 위해서 평문 ↔ 암호문 키 값의 크기보다 키 공간(key space)의 크기가 더 보안성과 밀접한 관련이 있다. 키는 길이가 아니라 “가능한 키들의 집합”이 더 중요한 요소 키 공간의 크기를 키우기 위해서는 키의 bit 수를 키우는 것이 중요하다. AES, DES 등의 대칭키 암호화 알고리즘 : 키의 자리수가 곧 키 공간의 크기와 연결된다. 예를 들어 AES-256은 키의 길이가 256비트이므로 키 공간의 크기가 2^(256), trivial한 것 빼고는 다 가능하다. RSA나 Diffie-gellman과 같은 공개키 암호화 알고리즘 : 소수의 크기와 수학적 특징이 키 공간의 크기와 연결된..

    [CS][알기 쉬운 정보보호개론 3판] Chapter11. 인증서

    공개키 암호를 위한 키 분배의 한계 공개키 암호의 가장 큰 역할은 키 분배 문제를 해결할 수 있다는 것이다. 공개키 암호 기반의 키 분배는 다음 두 과정으로 이루어져 있다. 공개키의 분배 공개키 암호를 이용한 대칭키 분배 공개키 인증서 공개 키 암호를 이용하면 키 분배 문제를 해결할 수 있지만, 누구라도 공개 선언을 위장할 수 있다는 한계점이 있다. 이를 방지하기 위해 제 3자 기관인 Certificate Authority(CA)를 두어 운영하고 CA로부터 공개키의 인증서(Certificate)를 발급받는다. 인증서는 대체로 키 소유자의 ID, 공개키, 그리고 CA가 서명한 값으로 구성되어 있다. (필수) 인증서는 누구나 검증할 수 있도록 설계되어 있다. 공개키 인증서 사용자의 공개키를 인증하기 위한 인..

    [CS][알기 쉬운 정보보호개론 3판] Chapter10. 디지털 서명

    디지털 서명의 필요성 MAC을 이용한 메세지 인증의 한계 제 3자에게 증명하기 부인 방지 (Von-repudiation)이 불가능 위의 문제가 발생하는 이유는 MAC이 대칭키 방식이기 때문이다. MAC을 위해 사용되는 대칭키는 Alice와 Bob만이 공유하고 있고, 그 키를 갖고 있어야 증명과 검증이 가능하다. 거꾸로 생각하면 그 키를 갖고 있지 않으면 검증이 불가능한 상황 따라서 메세지 작성만이 서명하고, 누구나 검증할 수 있는 새로운 메세지 인증 시스템이 필요하다. 공개키 암호화 방식은 누구나 암호화할 수 있고, 수신자만이 복호화 할 수 있는데 이것을 역이용하여 디지털 서명을 설계 개인키로 나만 무결성을 증명 → 공개키로 다들 검증 가능 = 공개키 암호화 방식 사용 서명키 디지털 서명 Handwrit..

    [CS][알기 쉬운 정보보호개론 3판] Chapter09. 메세지 인증 코드 (MAC)

    Prove(증명)과 Verify(검증) 증명 : 송신자가 수신자에게 메세지를 인증 받는 행위 검증 : 수신자가 송신자의 메세지를 검사하는 행위 Alice가 Bob에게 메시지를 보내고, Bob이 Alice의 메시지를 검사한다고 하자. Alice는 Bob에게 메시지가 변하지 않았다는 것을 "증명"하게 되며, Alice를 증명자 (Prover) 라고 부른다. Bob은 Alice가 보낸 메시지가 변하지 않았다는 것을 "검증"하게 되며, Bob을 검증자 (Verifier) 라고 부른다 메세지 인증 코드 (MAC) 해시 함수 사용 입력 : 메세지, 공유하는 키 출력 : 고정 비트 길이의 코드 프로세스 Alice와 Bob 공유하고 있는 키 K와 해시 함수 H()가 있다고 하자 Alice가 Bob에게 메시지 M을 보낼..

    [CS][알기 쉬운 정보보호개론 3판] Chapter08. 일방향 해시함수

    데이터의 무결성 데이터가 함부로 위/변조 되지 않았다는 것을 증명 무결성 검사를 위한 방법으로 다른 안전한 장소에 복사본을 저장하는 방법이 있다 → 공간 낭비의 문제점 파일로부터 나올 수 있는 작은 값을 보관하기 → 해시값,지문,Message Digest 이러한 값을 만들어내는 함수를 해시 함수라 한다. 해시 함수 함수 H(x)가 x가 임의의 길이라도 함숫값의 길이는 항상 일정할 때 해시값의 길이는 메세지의 길이와는 관계 X 입력값은 모든 디지털 데이터가 가능 (임의+값X 것까지) 해시 함수와 안전한 해시 함수 만족해야 하는 성질 임의 크기의 데이터 블록에 적용 일정한 길이의 출력 계산 용이성과 구현 가능성 해시 함수가 ‘안전하다’ 라고 말할 수 있는 성질 비가역성 : 한 방향으로만 계산, 역함수X, H..

    [CS][컴퓨터 네트워킹 하향식 접근] Chapter2.7 socket programming with UDP and TCP

    Chapter02. Application Layer Socket Programming Application과 Transport 사이에 있는 socket application process와 end-end-transport protocol 사이의 문 app 간의 통신이 가능하게 함 UDP unreliable datagram UDP에서 segment 생성 → IP로 보냄 Query 하는 애들은 씀 순서 변경은 안하지만 순서대로 도착 안할 수도 client와 server 사이에 미리 link 설정 X 데이터 보내기 전에 no handshaking 보내는 packet마다 도착지 주소가 적혀 있어야 함 (IP주소&Port번호) explicitly하게 = 서버만 data의 lost/receive 된 게 out of..

    [CS][컴퓨터 네트워킹 하향식 접근] Chapter2.6 video streaming and content distribution networks

    Chapter02. Application Layer Video Streaming and CDNs: context video streaming 앞으로 play하는 동안 뒤를 download하여 바로바로 보자는 취지 CDN content가 user 가까이에 있을수록 delay가 적어서 좋다 여기저기 cluster을 만들어 저장 문제점 scale → distributed 방식 쓰자 heterogeneity → 사용자 환경이 달라서 같은 content를 주기 어려우니 service option이 필요 해결책 : distributed 환경, application-level infrastructure Multimedia : video video : 접지 이미지를 빠르게 지나가게 하여 움직인다고 인식 digital ..

    [CS][컴퓨터 네트워킹 하향식 접근] Chapter2.5 P2P applications

    Chapter02. Application Layer Peer-to-peer architecture client가 server가 되기도 한다 server가 항상 켜져 있을 필요 없다 Host가 직접 소통하기도 한다 (server를 안 거친다) peer는 요구 받기도 요구 하기도 한다 → 다운로드/업로드 모두 한다 self-scalability : 잘 작동하고 있다고 알려주고, peer가 많아져도 문제 없다고 말할 수 있는 징표, 새로운 peer가 새로운 service capaciry를 가지고 옴 peer은 간헐적으로 연결되며 IP 주소를 자꾼다 Ex. P2P 파일 공유, 스트리밍, VoIP P2P file distribution : BitTorrent 상업용 cloesed protocol file dist..

    [CS][컴퓨터 네트워킹 하향식 접근] Chapter2.4 The Domain Name System

    Cahpter02. Application Layer DNS : Domain Name Server 많은 DNS server들의 계층 구조로 구현된 분산된 DB application layer protocol : host가 통신하여 이름을 확인 DNS service 목록 hostname ↔ IP 주소 변환 host aliasing(별칭) : canonical(실제이름) 따로 존재 mail server aliasing load distribution : 서버가 많을 때 골고루 서버 이름 부여, 중복 웹 서버의 경우 여러 IP 주소가 하나의 정식 호스트 이름과 연관 → DNS가 이 IP 주소 집합을 가짐 centralize가 아닌 이유 single point of failure이 있을 수 있어서 → 서버가 1대..