전체 글

전체 글

    [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..

    [스프링부트와 JPA 활용 2] Section2. API 개발 고급 - 준비

    API 개발 고급 소개 조회용 샘플 데이터 입력 지연 로딩과 조회 성능 최적화 컬렉션 조회 최적화 페이징과 한계 돌파 OSIV와 성능 최적화 조회용 샘플 데이터 입력 userA JPA1 BOOK JPA2 BOOK userB SPRING1 BOOK SPRING2 BOOK 두 건의 주문이 접수된 것이다. jpashop/src/main/java/jpabook/jpashop/InitDb.java 추가 package jpabook.jpashop; import jakarta.annotation.PostConstruct; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item...

    [스프링부트와 JPA 활용 2] Section1 중 "회원 삭제 API"

    JPA 활용2를 듣던 도중, 회원 등록, 조회, 수정 API는 강의에서 다루나 삭제 API를 강의에서 안 다루어 직접 코드를 짜 보았다. MemberApiController.java 에 코드 추가 //회원 삭제 API @DeleteMapping("/api/v3/members/{id}") public ResponseEntity deleteMemberV1(@PathVariable ("id") Long id) { memberService.delete(id); return new ResponseEntity("회원이 성공적으로 삭제되었습니다", HttpStatus.OK); } MemberService.java 에 코드 추가 //회원 삭제 API @Transactional public void delete(Long..

    RESTful API 기초 - 의미, 장점, 응답/요청 형식

    RESTful API 의미 = REST API 참고 : API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형 — y-seo의 딩코 기록들 (tistory.com) API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형 API 란 ? Application Programming Interface Application Programming을 위한 Interface 주로 클라이언트와 서버가 서로 통신할 수 있게 하는 메커니즘이다. 개발자가 하는 요청과 받고 싶은 응답을 구성하는 방법에 y-seo.tistory.com REST의 균일한 인터페이스를 제공한다. 균일한 리소스 식별자를 사용한다. 클라이언트가 원할 때 리소스를 수정하거..

    API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형

    API 란 ? Application Programming Interface Application Programming을 위한 Interface 주로 클라이언트와 서버가 서로 통신할 수 있게 하는 메커니즘이다. 개발자가 하는 요청과 받고 싶은 응답을 구성하는 방법에 대한 정보를 포함한다. 쉽게 말하자면 "연결 통로"로 생각할 수 있다. Websocket API JSON 객체를 사용하여 데이터를 전달하는 웹 API 클라이언트와 서버 간의 양방향 통신을 지원한다. REST API Representational State Transfer REST : GET, PUT, POST, DELETE 등의 함수 집합 클라이언토와 서버가 HTTP를 사용하여 데이터를 교환한다. stateless 특징을 가진다. 서버가 클라이..

    [스프링부트와 JPA 활용 2] Section1. API 개발 기본

    회원 등록 API 단순히 SQL로 API를 끌어오지 않아도 된다. JPA는 Entity가 있기 때문에 API를 설계할 때 주의해야 한다. API를 test 하기 위해 Postman을 설치한다. Download Postman | Get Started for Free Download Postman | Get Started for Free Try Postman for free! Join 25 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster. www.postman.com 템플릿 엔진을 사용하여 렌더링 하는 Controller와 API 스타일의 Controll..