《Python工程应用-网络信息安全》课件-chap9_第1页
《Python工程应用-网络信息安全》课件-chap9_第2页
《Python工程应用-网络信息安全》课件-chap9_第3页
《Python工程应用-网络信息安全》课件-chap9_第4页
《Python工程应用-网络信息安全》课件-chap9_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

chap.9内容安全网络信息安全本章内容要点概述

文本内容安全与编程图像内容安全与编程语音内容安全与编程在互联网传播的信息内容中,面临的不良和非法信息威胁主要有如下三类。(1)垃圾信息,主要是指隐藏在文本、评论、弹幕、邮件等中的各种无用、不需要信息,包括:垃圾文本,垃圾广告、垃圾邮件等;(2)色情信息,主要是指有性诱惑、性暗示的和涉黄露点的文字、图片和视频等信息;(3)涉政信息,指危害国家安全,影响社会稳定,反党反政府的谣言、虚假信息和暴力恐怖信息等。信息内容安全对网络信息传播进行管控,对于加强互联网内容建设、营造清朗的网络空间、保障社会的和谐稳定具有重要意义。9.1.1内容安全定义1.信息获取技术

分为主动获取技术和被动获取技术。

主动获取技术通过向网络注入数据包后的反馈来获取信息,特点是接入方式简单,能够获取更广泛的信息内容,但会对网络造成额外的负担。

被动获取技术则在网络出入口上通过镜像或旁路侦听方式获取网络信息,特点是接入需要网络管理者的协作,获取的内容仅限于进出本地网络的数据流,但不会对网络造成额外流量。9.1.2内容安全技术2.信息内容识别技术

信息内容识别是指对获取的网络信息内容进行识别、判断、分类,确定其是否为所需要的目标内容,识别的准确度和速度是其中的重要指标。主要分为文字、音频、图像、图形识别。目前文字识别技术已得到广泛应用,音频识别也在一定范围内使用,但图像识别的准确性还有待进一步提高离实际应用尚有一定的距离。3.控制/阻断技术

对于识别出的非法信息内容,阻止或中断用户对其访问,成功率和实时性是两个重要指标。

从阻断依据上分为基于IP地址阻断、基于内容的阻断;从实现方式上分为软件阻断和硬件阻断;

从阻断方法上分为数据包重定向和数据包丢弃。

具体地,在垃圾邮件剔除、涉密内容过滤、著作权盗用的取证、有害及色情内容的阻断和警告等方面已经投入使用。4.信息内容分级

网络“无时差、零距离”的特点使得不良内容以前所未有的速度在全球扩散,网络不良内容甚至还会造成青少年生理上的伤害。应该建立自己的网上内容分级标准,让父母保护他们的孩子远离互联网上有潜在危害的内容。5.图像过滤

一些不良网络信息的提供者采取了回避某些敏感词汇,将文本嵌入到图像文件中,或直接以图像文件的形式出现等方法,从而可以轻易地通过网络过滤和监测系统。为此,需要对网页中的图像进行分析和理解实现网络过滤。目前这一技术还没有达到实用系统的要求。6.信息内容审计

信息内容审计的目标就是真实全面地将发生在网络上的所有事件记录下来,为事后的追查提供完整准确的资料。通过对网络信息进行审计,政府部门可以实时监控本区域内Internet的使用情况,为信息安全的执法提供依据。虽然审计措施相对网上的攻击和窃密行为是有些被动,它对追查网上发生的犯罪行为起到十分重要的作用,也对内部人员犯罪起到了威慑作用。

