PKI(Public Key Infrastructure) - 공개키 기반구조란? 대칭형(비밀키 암호) 알고리즘은 암호화하는 키와 복호화 하는 키가 같은 대칭키 알고리즘을 사용하여 정보를 교환하였는데 구현이 상대적으로 쉽고 빠르다는 장점이 있지만, 키를 해킹으로 빼앗겨버린다면 제 3자에게 정보가 쉽게 노출될 수 있다는 단점이 있습니다. 그래서 암호화를 하는 키와 복호화키를 따로 가져가는 기술이 등장 - 이런 기반을 마련해둔 것이 PKI 입니다. Private Key : 누구와도 공유하지 않고 자신만이 가지고 있는 키 Public Key : 공개적으로 공개가 되어 있는 키, 누구나 공개키를 얻을 수 있음 PKI 구성 요소 인증기관 인증서를 발행, Private key를 보증하기 위해 쌍이되는 Public Ke..
인증서 표준 규격 x509 x509란 ITU-T가 만든 PKI(Public Key Infrastructure, 공개키기반구조)의 표준입니다. 인증서의 유효성을 결정하기 위해 계층적 신뢰를 사용합니다. 최상위 인증기관은 자체 서명한 인증서를 발행하고 최종 사용자 및 중간 인증기간의 인증서는 상위의 인증기관이 발급합니다. ITU-T(국제전기통신연합 전기통신표준화부문) 모든 전기통신 분야에 적용하는 표준을 만들어내는 단체 PKI-공개키기반구조(Public Key Infrastructure)는 기본적으로 인터넷과 같이 안전이 보장되지 않은 공개된 망 사용자들이 한쌍의 공개키와 개인키를 사용함으로써, 안전하게 데이터를 교환할 수 있게 합니다. 양방향 암호화에서 공개키는 만인에게 공개되어 있으므로 아무나 쉽게 암호..
전자서명이란? 어떤 데이터가 정말 그 사람의 것이 맞는지를 보장해주는 것이다. (보낸 당사자가 보냈다는 것을 확인하는 절차) 이 때 비대칭키(공개키) 암호화 기술이 사용된다. 평문을 암호화 해쉬 함수 (Cryptographic Hash Function) 으로 축약한다. 축약된 결과를 개인키(Private Key)로 암호화(Encrypt) 한다. 암호화한 결과와 평문(Plain Text)를 함께 받을 사람에게 보낸다. 받은 사람이 암호화한 결과를 공개키로 복호화(Decryplt) 하여 축약된 결과를 얻는다. 받은 사람이 평문을 암호화 해쉬 함수로 똑같이 축약을 하고 4번에서 얻은 결과값과 비교하여 확인한다. 💡 참고링크 https://chickenpaella.tistory.com/40 https://cra..
대칭형(비밀키 암호) 알고리즘 (Symmetric Key Algorithm. Ex : 3DES, AES) 평문(Plain Text) : 아무 변조가 가해지지 않은 원본 문서 싸이퍼 텍스트(Ciper Text) : 변조된 문서 (암호화된 문서) 암호화와 복호화 시 한개의 같은 키를 사용하는 것이 가장 큰 특징이다. (※ 알고리즘 자체가 상대적으로 비대칭형에 비해선 가벼운 편) 수신자 측과 송신자 측간에 서로 비밀키 교환이 있어야 하는데, 이때 중간자 공격이 발생할 가능성이 존재한다. 중간자 공격 B가 대칭키 방식으로 암호문을 만들었다. A에게 인터넷을 통해서 키를 전달 Cracker 에게 이 과정에서 키와 메시지가 유출될 수 있다. 대칭형 알고리즘 에서 암호화를 하는 방식은 2가지가 있다. 스트림 암호 알..
Hash 란? Hash → 다지다. (어떤 데이터를 다지면 원래 상태로 되돌릴 수 없다.) 대표적인 단방향 암호와 기법으로 Hash Function(알고리즘)을 이용하여 임의의 길이의 데이터를 고정된 길이의 암호화된 문자열(비트열)로 바꾸는 것을 의미한다. 1) 복잡하지 않은 알고리즘으로 구현되어 있기 속도가 빠르다.(빠른 만큼 무차별 대입 공격을 받을 수 있다.) 2) 암호화는 수행하지만 복호화는 불가능한 알고리즘 무결성(Integrity) 어떠한 정보가 원본으로 부터 회손되었거나 조작되지 않았는지 파악할때 hash를 유용하게 사용한다. (※ Ex : MySQL을 다운로드 받을 때 다운로드 받는 파일이 진짜 올바른 파일인지 hash 알고리즘을 통해 만들어진 값을 올려놓아서 사용자는 파일을 hash 알고..
암호(Cyptography)란? (crypto : 비밀 , graphy : 방법 → 비밀을 지키는 방법) 뜻 : 비밀을 지키는 방법 암호의 특징은? 기밀성(Confidentiality) : 암호화된 내용을 알 수 없어야 한다. 무결성(Integrity) : 조작, 회손 되지 않고 내용이 원본과 같아야 한다. 인증(Authentication) : 권한이 있어야 접근할 수 있어야 한다. 부인봉쇄(non-repudiation) : 송수신자의 송수신 사실 부인을 봉쇄해야 한다. 가용성(Availabillity) : 정합한 요구 시 서비스 제공을 해야한다. 평문(Plaintext) : 해독 가능한 형태의 텍스트 (Ex : “123456”) 암호문(Ciphertext) : 해독 불가능한 형태의 텍스트 (Ex : “..
컴파일이란? 인간이 이해할 수 있는 언어로 작성된 소스코드를 CPU가 이해할 수 있는 언어(기계어)로 변환 하는 작업을 말한다. 소스코드는 컴파일 과정을 통해 기계어로 이루어진 실행 파일이 되며 이 파일을 실행하면 실행 파일 내용이 운영체제의 Loader를 통해 메모리에 적재되어 프로그램이 동작한다. 컴파일 과정 컴파일 과정은 4가지 단계 전처리 과정 - 컴파일 과정 - 어셈블리 과정 - 링킹 과정으로 나뉜다. 전처리 과정(Pre-processing) 전처리기(Processor)를 통해 소스 코드 파일(*.c)을 전처리된 소스 코드 파일(*.i)로 변환하는 과정이다. 1) 주석 제거 2) 헤더 파일 삽입 #include 지시문을 만나면 해당하는 헤더 파일(e.g. stdio.h)를 찾아 헤더 파일에 있는..
프로세스란? 컴퓨터에서 실행 중인 하나의 프로그램을 의미하며 프로그램이 실행되는 과정은 아래와 같다. 디스크에 있는 프로그램이 운영 체제에 의해 메모리에 로드됨 - > 인스턴스화 메모리 관리 장치에 의해 할당된 메모리 공간으로 바이너리 실행 코드가 올라감 -> 프로세스화 (※ 프로세스에는 프로세스 ID와 같은 프로그램이 실행되는 데 필요한 모든 정보를 포함한다.) CPU에 의해서 프로세스가 실행되며 CPU 스케줄러에 따라 프로세스에 포함된 명령어들을 수행한다. 프로세스의 메모리 영역 프로세스는 프로그램의 코드를 실행하기 위해 필요한 RAM의 메모리 공간을 할당받으며 다음과 같이 분류된다. Code 영역 실행할 프로그램의 코드(명령어)가 기계어 형태로 저장되는 영역 Data 영역 코드에서 선언한 전역 변수..