[블록 암호] AES
·
Hacking/Cryptography
SPN (Substitution Permutation Network) 곱 암호의 일종S-Box : Substitution, P-Box : Permuttion을 여러 라운드에 걸쳐 반복함페이스텔 구조에 비해 암호학적 안전성이 높음 AES 구조AES-128 > 키의 길이 : 128비트, 라운드 수 : 10, State : 4x4AES-192 > 키의 길이 : 192비트, 라운드 수 : 12, State : 4x6AES-256 > 키의 길이 : 256비트, 라운드 수 : 14. State : 4x8State(상태 배열)로 재구성 (State의 각 칸에는 1바이트 저장)> AddRoundKey 함수 적용 매 라운드 : SubBytes > ShiftRows > Mixcolumns > AddRoundKey 를 적용..
[블록 암호] DES
·
Hacking/Cryptography
16 라운드 : Initial Permtation(IP) 초기순열 → Final Permutation(FP) 최종 순열 → Feistel 페이스텔 각 라운드 : 48비트의 키를 생성하는 키 생성 함수DES의 원리혼돈 성질 > Substitution(치환)확산 성질 > Permutation(순열)Product Cipher (곱 암호) : 라운드를 여러 번 반복하여 암호학적 안전성을 확보하는 암호 페이스텔 구조평문 : \(P\) 각 라운드에서 생성된 키 : \(K\) 라운드 함수 : \(F\) 입력으로 들어온 블록을 동일한 길이의 왼쪽 블록 \(L\)과 오른쪽 블록 \(R\)로 나눈다 $$ L_0 = P[:len(P)/2], R_0 = P [len(P)/2 :]$$각 라운드마다 오른쪽 블록은 다음 라운드의 ..
현대 암호
·
Hacking/Cryptography
혼돈 : 암호문에서 평문의 특성을 알아내기 힘든 성질 > 단일 치환 암호에서는 힘든 성질 확산 : 평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질 > 고전 암호에서는 힘든 성질 대칭키 암호 시스템 암호화와 복호화에 같은 키를 사용하는 암호 시스템 블록 암호 (Block Cipher) 정해진 크기의 블록 단위로 암호화하는 암호 ex ) 블록의 크기가 4바이트 → 4바이트의 블록으로 쪼개어 각 블록마다 암호화를 진행함 ▶ 평문의 크기가 블록 크기의 배수가 아님 > 블록으로 균등하게 쪼갤 수 없음 → Padding (패딩) 수행 : 평문이 블록 크기의 배수가 될 때까지 데이터를 추가함 01) DES (Data Encryption Standard) 02) AES (Advanced Encryption Sta..
고전 암호
·
Hacking/Cryptography
치환 : 평문의 문자를 다른 문자로 바꾸는 것전치 : 평문 문자들의 위치를 바꾸는 것 단일 문자 치환 암호평문의 각 문자 > 약속된 다른 문자로 치환하는 암호일대일 대응카이사르 암호평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환 Key (키) : 알파벳을 밀어낸 횟수Key Space (키 공간) : 암호학에서 가능한 모든 키의 집합 > 카이사르 암호의 키 공간 크기 : 26$$ E_n(x) = (x + n)    mod 26 $$$$ D_n(x) = (x - n)     mod 26 $$> 수식으로 표현한 카이사르 암호춤추는 인형과 코드북 암호알파벳을 서로 다른 기호와 무작위로 일대일 대응시켜 치환Key Space : 26!단점 : 언어가 지닌 통계적 특성이 유지됨 ex) 가장 많이 나오..
[Pwnable] basic_exploitation_000
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/2 basic_exploitation_000Description 이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_000)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "fdreamhack.ioEnvironmentUbuntu 16.04Arch: i386-32-littleRELRO: No RELROStack: No canary foundNX: NX disabledPIE: No PIE (0x8048000)RWX: Has RWX segments32bit 바이너리 : 주소가 4byte..
[Pwnable] Return Address Overwrite
·
Hacking/Wargame
Code AnalysisOOB ( Out of Bound)▶ scanf("%s", buf) → %[n]s- 입력 길이를 제한하지 않음- 공백문자가 들어올 때까지 계속 입력을 받음> 버퍼 오버플로우 발생 * 버퍼의 크기를 같이 입력하는 strncpy, stncat, snprintf, fgets, memcpy Trigger프로그램이 잘못된 메모리 주소에 접근했다는 의미 *core dumped : 코어파일이 생성됨 > 프로그램이 비정상 종료됐을 때 디버깅을 돕기 위해 운영체제가 생성해주는 것 Stack frame► 0x400729 ret 0x40072a nop word ptr [rax + rax] 0x400730 ..
BitLocker
·
Hacking
데이터 도난, 분실, 부적절하게 서비스 해제된 디바이스의 노출 위협을 해결하는 전체 드라이브에 대한 암호화를 제공하는 윈도우 보안 기능  이동식 디스크와 시스템 드라이브 암호화 지원전체 암호화를 진행하여 엑세스 제한Window 7부터 지원BitLocker의 제공 기능전체 디스크 암호화 : 윈도우 운영체제와 데이터를 포함한 전체 디스크 암호화볼륨 암호화 : 특정 볼륨(드라이브)만 암호화TPM 기반 암호화 : TPM을 사용하여 암호화 키를 보호복구키 제공: BitLocker을 해제하기 위한 복구키 제공 TPM하드웨어적인 보안 장치 : 비밀번호나 인증서, 암호키 등을 저장 ▶ BitLocker와 함께 작동하여 시스템이 오프라인 상태인 동안 디바이스가 변조되지 않았는지 확인 암호화 : AES 128 bit / ..
Disk Scheduling (디스크 스케줄링)
·
CS/OS
디스크 구조 Taccess (디스크 접근시간) = Tseek (탐색 시간) + Trotation (회전 지연시간) + Ttransfer(전송 시간)disk queue : 디스크에 오는 요청을 저장해두는 queue > 디스크 스케줄링 알고리즘을 이용하여 시간을 감소시킴 Disk Scheduling AlgorithmFCFS ( First Come First Served ) disk queue에 요청이 들어온 순서대로 처리장점 : 공평하게 요청을 처리할 수 있음, 단순한 알고리즘단점 : 비효율적임 > 헤드가 움직이는 거리가 매우 커짐 SSTF ( Shortest Seek Time First )탐색 시간이 가장 짧은 것을 선택함  장점 : Seek Time이 적음, 처리량을 극대화할 수 있음단점 : starva..
SAM(Security Account Manager)
·
Hacking
SAM(Security Account Manager) database file in the microsoft windows operating system that contains usernames and passwords 사용자 이름과 비밀번호가 포함된 Microsoft Windows 운영 체제의 Database 파일 각 사용자 계정 : LAN 암호 & SAM Microsoft Windows 암호 할당 Passworld hashes : 두 가지 모두 암호화되어 있어 어떤 사용자도 접근할 수 없음 > 보안 강화 비밀번호를 입력 > Windows 시스템 : SAM의 비밀번호와 비교하여 확인 - 일치하는 경우 : 시스템에 대한 엑세스 권한 부여 > SAM파일이 백그라운드에서 계속 실 - 일치하지 않는 경우 :..
[Memory Corruption] Stack Buffer Overflow
·
Hacking/Pwnable
Stack Buffer Overflow 스택에 위치한 버퍼에 버퍼의 크기보다 많은 데이터가 입력되어 발생하는 버그  *stack overflow : 스택 영역이 너무 많이 확장되면서 발생하는 버그  Buffer (버퍼)데이터가 목적지로 이동되기 전에 보관되는 임시 저장소 데이터가 처리되는 속도가 다른 두 장치 > 버퍼 : 완충작용을 해줌버퍼가 가득 찰 때까지 유실되는 데이터 없이 통신 가능속도가 다른 두 장치에서 안정적으로 목적지에 도돨하도록 함→ 데이터가 저장될 수 있는 모든 단위를 의미 ex) 스택 지역 변수 : 스택 버퍼 / 힙 지역 변수 : 힙 버퍼 *버퍼링 : 송신 측의 전송 속도가 느림 → 수신 측의 버퍼가 채워질 때까지 대기 Buffer Overflow (버퍼 오버플로우)버퍼가 넘치는 것을 ..