采用的主要技术是以旁路方式捕获受控网段内的数据流,通过协议分析、模式匹配等技术手段对网络数据流进行审计,并对非法流量进行监控和取证。9.1.3信息内容识别原理1.文本内容识别传统文本类内容安全识别系统一般由3个部分组成,即:敏感词库、信息采集、匹配算法。敏感词库一般依照相关法律、法规、行政要求、企业规章和标准规定制定,满足匹配过滤的需求。敏感词库的内容以词语为主,辅以少量短语或句子,此外还可以包含通过对词语进行与或非的关系组成的敏感词组合,以达到更准确过滤违法违规和不良信息的目的。匹配算法通过规则匹配敏感词库,对信息采集后的文本类数据进行分析,判断其是否为违法违规和不良信息,以及属于哪一类违法违规和不良信息。传统文本类内容安全识别方法的关键在于对采集的文本信息进行词语或词组匹配,但这种方式存在误报漏报的风险。2.图像内容识别最初的不良图片/视频识别,主要是通过建立不良图片/视频的MD5种子库,并用将户新上传的图片/视频方式进行比较,如果一致,则判断为不良内容。MD5比对,本质上是把图像当作一个二进制文件,通过比对二进制内容来判断是否违规,这种方式忽略了图像本身的表征属性,其短板是无法解决同一张图的变种问题。3.语音内容识别音频的特点是信息隐蔽和识别都很困难。传统利用音频指纹等几何校准匹配的方法,可以有效被动拦截互联网的有害内容。而随着技术的不断演绎和迭代,针对音频的识别也变被动为主动,例如:获取到音频后通过音频分类将里面可能含有色情的声音识别出来,之后利用语音切分技术提取有效的语音部分;或是,利用说话人识别技术判断得到的音频是否含有特定人物和语种信息,以决定该音频是否含有不良信息;再有就是利用语音转文字技术,将听见转化为看见,并且实现将段、句、字、音素的文本信息和原始音频进行对齐,得到整段音频的对应文字信息,再通过文本安全技术就可以识别了。9.2.1文本内容安全算法1.字符串匹配BF算法KMP算法Horspool算法BM算法Shift-And算法RK算法2.词频计算在文档中,并不是每个词对于文章含义的贡献都是一样的,而字符串匹配的方法并未考虑这一点。因此,要设计算法计算文章中词的贡献度,将最能表达文章含义内容的词(关键词)筛选出来再进行比对。TF-IDF词频计算一种解决方案。3.潜语义计算潜语义分析(LatentSemanticAnalysis,简称LSA/LSI)试图去解决这个问题,它把词和文档都映射到一个潜在语义空间,在这个空间内进行计算分析,取得良好的效果。潜语义空间的维度个数可以由分析者指定,并且往往比传统向量空间维度更少,所以LSA/LSI也可视为一种降维技术。4.自然语言处理如前所述,为了像人类一样对语言进行理解和运用,文本计算中人们还会采用NLP。NLP利用人类交流所使用的自然语言与机器进行交互通讯的技术。通过自然语言处理,使得计算机对人类自然语言能够可读并理解。NLP的相关研究始于人类对机器翻译的探索,涉及语音、语法、语义、语用等多维度的操作。简而言之,其基本任务是基于本体词典、词频统计、上下文语义分析等方式对待处理语料进行分词,形成以最小词性为单位且富含语义的词项单元。然而,NLP技术距离成熟运用也还有很长的路要走。9.2.2文本内容分析工具jieba库sklearn.feature_extraction.text库Wordcloud库Gensim其它9.2.3文本内容安全程序设计1.BF字符串匹配首先将原字符串(例如:ABCDEFG)和子串(例如:DEF)左端对齐,逐一比较;如果第一个字符不能匹配,则子串向后移动一位继续比较;如果第一个字符匹配,则继续比较后续字符,直至全部匹配,如下图9-1所示。

start=time.time()whilei<=len(t)-len(p):j=0whilet[i]==p[j]:#❶i=i+1j=j+1ifj==len(p):breakifj==len(p)-1:count=count+1i=i+1#❷j=0

print(count)print("耗时",time.time()-start,"秒")2.中文词频提取词频可以反映出词对文本的贡献程度,下面代码利用了sklearn.feature_extraction.text库的TfidfVectorizer类,对中文的TF-IDF的提取过程,注意中文处理要先采用jieba进行分词。TF-IDF的主要思想基于,如果某个词或者短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF算法步骤包括如下三步。(1)计算词频:词频=某个词在文章中出现的次数考虑到文本有长短之分,考虑到不同文本之间的比较,将词频进行标准化计算:词频=某个词在文本中出现的次数/文本的总词数词频=某个词在文本中出现的次数/该文出现次数最多的词出现的次数(2)计算逆文档频率需要一个语料库(corpus)来模拟语言的使用环境。逆文档频率=log(语料库的文档总数/(包含该词的文档数+1))(3)计算TF-IDFTF-IDF=词频(TF)*逆文档频率(IDF)TF-IDF算法的优点是简单快速,结果比较符合实际情况,但是单纯以“词频”衡量一个词的重要性,不够全面,有时候重要的词可能出现的次数并不多,而且这种算法无法体现词的位置信息,出现位置靠前的词和出现位置靠后的词,都被视为同样重要,是不合理的。defchinVec():

#中文特征值化

c1,c2,c3=cutWord()

print(c1,c2,c3)

tf=TfidfVectorizer()

#特征值提取

data=tf.fit_transform([c1,c2,c3])#❷

print(data)#sparse格式的权重

print(data.toarray())#输出权重矩阵

#统计单词

print(tf.get_feature_names())

print(len(tf.get_feature_names()))

returnNone

