본문 바로가기

728x90

전체 글

(108)
[개발자 면접] HTTP와 HTTPS의 차이점에 대해서 요약 Q. HTTP와 HTTPS의 차이점에 대해서 설명해보세요. HTTP는 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고, 수정할 수 있습니다. 따라서 보안이 취약해짐을 알 수 있습니다. 이를 보완하기 위해 나온 것이 HTTPS입니다. HTTPS는 중간에 암호화 계층을 거쳐서 패킷을 암호화합니다. HTTP 동작 순서 : TCP → HTTP HTTPS 동작 순서 : TCP → SSL → HTTP
[개발자 면접] 스레드 동기화와 동기화 구현방식에 대해서 Q. 스레드 동기화에 대해서 설명해보세요. 스레드 동기화는 멀티스레드 환경에서 다수의 작업이 실행해서 공유데이터에 동시에 접근할 경우 문제가 발생하는데 이런 접근을 막는 것을 말한다. Q. 상호배제, 임계구역, Race condition에 대해서 설명해보세요. 여러 스레드가 임계구역에 대해서 경쟁(Race condition)을 할 때 상호배제가 이루어져야만 스레드 동기화가 보장된다. # Race condtion 두 개 이상의 프로세스가 공통 자원을 병행적으로 읽거나 쓸 때, 공용 데이터에 대한 접근이 순서에 따라 실행 결과가 달라지는 상황 Race Condition이 발생하게 되면, 모든 프로세스에 원하는 결과가 발생하는 것을 보장할 수 없음. 따라서 이러한 상황은 피해야 하며 임계구역 상호배제를 통해 ..
[개발자 면접] TCP와 UDP의 차이에 대해서 요약정리 Q. TCP와 UDP의 차이에 대해서 설명해보세요. TCP는 연결 지향형 프로토콜이고 UDP는 데이터를 데이터그램단위로 전송하는 프로토콜입니다. TCP는 가상 회선을 만들어 신뢰성을 보장하도록(흐름 제어, 혼잡 제어, 오류 제어) 하는 프로토콜로 따로 신뢰성을 보장하기 위한 절차가 없는 UDP에 비해 속도가 느린편입니다. TCP는 그래서 파일전송과 같은 신뢰성이 중요한 서비스에 사용되고, UDP는 스트리밍, RTP와 같이 연속성이 더 중요한 서비스에 사용됩니다. +) 하지만 UDP도 신뢰성을 UDP자체에서 보장하지 않는 것 뿐이지, 개발자가 직접 신뢰성을 보장하도록 할 수 있습니다. 그래서 HTTP/3은 QUIC이라는 프로토콜을 기반으로 하는데, QUIC은 UDP를 기반으로 합니다. 즉, UDP 자체는 ..
[개발자 면접] 다양한 개발언어중 자바를 사용하는 이유 Q. 자바의 사용이유에 대해서 설명? > # 플랫폼 독립성, 메모리 사용량 적음. 매우 다양한 플랫폼을 갖는 가전제품을 위해 플랫폼 독립적인 언어가 필요했는데, 가전제품에 들어가는 장치는 매우 적은 양의 메모리를 사용해야 했다. - 플랫폼 독립적이면서 메모리 사용량이 적은 언어인 oak를 인터넷 환경에 적합하도록 발전시켜 만들어졌다. Write Once Run AnyWhere(WORA) c/c++ 등 컴파일러가 기계어 코드로 변환할 때 프로그램이 실행될 대상 컴퓨터의 CPU와 운영체제에 종속저인 코드로 변환하는데, 그러면 다른 플랫폼(CPU가 다르거나 OS가 다르면)에서는 다시 컴파일하여 플랫폼에 맞도록 코드를 수정해야 한다. 하지만 JAVA는 개발 단계에서 플랫폼에 독립적으로 설계되어 JVM만 있으면 ..
[개발자 면접] 프로세스 주소공간과 PCB에 대해서 Q. 프로세스 주소공간이란? 프로세스가 실행 중에 접근할 수 있도록 허용된 주소의 최대범위로 코드, 데이터, 힙 스택 4요소들을 합쳐 프로세스가 엑세스 할 수 있는 사용자 공간의 메모리 영역을 포함한다. Q. 프로세스 제어블록(PCB)이란? 프로세서 제어 블록은 운영체제 커널이 만드는 것이고, 프로세스의 정보를 저장하는 구조를 말합니다. 프로세스 관리의 핵심 데이터로 커널모드에서만 접근이 가능합니다.
[정보보안] 공개키 암호화인 RSA에 대해서 RSA - 공개키 암호시스템, 암호화 뿐 아니라 전자서명이 가능한 최초의 알고리즘 - 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 의미론적으로 아전한 암호화 시스템을 보장하도록 디자인됨. - 공인인증서 비밀번호 : 개인키를 푸는 암호화키 1. Key-pair generation (키 생성법) 1) p, q : 굉장히 큰 소수 (p != Q), 2) N = P X Q , N 을 modulus 3) (p-1)(q-1)과 서로소에 있는 정수 e를 찾는다. 4) e X d = 1 mod (p-1)(q-1) , e의 곱셈상의 역원인 d를 계산 N,e 를 공개키로 사용 d를 개인키로 사용한다. 예제) 1) 굉장히 큰소수 p, q를 정한다. p = 11, q = 3 2) N을 계산 , N = pq ..
[정보보안] 공개키 암호화의 특징 및 용도 대칭키 암호화 vs 공개키 암호화 1) 대칭키 암호화 : 암호화키 = 복호화키 / permutation, substtiuation [DES, AES, TripleDES ... ] 2) 공개키 암호화 (비대칭키) : 암호화키 != 복호화키 / 수학에 대한 이해가 필요 (ex mod연산) [RSA ...] - 인터넷, 뱅킹, 인터넷 주식 거래 등이 가능 (공인인증서) ~ 이런 것들이 가능하게 된 것이 공개키 암호화 덕이다! - 공인인증서 파일을 들어가보면 공개키, 개인키 이렇게 두개가 있는걸 알 수 있다. - One Way function 단방향 함수 사용 ( ex. 소인수분해 factoring) - 두개의 소수 p, q 가 있을때 N구하는 건 쉽지만, N 이 주어졌을떄 p,q를 찾는건 어렵다. 공개키의 용..
[정보보안] Java를 활용하여 CBC 모드에서 AES 암복호화 실습 package kr.ac.zerco; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AES { private static final String key = "aesEncryptionKey"; //16Byte == 128bit private static final String initVector = "encryptionIntVec"; //16Byte //인코더 생성 private static final Base64.Encoder enc = Base64.getEncoder(); //디코더 생성..

728x90