about Security58 [현대암호기초] #04 블럭암호 block cipher(1) 블록암호 block cipher # 대칭키 암호방식 = 비밀키 암호방식 - 암복호화에 동일한 (하나의) 키를 사용하며, 이 키를 안전하게 전송, 보관해야 함 - 알고리즘과 암호문은 모두에게 주어짐, 알고리즘과 키로 암호문을 풀어서 평문을 알아냄 정보 교환 전에 “비밀리에” 키 분배 필요 & 과정 : 송신자가 평문을 암호화하여 수신자에게 보내면 수신자가 암호문을 복호화하여 평문을 얻는다. ♥ 암호화 속도가 빠르고, 키의 크기가 작다. # 대칭키 암호방식을 암호화 단위로 분류 스트림 vs. 블록 암호 ∘블록암호 : 한 번에 한 블록의 원소를 입력 처리하여 각 입력블록마다 출력블록을 생성 (block 단위로) ∘Stream 암호 : 입력 요소를 연속적으로 처리하여 한 번에 하나씩 출력 (들어오는대로) 스트.. 2020. 10. 28. [현대암호기초] #03. 무작위성 무작위성: 무작위성이 없으면 모든 연산이 예측가능하므로 암복호화가 불가능하다. 무작위성에 대한 오류 비무작위성을 무작위성으로 오해 무작위성을 비무작위성으로 오해 + 클모고로프 복잡도 (Kolmogorov complexity) : (비트)문자열의 무작위성을 측정한 것으로 유한한 길이를 가진 데이터 열의 복잡성을 나타내는 지표 중 하나 + 확률분포와 무작위성 균등 분포 : 모든 결과의 발생 가능성이 같다. 비균등분포 : 결과의 발생 가능성이 모두 같지는 않은 분포 (많은 확률을 가진 case를 ‘편향되었다’고 한다.) + 엔트로피 : 불확실성, 시스템에 존재하는 무질서의 측도 - 엔트로피가 높을수록 결과들에서 발견되는 확실성이 낮아진다. 확률분포의 엔트로피 : (각 확률 X 그 확률의 이진 로그 곱)의 합의.. 2020. 10. 12. [현대암호기초] #02. OTP + 공격모형 + 암호화 응용 # 일회용 패드 (OTP) one time pad OTP : 가장 안전한 암호 -완전 비밀성을 보장한다. 일회용 패드는 평문P와 무작위 키K를 받아서 암호문 C를 산출한다 이때 K는 평문과 같은 길이이며 P와 K를 XOR하여 C를 얻는다. 일화용 패드는 일화용이며 K를 단 한 번만 사용해야 한다 + OTP가 안전한 이유 어떤 암호문이 주어졌을 때 가능한 모든 평문의 경우 중 일부를 공격자가 배제하지 못하게 한다. ? (완벽한 비밀성을 달성하기 위해서는) OTP의 키가 메시지만큼 길어야 한다 -암호문을 안다고 해도 평문에 대하여 그 길이를 제외한 어떤 정보도 알아낼 수 없다. ? K를 모르는 공격자에게 C의 비트는 모두 무작위해 보인다 -> 만일 키K가 무작위하다면 산출된 C역시 공격자가 보기에 K만큼이나.. 2020. 10. 12. [현대암호기초] #01. 암호화 + 고전암호 # 암호화 # 암호화 : 어떠한 자료를 이해할 수 없는 형태로 만들어서 그 자료의 기밀성(confidentiality)를 보장한다. 암호화를 위해서는 알고리즘과 비밀 값이 필요한데, 암호화 알고리즘 = 암호, Cipher 암호화에 쓰이는 비밀 값 = key -> 비밀키를 모르면 누구도 암호화된 메시지에서 어떤 정보를 알아낼 수 없다. 암호화되지 않은 메시지를 평문 (plain text), 암호화된 메시지를 암호문 (cipher text), 평문과 키를 암호화 함수에 입력하여 암호문을 만들고 암호문과 키를 복호화 함수에 입력하여 평문을 얻는다. ★ 암호문은 평문과 길이가 같거나 더 길다. 하지만 평문보다 짧은 길이의 암호문은 없다 # 고전 암호 # 고전암호: 컴퓨터가 쓰이기 전, 비트가 아닌 문자를 다루는.. 2020. 10. 11. [현대암호기초] #00. 암호화 encryption 2020. 10. 11. [웹해킹] # 커맨드 인젝션 # 커맨드 인젝션 # : 웹을 통해 시스템명령어(command)를 실행하는 공격 (SQL 인젝션과 더불어 인젝션 리스크와 관련된 주요 공격 기법.) 커맨드 인젝션을 통해 해커가 웹내부에서 시스템 명령어를 실행할 수 있어 심각한 영향을 초래할 수 있다. (ping : 입력된 ip주소의 시스템이 현재 동작하고 있는지 확인할 때 사용하는 커맨드) è ip주소뒤에 ;을 붙인뒤 원하는 커맨드를 추가하면 시스템이 명령어입력으로 인식하여 해커가 입력한 시스템 명령어까지 실행한다. ++ ip주소만 입력했을 때 ++ low단계에서 커맨드 인젝션 입력창에 127.0.0.1;cat /etc/passwd 라고 입력 ping명령어 외에도 cat /etc/passwd를 실행했다. ---이때 웹페이지의 코드를 확인해보자 ping .. 2020. 10. 8. [웹해킹문제풀이] # webhacking.kr 워게임 18번 처음에 들어가면 이렇게 나와 있어서 일단 임의의 값으로 흔히 쓰는 1을 입력해보았다. 그랬더니 hi guest라고만 출력되고 아무말이 없다. 그래서 다른 임의의 값 9를 입력해보았다. 아무런 변화가 없다. 이때 알았어야 했는데!!! 보다시피 캡처도 URL을 빼고 캡처한 걸 보면 알겠지만 URL이 중요하다고는 생각도 못했다ㅋㅋ 아무튼 계속 해보자. 앞서 배운 가장 기본이 되는 SQL쿼리 조작 문장인 1' or '1'='1 을 입력해보았다. 좀 배운건 뭐든 써봐야 직성이 풀리는 성격 우왕 뭔가 색다른 문장이 나온다. no hack 뭔가를 더 알아내기 힘들다고 판단 source코드를 보러갔다. 소스 코드를 볼수 있는 버튼은 하단에 연두색으로 있다 내가 중심적으로 볼 건 페이지 디자인이 아니므로 php문만 캡처.. 2020. 10. 4. [웹해킹] # sqlmap 자동화 공격 * sqlmap 프로그램 : SQL인젝션 공격 프로그램 중 가장 대중적으로 사용되며, 오픈 소스 프로젝트이다. 이 프로그램을 이용하여 SQL 인젝션을 자동 공격하고 원하는 정보를 탈취한다. 1) 칼리 리눅스의 좌측 상단 아이콘을 누른 후 -> 3.Web Application Analysis를 선택 -> sqlmap 선택 OR 2) 터미널에 명령어를 입력하여 실행 가능 (sqlmap -h를 입력하면 사용법과 옵션 확인 가능) # sqlmap 프로그램 옵션 알아보기 -u : 필수 옵션으로 공격을 시도할 URL 을 지정 --cookie : 로그인이 필요한 경우, 로그인하고 난 다음 발급된 세션 .. 2020. 10. 3. [웹해킹] # 블라인드 SQL 인젝션_level.low 일반적인 쉬운 SQL인젝션은 정상적이지 않은 입력에 대해 사용자에게 쿼리문 오류를 출력한다던지 쿼리 조작문에 대한 결과가 나와 정보를 캐낼 수 있는 반면, !!! 비정상적인 입력에 대해 별다른 오류도 나지 않고 어짜다 SQL 쿼리문을 사용함을 알게되어 조작하여도 사용자의 정보를 화면상으로 출력하지 않기 때문에 일반적인 SQL 인젝션으로는 정보를 캐낼 수가 없는 경우가 있다. 이럴때, SQL 쿼리문을 사용하고 입력값에 따라 id의 존재 유무를 알려주는 결과가 달라짐을 확인할 수 있다면 블라인드 SQL 인젝션 공격을 실행한다. 실습을 통해 알아보자. 우선 실습 환경 준비! dvwa에 들어가서 보안레벨을 low로 설정한 뒤 블라인드 SQL 창으로 들어가자. 우선 블라인드SQL인젝션 실습에 들어가기 앞서 일반적.. 2020. 10. 3. 이전 1 ··· 3 4 5 6 7 다음