목록개인 (59)
Self-Improvement
보호되어 있는 글입니다.
캐시 서버의 이용 여러 대의 웹 서버를 설치하는, 즉 같은 기능을 가진 여러 대의 서버를 설치하는 것이 아니라 다른 방법으로 부하 분산을 하는 방법도 있습니다. 이것은 데이터베이스 서버와 웹 서버 같은 역할에 따라 서버를 나누는 방ㅂ버으로, 이러한 역할별 분산 처리 방법 중의 하나가 캐시 서버를 사용하는 방법입니다. 캐시 서버는 프록시라는 구조를 사용하여 데이터를 캐시에 저장하는 서버입니다. 프록시는 웹 서버와 클라이언트 사이에 들어가서 웹 서버에 대한 액세스 동작을 중개하는 역할을 하는데 액세스 동작을 중개할 때 웹 서버에서 받은 데이터를 디스크에 저장해 두고 웹 서버를 대신하여 데이터를 클라이언트에 반송하는 기능을 가지고 있습니다. 이것을 캐시라고 부르며 캐시 서버는 이 기능을 이용합니다. 웹 서버는..
1. 패딩 대칭키 암호 알고리즘은 블록 암호 알고리즘이라고 하기도 한다. 블록 단위라는 말은 특정 크기만큼 잘라서 사용한다는 것을 의미하며 DES 암호는 64비트 단위를 하나의 블록으로 보고 암호화를 수행한다. 그런데 암호화 대상 평문이 64비트 단위로 나눌 수 없는 경우에는 어떻게 암호화를 해야할까? 블록 암호는 블록 단위로만 암호화를 할 수 있는데 이럴 때 블록 단위의 길이가 되도록 원본 평문을 늘려주는 작업을 수행해야 하는데 이러한 과정을 패딩이라고 얘기한다. 암호의 안전성을 더욱 강화하기 위해 사용되며 패딩은 크게 비트 패딩, 바이트 패딩, 제로 패딩으로 나눈다. 2. 비트 패딩 블록의 크기가 8바이트(64비트)고 실제 원문은 5바이느(40비트)라고 하자. 그러면 블록의 크기로 밪추기 위해 3바이..
https://nightohl.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-arm-%ED%81%AC%EB%A1%9C%EC%8A%A4%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EB%B0%8F-%EB%94%94%EB%B2%84%EA%B9%85 우분투에서 arm 크로스컴파일 및 디버깅 우분투에서 arm 크로스컴파일 및 디버깅 주의 : arm 종류는 굉장히 다양하고 안드로이드, ios 디바이스 등 여기에 맞게 크로스컴파일 해야함. (ELF 64-bit ARM aarch64, Mach-O 64-bit ARM aarch64 등 디바이.. nightohl.tistory.com /usr/arm-linux-gnueabi/lib/ld-linux..
1. 암호문 단독 공격 (Ciphertext-Only Attack) 공격자가 암호문만 가지고 있는 상황에서 공격하는 유형, 공격자는 암호문 이외의 어떤 정보도 가지고 있지 않기 때문에 공격자 입장에서 가장 어려운 공격 방법입니다. - 가능한 모든 값을 대입해보면 무차별 대입 공격 - 암호문에 쓰인 문자의 빈도수 분석이나 문장의 특성 등을 추정하여 해독하는 방법 2. 알려진 평문 공격(Known-Plaintext Attack) 공격자가 일정 부분의 평문과 이에 대응하는 암호문을 가진 상태에서 공격하는 유형, 공격자는 자신이 가지고 있는 평문과 암호문 이외에는 어떤 정보도 가지고 있지 않지만 암호문 단독 공격보다는 효과적인 공격 유형이다. 3. 선택 평문 공격 (Chosen-Plaintext Attack) ..
1. 해시 함수 해시함수란 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 매핑하는 함수이며 결과값을 해시값이라고 한다. 해시함수는 데이터를 자르거나 치환하거나 위치를 변경하는 방법으로 해시값을 생성하므로 원본 데이터의 정보를 상실하게 되어 생성된 해시값은 원래 데이터로 복원할 수 없습니다. 즉 해시는 일방향성입니다. 해시값은 두 개의 다른 입력값에 대해 특정 확률로 동일한 해시값이 나올 수 있다. 이와 같이 서로 다른 입력값에 대해 동일한 해시값이 나오는 상황을 해시 충돌이라고 부른다. 해시 충돌이 발생하는 특정 확률이라는 것이 매우 작은 값으로 통계적으로 큰 의미가 없다고 볼 수 있다. 128비트 크기의 해시값을 출력하는 해시함수의 경우, 해시 충돌이 발생하는 경우는 1/2^128로 매우 작습니다..
1. 공개키 암호란 공개키 암호는 한 쌍의 키가 존재하며 하나는 특정 사람많이 가진느 개인키이고 다른 하나는 누구나 가질 수 있는 공개키입니다. 개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화 가능하고, 반대로 공개키로 암호화 한 정보는 그 쌍이 되는 개인키로만 복호화가 가능합니다. 즉 공개키 암호 방식은 암호화할 때 사용하는 암호키와 복호하할때 사용하는 암호키가 다르기 때문에 비대칭키 암호라고도 합니다 공개키 암호로는 DH, DSA, ECDH, ECDSA, EIGamal, RSA 등이 있습니다. 2. 하이브리드 암호화 공개키 암호는 대칭키 기반 암호의 취약점인 키 전달에 대한 문제를 해결했지만 암호화, 복호화를 위해 복잡한 수학연산을 수행하기 때문에 대칭키 암호에 비해 속도가 느리다는 단점이..
1. 대칭키 암호란 암호화에 사용되는 암호키와 복호화에 사용되는 암호키가 동일한 암호화 기법 암호화한 정보를 누군가에게 보낼 때 암호키도 함께 보내야 하는데, 암호키 자체는 암호화가 되지 않은 평문이다. 이 과정에서 암호키를 분실하거나 타인에게 노출 되면 이 암호키로 암호화한 정보는 보안에 매우 취약하게 된다. 이와 같이 대칭키 암호 방식의 최대 약점은 바로 암호키를 관리하고 전달하는 메커니즘에 있다. 2. 대칭키 암호 원리 대칭키 암호는 이진수의 비트간 배타적 논리합(XOR) 연산에 기반한다. 1(XOR)1 = 0, 0(XOR)0 = 0, 1(XOR)0 = 1, 0(XOR)1= 1 P=11010011 K=01010101 P와 K의 비트간 XOR 연산 결과를 Q로 한다 Q=10000110 다시 Q와 K를..
위 Response unauth.cgi?id=xxx 에서 xxx을 뽑아내고 싶을때 사용 def packet(target, port): try: s = requests.Session() url='http://'+target+':'+port req = s.get(url, proxies=proxies) token = scrape(req.text, 'unauth.cgi?id=', '\"') def scrape(text, start_trig, end_trig): if text.find(start_trig) != -1: return text.split(start_trig, 1)[-1].split(end_trig, 1)[0] else: return False
보호되어 있는 글입니다.