일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- apple developer academy 후기
- useReducer
- 애플 디벨로퍼 아카데미 21주차 회고
- ObservableObject
- OS
- 애플 디벨로퍼 아카데미
- 데이터베이스 공부
- StateObject
- 운영체제
- 네이버 부스트캠프
- ObservedObject
- Swift 디자인패턴
- Swift 기능
- 치지직
- 앱 비교 프로젝트
- 애플 아카데미 후기
- 데이터베이스
- 제앱소
- 숭실대
- Swift 문법
- global soop
- Apple Developer Academy @ POSTECH
- sqoop
- iOS 개발 오류
- swift문법
- 소프트웨어분석및설계
- react
- 애플 디벨로퍼 아카데미 후기
- SWIFT
- 네이버 치지직
- Today
- Total
목록대학 전공 공부/네트워크 프로그래밍 (7)
사과하는 제라스
- 어떤 서버를 구축함에 있어서 인증서가 중요함. - 인증서의 chain 사용자가 서버 인증서와 서명값을 받음 - 이 인증서의 IssuerDN인 CA1에게 감 - CA1의 IssuerDN인 RootCA에 감 - CA1 인증서에 서명된 걸 노란 키로 인증, 서버 인증서에 서명된 걸 파란 키로 인증, 초록 키 받아서 인증 - 각국의 RootCA들끼리는 peer-to-peer로 믿어줌. - TLS 서버를 구축하려면 서버에 인증서와 개인키를 생성해야 함. //SSL-Server.c #include #include #include #include #include #include #include #include #include #include "openssl/ssl.h" #include "openssl/err.h"..
- HTTP와 HTTPS의 차이 : TLS가 존재한다 - 대칭키 암호 알고리즘(Symmetric cipher) : 암호화하는 송신자와 복호화하는 수신자는 동일한 키를 가지고 있어야 함. - 공개키 암호 알고리즘(Asymmetric cipher or Public Key encryption Algorithm) : 공개키와 개인키가 한쌍으로 존재하고 같지 않음.(수학적인 관계는 존재함.), 대칭키와 비교했을 때 속도는 느리나 키 교환 분야에서 활용가능. 공개키 crypto system 1) 암호화 하는 기술 2) 전자서명하는 기술 - 전자 서명 : 공개키 암호 알고리즘의 사용방법 중 하나임. 송신자의 개인키로 서명 : MSG -> MSG+Sign Value 수신자는 송신자의 공개키로 복호화하여 Sign Val..
- 네트워크 보안 관련 배경 지식 => OSI 7계층 OSI 7계층 모델은 단순 레퍼런스 모델일 뿐! 실제 사용은 TCP/IP 프로토콜을 사용한다. data(message)에 TCP헤더(붙으면 segment), IP헤더(붙으면 packet), 이더넷 헤더와 이더넷 트레일러(붙으면 frame)들이 차례로 붙음. => 여기서 TLS(Transport Layer Security)라는 것이 패킷의 TCP Data에 대한 1. 인증 2. 암호화를 해준다. TCP/IP 모델과 OSI 모델 차이 1) TCP/IP: 클라이언트 서버 모델 OSI:개념적인 모델 2) TCP/IP: Standard protocol OSI: reference model(구조에 대한 이해를 위한 모델일 뿐!) 3) TCP/IP: 4계층 OSI..
- 네트워크 관련 보안 protocol, 보안이 적용된 네트워크 프로그래밍을 배울 것임. 1. 정보보호 기초 - 암호기법(cryptography) : 과거 => 메시지의 기밀성(confidentiality)를 제공하기 위해 사용한 기술. / 현재 => 메시지를 공격자로부터 보호하기 위하여 메시지를 변화하는 기술. Key(uniformly distributed random string)를 사용함. => 랜덤한 바이너리 값으로 매우 중요한 것임. 1) 암호화, 복호화 key = Symmetric key(대칭 키) 2) 공개된 key = Asymmetric key, Public key - 암호학 관련 대표 용어 1) Plaintext(평문) : 암호화되기 전의 메시지 2) Encryption algorithm..
- HTTP 프로토콜이란? : 웹서핑을 할 때 많이 볼 수 있음. TCP 기반으로 구동되는 text-based client-server 프로토콜임. -> ∴ HTTP 서버가 구동될 때 일반적으로 80 port를 사용함.(그러다보니 웹서버로 접근 시 80 port로 접근 많이 함.) - HTTP는 보안이 결여되어 있음 : HTTP 트래픽을 분석해보면 암호화되지 않은 상황에서 data가 오감. ∴ 스니퍼 같은 도청 공격자에게 정보가 쉽게 노출됨. -> 기본적인 정보 보호 기술과 Transport Layer Security(TLS)를 배울 것임. + HTTP가 TLS 위에 구현된 HTTPS도 구현할 것임. - HTTP 프로토콜의 구성 1) HTTP Request 1. GET : client가 어떤 resour..
- DNS란? 컴퓨터나 시스템에 이름을 할당하는데에 쓰임. IP 주소를 외우지 않아도 hostname으로 IP주소를 받아올 수 있는 서비스. 즉, hostname과 IP주소를 link시켜주는 역할을 함. - 이전에 배운 getaddrinfo() 함수의 구동 과정 1) OS에서 과거 이 도메인 주소에 대한 IP주소를 local cache에 저장되어 있는지 확인함. 2) 없을 경우, OS가 DNS서버에 IP주소를 물어보고 응답받는 IP주소로 접근할 수 있음. - 도메인 이름은 계층적(Hierarchical)으로 관리가 됨. 각 노드들을 domain 혹은 subdomain이라고 함. - DNS zone이란? 관련있는 domain과 subdomain들을 묶어둔 것. 성격에 따라서 domain name들을 관리할..
- 에러 처리는 모든 프로그래밍에서 중요!(∵에러가 무엇인지 알아야 디버깅 Easy) - 리눅스는 발생한 에러를 저장하는 전역변수 errno를 제공함.(쓰려면 error.h를 include해야 함.) 즉, 에러가 발생하면 errno에 해당 에러에 대한 값(숫자)을 저장함. - 에러가 생기면 socket은 -1을 리턴하면서 종료함. 이때 errno가 어떤 값인지 if문을 통해 확인하는 코드를 짤 수 있음. - IPv6 헤더는 IPv4 헤더에 비해 깔끔함. 1) Version : IPv6에 대한 버젼 2) Traffic Class : 패킷 QoS(Quality of Service) 관련 값 ->어떤 서비스를 함에 있어서 서비스 퀄리티 보장 위해 => 패킷 우선순위(라우터에서 어떤 걸 먼저 처리해줄 지)필요한..