3.词云关键词提取f=open('content1.txt',encoding='utf-8').read().\replace("\n","").replace("\t","").replace("\u3000","")#❶

#中文分词text=''.join(jieba.cut(f))#❷

#❸创建set集合来保存停用词stopwords=set()s=open("baidu_stopwords.txt","r",encoding="utf-8")line_contents=s.readline()whileline_contents:#去掉回车line_contents=line_contents.replace("\n","").replace("\t","").replace("\u3000","")stopwords.add(line_contents)line_contents=s.readline()

w=wordcloud.WordCloud(font_path='msyh.ttf',stopwords=stopwords,background_color="white")#❹w.generate(text)w.to_file("pywcloud.png")

#显示词云plt.imshow(w,interpolation='bilinear')plt.axis('off')plt.show()4.潜语义分析单词-文档矩阵(term-document):构造与分解

单词-文档矩阵(term-document):构造与分解

defLSI():dictionary,corpus=GenDictandCorpus()corpus_tfidf=Tfidf()#❶

#❷初始化LSI转化器lsi=models.LsiModel(corpus_tfidf,id2word=dictionary,num_topics=2)corpus_lsi=lsi[corpus_tfidf]#❸在这里实际执行了bow->tfidf和tfidf->lsi转换fordocincorpus_lsi:print(doc)

lsi.save('/tmp/model.lsi')#❹lsi=models.LsiModel.load('/tmp/model.lsi')#❺9.3.1图像内容安全算法图像内容安全是内容安全领域相对特殊的领域,其所面对的安全分析目标往往定义并不明确,数据种类繁杂且多变(分类如图9-6所示,具体可分为:涉黄、涉政、暴恐、违禁、广告几类)、图像质量差距大,而且还会经常面临对抗攻击(对图片进行缩放、旋转、裁剪、过滤等),因此对算法识别能力和鲁棒性的要求较高。图像内容安全的困难性主要体现出两个方面:由于线上数据正常比例较高,且图像类型众多,误判问题非常容易集中体现;另一方面,由于图像质量参差不齐,图像敏感特征往往不够明显,小目标、模糊、形变等问题较常出现,因此实现起来非常困难。9.3.2图像内容分析工具OpenCV库TensorFlow库Keras库Pillow库其它9.3.3图像内容安全程序设计1.基于比对的图片内容安全检测defsift(image):#计算特征点提取&生成描述时间start=time.time()sift=cv2.xfeatures2d.SIFT_create()#❶使用SIFT查找关键点keypoints和描述符descriptorskp,des=sift.detectAndCompute(image,None)end=time.time()print("特征点提取&生成描述运行时间:%.2f秒"%(end-start))#将特征点保存到文件np.savetxt(".\SIFT.txt",des,fmt='%d')

returnkp,desdefshow_sift(kp,des):#查看关键点print("关键点数目:",len(kp))

#打印关键点参数foriinrange(2):print("关键点",i)print("数据类型:",type(kp[i]))print("关键点坐标:",kp[i].pt)

print("================")

#查看描述print("描述的shape:",des.shape)#SIFT关键点描述子为128维的向量,所以输出为描述的shape:(关键点个数,128)#128维的每一维都是一个双精度浮点型数foriinrange(2):print("描述",i)print(des[i])kp_image=cv2.drawKeypoints(image,kp,None)plt.figure()plt.imshow(kp_image)plt.savefig('kp_image.png',dpi=300)plt.show()2.深度学习内容安全编程深度学习内容安全编程的代码参考了图像深度学习二分类问题设计思想,搜集安全与不安全的图像样本训练模型,对测试样本进行分析。这一过程包括:数据准备、构建模型、模型训练(含数据预处理)、预测几个步骤,如果样本太少还需要进行数据增强,流程图如图9-24所示。生物神经元生物神经元通过改变连接的强度进行学习!MP神经元模型MP是构建神经网络大厦的基石!MP模型中的权重是预先设置的,因此不能学习。因此需要设计能够调整权值的方法实现学习。从神经元到感知机(Perceptron)神经元感知机区别:感知机有两层(输入层、输出层),神经元一层神经元的权值是固定的,感知机的权值可以改变感知机模型(两层神经元组成),每一个输入x与其权值w相乘求和然后加上一个偏置,然后输入到激活函数f中。w和b可以不断调整,调整的过程就是学习过程!感知机初步解决了学习的问题,却存在一个致命的问题,无法解决异或问题!如图,从左到右,“与”、“非”、“或”问题都是线性可分的,感知机可以很容易通过调节参数获得其决策边界,但是“异或”却是线性不可分的,感知机对其无能为力。生活中的异或问题:动物异性生殖,袜子左右成对…最早的神经网络就是前馈神经网络,他它包括输入层、隐藏层、输出层。感知机就是没有隐藏层的前馈神经网络。前馈神经网络也就是多层感知机!多层感知机解决了非线性可分问题。万能近似定理(UniversalApproximationTheorem)是由美国数学家卡尔·米勒(KarlMenger)在1932年提出的:对于一个任意的连续函数,都可以用一个神经网络来近似表示。这个定理有助于证明神经网络具有较强的函数近似能力。他证明了,对于任意的连续函数,都可以用一个无穷多项式来近似表示,这个定理后来被扩展到神经网络的领域。万能近似定理的意义在于,它证明了神经网络具有较强的函数近似能力。这使得神经网络在许多应用中得到了广泛的使用,如图像识别、语音识别、自然语言处理等。构建网络fromkerasimportmodelsimporttensorflowastf

