비밀키 암호방식, 대칭키 암호방식이라고 하며 비밀 정보를 교환하고자 하는 상호 암호통신망 가입자가 사전에 비밀 공통키 K를 제삼자에게 노출되지 않게 나누어 가진 다음, 암호통신을 필요로 할 때 평문M을 암호 알고리즘 E와 공통키 K로 암호문 C를 생성시켜 공중통신 채널을 통해서 전달하고 암호문 C를 수신한 가입자는 복호화 알고리즘 D와 공통키 K로 평문 M을 얻는 방법으로 오래전부터 사용되어 온 암호방식으로 암호화키와 복호화키가 동일하며 공개키방식보다 암호화 및 복호화 속도가 빠르다. 128비트 이상의 키 길이를 가지면서 안전성이 널리 인정된 암호 알고리즘을 사용하여야 한다. 또한, 국가·공공기관용 표준 블록암호인 ARIA를 지원할 수 있어야 한다. 대한민국 행정전자서명에서 사용하는 암호화 알고리즘은 다..
데이터에 대한 무결성은 메시지 인증 코드(MAC - Message Authentication Code), 또는 전자서명을 이용하여 제공한다. 인증서와 비밀키가 이미 발급된 사용자의 경우에는 전자서명 알고리즘을 사용하여 데이터에 대한 무결성을 제공할 수 있지만, 그렇지 않은 경우에는 패스워드에 기반한 메시지 인증 코드 방식을 사용한다. 패스워드에 기반인 인증코드 방식을 알고리즘 식별자(Algorithm Identifier)로 기술할 때에는 이 방식을 명확히 기술해 주는 인자들에 대한 설명이 포함되어야 한다. 본 상세서에서는 메시지 인증 알고리즘으로 해쉬 함수를 이용한 MAC, 즉 HMAC의 사용, 또는 SEED를 이용한 MAC의 사용을 권장한다. HMAC HMAC은 메시지의 무결성과 함께 메시지의 출처 인..
행정전자서명 프로파일 및 알고리즘 상세서 분석 중 정보처리기사, 정보보안기사 등 전산 유관 시험의 용어 설명이 잘 되어 있어 게시글로 옮긴다. 국가기술검정 시험이다보니 국가에서 규정한 용어집을 참고한다. 출처 : "행정전자서명 프로파일 및 알고리즘 상세서"(https://gpki.go.kr/pds/WebTrustAction.action) ANSI(American National Standards Institute) : 미국에서의 임의(Voluntary)표준 활동을 관리 조정하고, 표준의 적합성여부에 따라 미국국가표준(ANS:American National Standard)으로서 승인여부를 결정하는 비영리 민간단체로써 직접 표준을 개발하지는 않으나, 각 기구들의 표준과정을 관리하여 여러 기구들이 작성․처리..
HTTP Cookie에 대하여 HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버에서 사용자의 웹 브라우저로 전송한 작은 데이터 조각이다. 브라우저는 나중에 보낼 요청에 대비하여 저장해둔다. HTTP 통신은 상태를 저장하지 않는 stateless 통신이기 때문에 동일한 연결에 대해 연속적인 요청이 발생하지 않는다. 예를 들어 쇼핑몰을 이용할 때 장바구니에 담긴 물건 정보를 통신할 때마다 유지하지 않는다. 이렇게 상태를 저장하지 않는 대신에 쿠키를 이용하여 '세션'을 저장한다. 헤더에 쿠키를 사용하도록 설정하여 HTTP 쿠키가 패킷에 추가되어 각 HTTP 요청에 대해서 동일한 컨텍스트인지, 어떠한 상태를 가지고 있었는지 나타낼 수 있다. 쿠키는 크게 세 가지 목적으로 동작한다. 세션 관리(Session man..
Preview 웹 브라우저들은 다양한 위치에 사용자 데이터를 저장한다. 사용자가 가진 권한, 특성, 클라이언트 측 설정 값(팝업 허용 여부, 자동로그인 설정 여부) 등 여러가지 값들을 저장해 두고 웹 페이지 방문 및 필요할 떄마다 이용한다. 데이터가 보관되는 위치에 따라 보관 기간, 오프라인 사용 가능 여부가 다르다. 이 글은 클라이언트에 저장되는 데이터의 종류와 특징에 대해서 알아본다. 그리고 공격자의 입장에서 이러한 데이터를 안전하게 사용할 수 있는 방법은 있는지 알아본다. Client-side storage? 먼저 웹은 정적(Static)과 동적(Dynamic)페이지로 구분한다. 정적 페이지는 단순 HTML 요청과 응답으로 구성되고, 동적 페이지는 사용자 요청 값을 포함한 다양한 값들을 가공, 랜더..
개요 Flutter에서 textFormField 를 통해 사용자에게 값을 입력받은 후 바깥을 터치했을 때 키보드를 내려서 다른 버튼입력을 받고 싶을 때 사용한다. GetstureDetector() 와 함께 onTap 메소드에 FocusScope.of(context).unfocus();를 사용하면 된다. GestureDetector( onTap: (){ FocusScope.of(context).unfocus(); }, child: Stack( children: [ //배경 Positioned( child: Container( height: 300, ... ) ) ] ), ) 원하는 구역을 터치했을 때 키보드가 사라진다. 출처 : 코딩셰프(https://www.youtube.com/channel/UC_2ge..
2FA(Two Factor Authentication)은 온라인 포털 등에서 사용자의 기기를 기반으로 하는 추가 인증 절차이다. 기존 ID와 Password을 이용하여 로그인하는 지식 기반 인증 과정에서 하나의 인증 수단을 추가한 것으로 OTP(One Time Password)나 지문인식 모듈을 이용한 인증 방식 등을 사용한다. 기존의 인증 우회 기법의 발전과 함께 2FA 인증 우회 기술 또한 꾸준히 연구되고 있다. 이 글은 2FA 인증 기술과 공격자의 관점에서 이를 우회하는 기법을 다룬다. 2FA의 동작 과정 2FA는 기존의 인증 절차에서 인증 로직을 추가한 것이다. 기존의 로그인 방식이 email 주소나 패스워드를 묻는 방식이었다면, 인증코드(verification code)를 추가로 요구하는 방식이..
들어가며 AFL Qemu를 Ubuntu 20.04 환경에 설치한다. AFL만 설치하면 구동되는 것이 아닌, 별도 작업이 필요하기 때문에 정리한다. 아무것도 설치되지 않은 Ubuntu 20.04 VM 이미지에 설치를 진행한다. [환경(VM)] Ubuntu 20.04 LTS 순서 1. pip 설치 2. 의존성 패키지 설치 3. AFL++ 설치 4. AFL-Qemu 설치 1. pip 설치 sudo apt install python3-pip 2. 의존성 패키지 설치 sudo apt-get update sudo apt-get install -y build-essential python3-dev automake git flex bison libglib2.0-dev libpixman-1-dev python3-setu..
들어가며 7-zip를 퍼징한다. 7-zip에서 발생하는 CVE-2016-2334을 분석한다. 그리고 발견한 크래시에서 코드 커버리지를 분석한다. CVE-2016-2334은 heap-based buffer overflow 취약점이다. 범위 밖의 데이터를 읽을 수 있다. 7-zip에서는 조작된 HFS+ 이미지 파일에서 발생한다. 준비 1-day 실습이므로 취약점이 발생했던 같은 환경을 준비한다. 또는 다음의 내용을 학습할 수 있다. Windows x64 1809 WinAFL(Fuzzer) Download and Build Windows 환경에서 AFL 퍼저의 실행은 WinAFL을 사용한다. 사전 설치 1. Visual Studio compiler 가 필요로하며 2019 버전의 설치를 권장한다. “Deskto..
들어가며 GIMP라는 이미지에디터를 퍼징한다. GIMP 2.8.16에서 발생하는 CVE-2016-4994을 분석한다. 그리고 발견한 크래시에서 코드 커버리지를 분석한다. CVE-2017-9048은 Use-After-Free 취약점이다. 동적할당된 heap을 free하고 다시 재사용할 때 취약점이 발생한다. GIMP에서는 조작된 XCF 파일에서 발생한다. 공격자는 유효한 데이터의 손상에서 임의 코드 실행까지 다양한 악의적인 행위를 할 수 있다. 준비 1-day 실습이므로 취약점이 발생했던 같은 환경을 준비한다. 또는 다음의 내용을 학습할 수 있다. Ubuntu 20.04(https://releases.ubuntu.com/20.04/) afl-fuzz(Fuzzer) GDB(크래시 분석 디버깅 도구) 다음의 ..