본문 바로가기
북클럽

TIL #12 IT 5분 잡학사전 35~38

by 카너먼 2023. 1. 24.

오늘 TIL 3줄 요약

  • 비밀번호 시스템은 해시 함수를 이용해 저장한다.
  • 프로그래밍을 쉽게 하려면 객체 지향 프로그래밍을 이용하자.
  • 함수형 프로그래밍을 배워서 버그 발생을 줄이자.

TIL (Today I Learned) 날짜

  • 2023.01.24

오늘 읽은 범위

  • 에피소드35: 비밀번호는 어떻게 저장될까?
  • 에피소드36: 객체 지향 프로그래밍이 뭐죠? ①
  • 에피소드37: 객체 지향 프로그래밍이 뭐죠? ②
  • 에피소드38: 함수형 프로그래밍이 뭐죠?

책에서 기억하고 싶은 내용을 써보세요.

  • 해쉬 함수와 레인보우 테이블 그리고 솔트(Salt)
  • 클래스는 속성은 같지만 데이터는 다른 녀석들은 위한 공장이다.
  • 코드 중복을 해결하기 위해 상속이 있다.
  • 함수형 프로그래밍은 함수 중심으로 코드를 적는 방식으로 선언형 프로그래밍의 콘셉트를 유지한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 객체 지향 프로그래밍의 다른 장점은 무엇일까?
  • 절차 지향 프로래밍의 종류는 무엇이 있을까?
  • 비밀번호 해킹을 막기 위해서는 무엇을 해야될까?

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 레인보우 테이블: 레인보우 테이블(rainbow table)은 해시함수(MD-5, SHA-1, SHA-2 등)를 사용하여 만들어낼 수 있는 값들을 대량으로 저장한 표이다. 보통 해시함수를 이용하여 저장된 비밀번호로부터 원래의 비밀번호를 추출해 내는데 사용된다.
  • 출처: http://wiki.hash.kr/index.php/%EB%A0%88%EC%9D%B8%EB%B3%B4%EC%9A%B0_%ED%85%8C%EC%9D%B4%EB%B8%94
  • 브루트포스: 무차별 대입 공격(brute-force attack)은 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미한다. 대부분의 암호화 방식은 이론적으로 무차별 대입 공격에 대해 안전하지 못하며, 충분한 시간이 존재한다면 암호화된 정보를 해독할 수 있다. 하지만 대부분의 경우 모든 계산을 마치려면 실용적이지 못한 비용이나 시간을 소요하게 되어, 공격을 방지하게 한다. 암호의 '취약점'이라는 의미에는 무차별 대입 공격보다 더 빠른 공격 방법이 존재한다는 것을 의미한다.
  • 출처: https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%B0%A8%EB%B3%84_%EB%8C%80%EC%9E%85_%EA%B3%B5%EA%B2%A9
  • 솔트(salt): 암호학에서 솔트(salt)는 데이터, 비밀번호, 통과암호를 해시 처리하는 단방향 함수의 추가 입력으로 사용되는 랜덤 데이터이다. 솔트는 스토리지에서 비밀번호를 보호하기 위해 사용된다. 역사적으로 비밀번호는 시스템에 평문으로 저장되지만 시간이 지남에 따라 추가적인 보호 방법이 개발되어 시스템으로부터 사용자의 비밀번호 읽기를 보호한다. 솔트는 이러한 방식의 하나이다.
    솔트는 레인보 테이블과 같은 미리 계산된 테이블을 사용하는 공격을 방어한다.
  • 출처: https://hansoul.tistory.com/77
  • 절차 지향 프로그래밍: 절차지향 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다. 대표적인 절차지향 언어에는 C언어가 있습니다.
  • 출처: https://brownbears.tistory.com/407

오늘 읽은 다른사람의 TIL