defget_img(img_path):img=tf.io.read_file(img_path)#根据路径读取图片img=tf.image.decode_jpeg(img,channels=0)#解码图片为jpg格式img=tf.image.resize(img,[150,150])#图像大小缩放img=tf.cast(img,dtype=tf.float32)/255.#转换成张量img=tf.expand_dims(img,0)returnimg

if__name__=='__main__':img=get_img("./test.png")predict_model=models.load_model('legal_and_illegal_1.h5')result=predict_model.predict(img)print("类别:",result.argmax(axis=1),"\n概率:",result)样本数据增强有了上述训练的模型,就可以未知样本进行预测了3在线深度学习内容审核工具上述基于深度学习的模型训练与使用,对于没有人工智能专业基础的程序员而言是相对困难的,尤其是在缺乏大量数据的条件下,更是难以实施。此时,可以借助华为云(/)提供的“内容审核-图像Moderation(Image)”(/moderation/index.html),直接利用华为已经训练好的模型对图像进行识别。该内容审核-图像Moderation(Image),基于深度学习的图像智能审核方案,准确识别图片中的涉黄、涉暴、政治敏感、广告、不良场景等内容,识别快速准确,帮助企业降低人力审核成本。使用步骤包括以下。步骤一:通过Token或AK/SK获取认证信息(/api-moderation/moderation_03_0003.html)。步骤二:下载获取内容审核SDK软件包(/sdk?MODERATION)。步骤三:环境配置及SDK工程导入。步骤四:使用SDK提供的API。内容审核服务所提供的API包括文本审核、扭曲校正、清晰度检测。图像内容审核代码在moderation_image_aksk_demo.py(ak/sk方式)和moderation_image_token_demo.py(token方式),图像ModerationSDK文件结构如图9-31。frommoderation_sdk.utilsimportencode_to_base64frommoderation_sdk.moderation_imageimportmoderation_image_akskfrommoderation_sdk.utilsimportinit_global_env

if__name__=='__main__':init_global_env('cn-north-4')#❶

app_key='*************'#❷app_secret='************'

#❸本地文件方式result=moderation_image_aksk(app_key,\app_secret,encode_to_base64('data/moderation-terrorism.jpg'),'',['porn','politics','terrorism','ad'],'')print(result)

demo_data_url=

'/terrorism.jpg'#❹url方式result=moderation_image_aksk(app_key,app_secret,"",demo_data_url,\['porn','politics','terrorism','ad'],'')print(result)9.4.1语音内容安全模型图9-32MFCC语音特征分析一般的模式识别包括预处理,特征提取,模式匹配等基本模块。音频的预处理,采用对输入语音进行分帧,加窗,预加重等方法实现,然后进行特征提取。常用的特征参数包括:基音周期,共振峰、短时平均能量或幅度、线性预测系数(LPC)、感知加权预测系数(PLP)、短时平均过零率、线性预测倒谱系数(LPCC)、自相关函数、梅尔倒谱系数(MFCC)、小波变换系数、经验模态分解系数(EMD)、伽马通滤波器系数(GFCC)等。在第六章中,已经对MFCC进行了介绍。帧是语音特征的最基本单位,每帧的长度为25毫秒,称为帧长。每两帧之间有25-10=15毫秒的交叠。分帧后,语音就变成了很多小段。以MFCC为例,连续的声音经过特征提取的帧序列就成了一个12行(假设声学特征选取12维)、N列的一个矩阵(N为总帧数)。对于得到的特征,会将其按照帧、状态、音素的尺度顺序组合,最后经过模式匹配合成单词/词,这个过程经过三个步骤:第一步,把帧识别成状态;第二步,把状态组合成音素;第三步,把音素组合成单词。9.4.2语音内容分析工具SpeechRecognitionAipSpeech9.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论