본문 바로가기
[챌린지]/[패스트캠퍼스] 파이썬 초격차

패스트캠퍼스 환급챌린지 38일차 미션 (3월 9일) : 파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 수강 후기

by 쿠키토끼 2024. 3. 9.

01. 제목

패스트캠퍼스 환급챌린지 38일차 미션 (3월 9일) : 
파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 Online 수강 후기
 

02. 포스팅 본문 (학습 일기) 가이드

 
1. 학습 인증샷 2장 이상 포함

카메라로 직접 촬영한 수강 인증 사진 (캡쳐X)

 

2. 학습 후기 700자 이상 (공백 제외)

오늘은 안전한 난수를 생성하는 라이브러리 secrets와 미니 프로젝트 실습까지 해보았다.

난수란 정의된 범위 내에서 무작위로 추출된 수로 기존에 파이썬 문법에서 random 함수를 배우고 import해서 랜덤모듈을 불러오기도 했었는데 사실 이 랜덤함수는 공식문서에도 언급된 내용에서 모델링 및 시뮬레이션을 위해 설계되었기에 보안이나 암호화에 쓰이기엔 적합하지 않다고 한다.(공식문서 번역이 조금 이상해서 파파고를 돌려서 겨우 이해함) 즉, 보안이 보장된 난수를 써야할때는 이 random 함수를 쓰면 안되고 secrets 모듈을 쓰도록 해야한다.

secrets.token_hax(nbytes) 로 토큰 핵스를 쓰고 여기서 nbytes 는 바이트 수를 의미한다.

예를 들어 8바이트(16자리) 난수를 만든다고 하면 ran8 = secrets.token_hex(8) 해서 출력(print(ran8))하면 된다.

16바이트(32자리)의 경우는 마찬가지로 ran16 = secrets.token_hex(16) 해서 프린트 변수를 출력해주면 된다.

대표적으로 은행 업무에서나 2중 보안이 요구되는 사이트, 게임 접속을 위해 OTP (One-Time Password) 를 사용하는데 이 OTP 비밀번호 생성기가 대표적인 보안이 보장되는 난수 생성기이다.

일단 임포트로 시크릿츠와 스트링도 하는데 스트링의 경우는 string.digits 해서 0부터 9까지 수만 나오도록 하기 위해서 쓰인다.

import secrts

import string

OTP = ''

digit = string.digits

for i in range(6): # 6자리 생성

       OTP += str('', join(secrets.choice(digit))) # 6자리 수 중에 choice

print(OTP)

이렇게 하면 6자리 숫자(0~9사이)가 무작위로 추출된다.

그리고 스크릿츠는 비밀번호 일치 여부 확인(내부 해싱) 기능도 있는데 타이밍 공격(timing attack)을 방지할 수 있는 기능으로 해커의 경우 뚫고자 하는 비밀번호를 대입해서(아마도 이 경우도 난수일수도) 비밀번호가 맞고 아닌 타이밍을 체크한다고 하는데 그 사이로 compare_digest를 넣어서 실시간으로 타이밍 공격을 방지하는 기능도 있다고 한다.

(해커의 영역이라 이해는 가지 않지만 아마 이런식으로 맨땅에 해킹을 하는 방법보단 db를 다 털거나 사용자가 허술하게 관리한 부분의 취약점을 노리는 경우가 대다수일 것 같은)

그리고 보안 URL도 생성해주는

url = 'http://rararabbit.tistory.com/reset=' + secrets.token_urlsafe(7)

print(url)

이렇게 보안해주고 싶은 URL이 있다면 (post방식으로 url 주소 자체에 개인정보가 노출되는 경우라던가) token_urlsafe 로 랜덤 난수를 생기게 해준다.

다음은 이렇게 배운 것들을 바탕으로 메세지 변조 탐지기 만들기 미니 프로젝트 실습해보았다.

암호화와 관련된 라이브러리를 이용해서 계좌정보를 생성하고 비밀번호를 입력하고 이것들을 암호화 시킨 다음에 메세지 변조 탐지기 만들기까지 조합해서 실습했다.

계좌나 기본 개인 정보는 일단 input으로 받아 놓고 주민번호만 getpass 모듈을 이용해 마스킹한다.

 

 

03. 필수 본문 내용 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
 

04. 필수 해시태그 

#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완

05. 필수 URL 

https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

[수강 강의 클립] 

-Ch06. [암호화] 개인정보는 소중해, 메세지 변조 탐지기 만들기

06. 안전한 난수를 생성할땐 - secrets (secrete로 되어 있는데 secrets 입니다)

07. 미니 프로젝트 실습

 

[※ 기타사항메모 ※]
{100% 환급챌린지 미션 가이드 참조 : 

https://fastcampus.co.kr/event_online_challenge_2401_mission}

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr