라벨이 정보보안인 게시물 표시

Python bcrypt를 활용해 비밀번호 hashing 할 때 발생하는 에러.

bcrypt 라이브러리는 패스워드 해싱을 위한 라이브러리다. https://pypi.org/project/bcrypt/ 그런데 프로젝트 설명을 보면 argon2id나 scrypt를 사용하라고 권장하고 있다. 왜 인지는 모른다. 4.3.0 버전에서는 해싱함수가 정상적으로 작동했으나 최신버전은 5.0.0에서는 다음과 같은 ValueError가 발생한다. ValueError: password cannot be longer than 72 bytes, truncate manually if necessary 프로젝트 Changelog를 보면 다음과 같이 나와있다. hashpw에 전달되는 패스워드가 72바이트보다 길면 ValueError를 일으키도록 되어있다. 이전까지는 Error를 Raise하지 않고 라이브러리 내에서 truncate해서 return했다고 한다. (OpenBSD의 bcrypt 구현) Python 3.14 환경을 사용해야하는 제약이 없다면 4.3.0으로 다운그레이드하거나 직접 ValueError를 핸들링해주는 방법이 있겠다. ====================================================== 여담으로 본래 고속 연산 작업을 하기 위해 C로 작성된 소스코드가 컴파일된 .so 형태로 존재했고 CFFI ( C Foreign Function Interface )가 python <-> c간의 인터페이스 변환 역할을 했다. 그러나 현대에 이 라이브러리는 최신버전 4.0.0 이후 보안성과 메모리 안전성을 위해 Rust로 작성하였고 (.rs) src/lib.rs에서 그 흔적을 찾아볼 수 있다. PyO3라는 라이브러리를 통해 Rust와 Python 소스코드를 바인딩하고 Rust 컴파일러인 rustc가 기계어 파일로 컴파일 한다. 본문에서 말한 hashpw 함수는 lib.rs 소스코드의  68 ~ 138에 해당한다. 해당 소스코드에서는 let hashed = py .detach(|| bcrypt::ha...

IP 카메라 보안 위협 요소와 해킹 피해를 최소화하는 조치들

펌웨어 소프트웨어 결함 TP-LINK 2021년 3월경, TP-LINK TAPO C200 카메라의 펌웨어 버전 1.1.15에서 공격자들이 root권한으로 uhttpd 바이너리를 실행시킬 수 있는 결함을 발견함. 해당 결함은 공격자에게 카메라의 모든 기능을 원격 조작할 수 있는 권한을 줌. 2020년 7월경, Heartbleed 취약점 발견. 카메라의 API에 인가되지 않은 접근을 통해 API call로 카메라의 모터를 움직이거나, 외부 저장소의 데이터 삭제, 카메라의 Live 영상에 접근하기 위해 유저를 생성함. CACAGOO CACAGOO cloud 저장소 지능형 카메라 TV-288ZD-2MP의 펌웨어 3.4.2.0919는 패스워드 없이 RTSP 서비스에 접근할 수 있음. 동종 펌웨어 3.4.2.0919는 약한 TELNET 인증 방식을 뚫고 password 요구없이 루트 권한 기능을 쓸 수 있음. uhttpd 임베디드 시스템에서 주로 사용되는 경량 웹서버. http/https를 지원하면서 적은 메모리와 CPU 자원을 사용하기 때문에 IoT 제품이나 라우터 제품에 사용하기 적합하다. Nginx나 Apache보다 더 기능이 제한적이다. Heartbleed 취약점 버퍼 오버플로우 취약점이다. 사용자가 무작위 데이터를 담은 하트비트 패킷을 웹서버에 보낼 때 얼마만큼의 데이터를 보내는 것인지 명시한다.  서버는 패킷을 전송받은 후 정확히 같은 양의 데이터를 돌려보내면서  '사용자와 서버가 연결이 되어 있음'을 확인한다. 사용자의 컴퓨터가 얼마만큼의 데이터를 보냈는지 거짓으로 명시 할 경우 서버는 메모리에 저장된 다른 정보까지 끌어와 패킷을 채운 후 사용자에게 재전송해 준다. 해커는 이 결함을 이용해 반복적인 전송과 응답을 받는 과정에서 정보를 축적할 수 있게 되고 그 중에서 유의미한 자료를 건져내면  그걸 토대로 보안을 뚫는 것이 가능해진다. heartbleed 공격에 대한 조치 방법은 이스트소프트 알약 블로그에 잘 정리되어 있다. ...

이 블로그의 인기 게시물

Blogger 커스터마이징 : CSS 수정 (sticky-header)

노마드코더 개발자북클럽 Clean code 완주, 독후감

노마드코더 개발자북클럽 Clean code TIL 7 : 7장. 오류 처리