본문 바로가기

728x90

전체 글

(108)
[정보보안] 보안에서 Hash function이란? 해시함수중에는 암호학적 해시함수(Cryptographic Hash Function)와 비암호학적 해시함수로 구분되곤 한다. 암호학적 해시함수의 종류로는 MD5, SHA계열 해시함수가 있으며 비암호학적 해시함수로는 CRC32등이 있다. 보안에서 Hash function을 왜사용해야 하나? alice가 M을 전자서명 하여 Bob에게 보낸다. S = [M]alice to bob : M을 alice의 개인키로 암호화하여 M에게 보낸다. Bod은 S값을 alice의 개인키로 푼다. M' ={M}alice Alice bob M M S =[M]alice => M ={S}alice => 이런방식으로 했을때, M이 크면, 계산이 상당히 오래걸린다. 따라서, 해시값으로 서명을 하여 시간을 줄인다. Alice bob S=[..
[개발자 면접] 프로세스와 스레드의 차이점 Q. 프로세스와 스레드의 차이점은? 프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다. 프로세스는 최소 하나의 스레드를 보유하고 있으며, 각각 별도의 주소공간을 독립적으로 할당 받는다.(code, heap, stack) 스레드는 이중에 stack만 따로 할당받고 나머지 영역은 스레드끼리 서로 공유한다. # 요약 프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용 스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용 Q. 프로세스의 문제점은? - 프로세스 생성에 큰 오버헤드가 있다. ( 프로세스를 생성할때 많은 시간이 소요됨0 - 프로세스 컨텍스트 스위칭의 비효율성, 오버헤드가큼 - 프로세스 사이에 통신이 어렵다는점 (IPC사용해야함) Q...
[개발자 면접] 프로세스간 통신(IPC)이란? Q. IPC란 무엇이고 무엇이 있는가? 프로세스들이 주소공간이 완전히 분리되어 있어 두 프로세스 사이에서 코드를 제외한 메모리 공간이 공유되지 않아 프로세스가 다른 프로세스의 메모리 접근이 불가능합니다. 따라서 프로세스들이 서로 통신 할 수 있도록 운영체제 커널에서 IPC를 지원합니다. 대표적인 IPC는 공유메모리, 신호, 파이프 세가지 정도가 있습니다.
[개발자 면접] 사용자 모드와 커널 모드의 차이 Q. 사용자 주소 공간과 커널 주소공간에 대해서 분리하는 이유는? 운영체제는 컴퓨터 전체 메모리를 사용자 공간과 커널 공간으로 나누는데 사용자 공간은 응용프로그램이 탑재되고 사용되는 공간이며, 커널 공간은 디바이스 드라이버를 포함하여 커널 코드가 탑재된다. 커널 공간에 있는 코드와 데이터를 보호하기 위해 분리한다. # 커널 공간에 있는 코드와 데이터를 보호하기 위해 분리 Q. 사용자 모드, 커널 모드에 대해서 설명하면? 사용자모드 -> 응용프로그램 코드가 실행되고, 커널모드 -> 커널 코드가 실행된다. 둘을 나누어 데이터 접근에 어려운을 만드는 것. 응용프로그램에서 오류를 발생시키더라도 시스템을 중단시키는 수준은 발생하지 않게 막아줌. 모든 프로세스의 주소공간에서 사용자 공간은 분리되지만 커널 공간은 공..
[개발자 면접] RESTful이 무엇인지 요약 Q. RESTful이 무엇이며, 이것에 대해서 아는대로 설명해보세요. HTTP URI를 통해 자원을 표시하고 HTTP Method를 통해 자원에 대한 처리를 표현합니다. 사람이 읽을 수 있는 API라는 것이 특징입니다. HTTP를 사용하기 때문에 HTTP의 특성을 그대로 반영합니다. 또한 별도의 인프라 구축이 필요없습니다. 단점으로는 RESTful 한 것에 대한 명확한 표준이 존재하지 않는다는 점과 RESTful을 완전히 만족하는 API를 만들기는 매우 까다롭다는 점, 그리고 REST API가 분산환경에 적합하지 않다는 점이 있습니다. 모든 관련된 동작을 URI를 통해 알려주는 HAPEOAS로 동적인 API제공도 가능하다. 이를 클라이언트가 API의 변화에 일일이 대응하지 않아도 되는 장점을 갖는 방법도..
[개발자 면접] JAVA언어의 특징과 가비지컬렉션에 대하여 Q. 자바언어가 가진 특징에 대해서 설명 1. 플래폼 독립성 : 하드웨어, 운영체제에 종속되지 않은 독립적인 바이트 코드로 컴파일된다. 2. 객체지향언어 : 자바는 캡슐화, 상속, 다형성을 지원하여 인간의 사고와 가깝게 표현한다. 3. 클래스로 캡슐화 한다. 4. 소스와 클래스 파일이 있다. 5. 실행코드 배포 : jar파일 형태로 압축하여 배포하거나 실행 할 수 있다. 6. 멀티스레드 7. 가비지커렉션 사용 : 메모리를 할당받지만 반환받는 기능이 없어 가비지 컬렉션에 의해 자동으로 회수된다. 8. 실시간 응용시스템에 부적합하다. 예측할 수 없는 시점에 가비지 컬렉션이 실행되어 프로그램이 일시적으로 중단된다. 9. 실행 속도를 개선하기 위해 JIT 컴파일러가 사용된다. Q. 가비지 컬렉션에 대해서 설명 ..
[정보보안] 공개 키 기반 구조(Public key Infrasturcture)란? 공개키 암호와의 용도 1) 기밀성유지 - 누구나 접근이 가능한 네트워크 환경에서 필요 - insecure한 데이터를 안전하게 저장하고 싶을때 필요 2) 인증 3) 전자서명 - 무결성, 부인봉쇄기능을 제공 공개키 Notation [] : 개인키 {} : 공개키 private key : [M]alice. public key {M}alice {[M]Alice}Alice = M [{M}Alice]Alice = M PKI(Public Key Infrastructure) PKI란 공개키 암호화와 전자서명을 사용할 수 있게 기반을 마련해둔 것이라고 보면된다. CA는 공개키를 발급해주는 인증기관을 말한다. 공인인증설을 발급해주는 금융결제원이라고 보면된다. CA에서 개인키를 생성하고 개인키를 기반으로 공개키를 만들고 이..
[정보보안] Diffie-Hellman란? 대칭키, 공개키암호의 차이 - 대칭키 암호 : 속도가 빠르다, 키 공유가 필요하다. - 공개키 암호 : 속도가 느리다, 키 공유가 필요없다. 대칭키 암호 예 전화 : 가입자 이동통신사, 대칭키는 유심에 심어져 있다. 카톡 : 가입자 카톡, 대칭키는 분배 정책에 의해 할당되어 있다. 대칭키 암호에서 필요한 키의 개수 Alice, Bob, Carlie : (2 * 3) / 2 = 3 공개키 암호에서 필요한 키의 개수 n명이 존재할 경우 2n = O(n) Diffie-Hellman - key exchange 암호화 키 - 공유된 대칭키를 설정하기 위해 사용한다. - 암호화나, 전자서명을 위한 알고리즘이 아니다 - RSA는 소인수분해의 어려움에 기초하고 있지만, DH는 discrete log problem에 기..

728x90