dm-verity-ramdisk文件系統校驗的解決方法
近期做的一個項目,由于客戶對安全性要求比較高,涉及到文件系統校驗的問題,起初是在ramdisk中掛載rootfs后對所有重要的文件檢查sha256,但是隨著rootfs的逐步增大,發現校驗花費的時間太長,竟然達到十幾秒,于是就想改用一種方案,首先想到的是整個rootfs校驗后在掛載,這樣肯定是比一個文件一個文件校驗要來得快些,但是項目中用的是nandflash,并不是EMMC,所以文件系統只能采用支持壞塊管理的ubifs,于是這里就存在問題了,ubi層負責邏輯塊到物理塊的映射,也就是說在物理存儲上塊不一定是邏輯連續的,這樣在ubifs還沒有掛載之前讀取整個鏡像然后整體校驗肯定是行不通的,一個解決辦法是讀取ubi卷設備而不是mtd設備,這樣的話是可行的,但是一種更好的辦法是采用dm-verity,但是這個是Linux項目,并不是Android項目,通過對dm-verity移植,這里記錄一下對dm-verity的理解。
dm-verity是什么?
【資料圖】
它是dm(device mapper)的一個target,是一個虛擬塊設備,專門用于文件系統的校驗
+------------------------------+
| fs |
+------------------------------+
|
↓
+-------------------------------+
| dm-verity |
+-------------------------------+
|
↓
+-------------------------------+
| block driver |
+--------------------------------+
|
↓
+-------------------------------+
| block device |
+-------------------------------+
fs在掛載的時候直接指定dm-verity設備,也就是fs直接交互的設備是dm-verity,dm-verity調用真正的塊驅動去讀取對應的塊,并計算hash值和hash-tree中對應的hash值進行比較,如果相等,則說明塊沒有被篡改,返回塊數據給fs,如果不相等,則說明塊被篡改,根據mode是返回EIO,或者直接重啟。
首先通過ioctl去crt(create)一個dm-verity設備,通過傳入參數指定這個創建的dm-verity設備的一些特性,傳入的參數包括verity-table,當然也可以使用命令直接創建:
Set up a device: # dmsetup create vroot --readonly --table \ "0 2097152 verity 1 /dev/sda1 /dev/sda2 4096 4096 262144 1 sha256 "\ "4392712ba01368efdf14b05c76f9e4df0d53664630b5d48632ed17a137f39076 "\ "1234000000000000000000000000000000000000000000000000000000000000"
verity-table的內容如下:
40 def build_verity_table(block_device, data_blocks, root_hash, salt):41 table = "1 %s %s %s %s %s %s sha256 %s %s"42 table %= ( block_device,43 block_device,44 BLOCK_SIZE,45 BLOCK_SIZE,46 data_blocks,47 data_blocks + (METADATA_SIZE / BLOCK_SIZE),48 root_hash,49 salt)50 return table
block_device描述了該dm-verity設備對應了那個底層的塊設備,第二個block_device指定了hash-tree存在于哪個塊設備上,對于我這個項目就是/dev/ubiblock0_0,BLOCK_SIZE描述了多大一個塊對應一個hash,一般都4k, data_blocks描述了有多少個4k的塊,data_blocks + (METADATA_SIZE / BLOCK_SIZE)表示hash-tree在對應塊設備上的偏移,由此來找到hash-tree,root_hash為hash-tree的根hash。
dm-verity工作在塊設備之上,所以這里是/dev/ubiblock0_0,于是就不能再用ubifs 了,因為ubifs工作在卷設備之上,而/dev/ubi0_0是一個字符設備,所以只能采用工作在塊設備之上的文件系統,我這里采用了squashfs,因為它比較簡單。
dm-verity的工作原理
通過前面的描述,很容易理解dm-verity的工作過程,就拿我這個項目來說,squashfs需要讀取某個塊時,調用dm-verity讀取對應的塊,dm-verity根據verity-table中block_device,調用block_device讀取對應的塊,讀取到塊的內容后dm-verity會算出塊的sha256,然后跟verity-hash-tree中相對應的hash值進行比較,如果相等,則說明該塊沒有被修改過,一切正常。
為何dm-verify支持所有的文件系統?
該項目在選用dm-verity之前,我一直都在懷疑dm-verity是否支持ubifs,通過前面的描述,如果你對dm-verity的工作原理足夠理解的話,你就會發現,dm-verity跟文件系統是無關的,只要文件系統是工作在塊設備之上的,所以ubifs是不可以的,工作在塊設備之上的文件系統都是可以的,dm-verity是對邏輯塊校驗hash值,產生hash-tree的時候也是根據文件系統鏡像來產生的(然后除ubifs之外,不存在邏輯塊的概念,但是可以類似將它看出邏輯塊直接等于物理塊),至于邏輯塊到物理塊直接是怎樣映射,dm-verity根本就不需要關心。
dm-verity為何這么快?
了解了原理之后這個就很好回答了,因為dm-verity并不需要在掛載前對所有的塊進行校驗,而是在使用的過程中用到哪個塊就校驗哪個塊的hash值,這樣對于像android一個分區幾個G來說優勢就顯得更加明顯了。
dm-verity是如何保證安全的?
前面說過每個block都在hash-tree中記錄了對應的hash值,這樣就能防止別人篡改block的內容了,但是如果黑客把block改了之后,重新計算hash把hash-tree中對應的hash值也改了呢,這樣就能神不知鬼不覺了,所以必須要有一種機制防止hash-tree被篡改,hash-tree是這樣一種結構,所有的block對應的hash值放在最底層,也就是第0層,如下圖:
第1層的hash值由下面一層的hash值計算得到,除了第0層,其他的層hash值都不對應物理上block的hash值,它們存在的意義只是為了構建hash鏈,防止hash篡改,這樣第0層的hash值改變了的話,上層對應的hash值也需要修改,也就是說根hash也需要修改,所以只需要一種機制能保證root-hash不被篡改就行了。
Android中采用的方法是算root-hash的簽名,verity-table中保存了root-hash,對verity-table進行簽名,它們的存儲分布如下:
在Android中,系統進入ramdisk后,由/system/core/fs_mgr/ 負責dm-verity設備的創建,verity-table的校驗,這里涉及到的一些知識是:
1.如何知道哪些分區需要校驗?
fs_mgr通過讀取fstab文件,其中記錄了哪些分區需要校驗
2.如何知道需要校驗的分區中verity-table的位置?
這是用戶空間(/system/core/fs_mgr/ )的工作,android的做法是通過讀取文件系統的超級塊(Superblock,簡稱SB),里面記錄了文件系統的大小,verity-table緊挨著文件系統鏡像之后
3.簽名的key存放在哪里?
這里指的是public key
verity-table-metadata主要是為了校驗verity-table的合法性,android的格式為:
def build_metadata_block(verity_table, signature): table_len = len(verity_table) block = struct.pack("II256sI", MAGIC_NUMBER, VERSION, signature, table_len) block += verity_table block = block.ljust(METADATA_SIZE, "\x00") return block
verity-table的校驗是在用戶空間(/system/core/fs_mgr/ )中完成的,校驗合法之后會將verity-table傳給kernel使用。
上面說的這些只是Android的一套,自己實現的話沒必要完全按照它的來,比如說verity-table和hash-tree沒有必要放在分區中,可以放在ramdisk中,簽名和校驗RSA2014可以自己實現,public key存放的位置可以自己決定,如放在ramdisk中或放在OTP中。
dm-verity異常處理
dm-verity簽名校驗失敗后會怎么做呢?下面是Android的做法:
在metadata分區中會記錄dm-verity的狀態,提示是否掛載,同時在dm-verity設備創建時也會指定mode,dm-verity在內核中塊hash校驗失敗后不同的mode表現的行為不一樣。
// Verity modesenum verity_mode { VERITY_MODE_EIO = 0, VERITY_MODE_LOGGING = 1, VERITY_MODE_RESTART = 2, VERITY_MODE_LAST = VERITY_MODE_RESTART, VERITY_MODE_DEFAULT = VERITY_MODE_RESTART};static int load_verity_table(struct dm_ioctl *io, char *name, uint64_t device_size, int fd, char *table,int mode){ ... if (mode == VERITY_MODE_EIO) { //對于比較老的內核dm-verity驅動,是不支持mode的,當block hash校驗不過時總是cause an I/O error for corrupted blocks // allow operation with older dm-verity drivers that are unaware // of the mode parameter by omitting it; this also means that we // cannot use logging mode with these drivers, they always cause // an I/O error for corrupted blocks strcpy(verity_params, table); } else if (snprintf(verity_params, bufsize, "%s %d", table, mode) < 0) { return -1; } ... ioctl(fd, DM_TABLE_LOAD, io);}
指定mode后,kernel中碰到校驗不過的塊的處理:
/* * Handle verification errors. */static int verity_handle_err(struct dm_verity *v, enum verity_block_type type, unsigned long long block){ ... out: if (v->mode == DM_VERITY_MODE_LOGGING) return 0; if (v->mode == DM_VERITY_MODE_RESTART) kernel_restart("dm-verity device corrupted"); return 1;}
記錄一下移植的過程中踩過的坑:
在移植的過程中發現Android6.0是有bug的,在產生hash-tree的時候:
image_size = os.stat(out_file).st_size
由于img是sparse過后的,所以這里的大小肯定是不對的,正確的做法應該是先unsparse,然后再計算大小。
另外這里采用的是ubiblock:
ubiblock --create /dev/ubi0_0
mtd--->ubi------>ubi vol----->ubiblock
另外還可以采用gluebi:
mtd---->ubi---->ubi vol--->mtd--->mtdblock
ubiblock比較簡單,缺點是只讀,在掛載時必須指定為只讀:
mount -t squashfs /dev/ubiblock0_0 /mnt -o ro
生成燒錄鏡像的過程:
rootfs dir---------mksquash------------>rootfs.squashfs-----------ubinize-------------->rootfs.ubi
把rootfs.ubi燒進去即可。
最終實現的效果如下:
標簽: 文件系統
相關推薦:
精彩放送:
- []天天看點:李錦記蒸魚豉油是什么?李錦記蒸魚豉油怎么制作的?
- []什么叫信息化管理?信息化管理相關介紹
- []dm-verity-ramdisk文件系統校驗的解決方法
- []世界關注:常用的數學函數 數據分析最常用的excel函數公式大全
- []PS分配內存不足怎么辦?解決方案來了
- []世界觀察:getParameter和getAttribute的區別是什么?區別介紹
- []天天播報:科幻小說作家赫內·巴赫札維勒:時間旅行的悖論
- []動態焦點:安卓開發Android studio學習筆記 利用SQLiteDatabase操作數據表
- []什么是股票熔斷?股票熔斷機制有什么意義?
- []今日熱門!人工生命中最關鍵的一步——虛擬細胞的構建
- []焦點要聞:浮點保留兩位小數 R語言初級教程
- []環球微動態丨賽爾號星球大戰米咔怎么超進化?超進化的方法步驟?
- []世界熱點!什么是實數?數軸上的點與實數是什么意思?
- []天天觀點:如何自學英語?自學英語的方法有哪些?
- []世界觀天下!意大利旅游局克里斯·瓦洛蒂:鼓勵目的地提供數字化服務
- []小雛菊的花語是什么?小雛菊有什么寓意?
- []靜電怎么消除?消除靜電的方法步驟?
- []天天新資訊:祖國建設取得的成就有哪些?祖國建設取得的成就介紹?
- []熱血江湖怎么快速卡技能?快速卡技能的方法步驟?
- []快資訊丨凱旋王國有什么好玩的?凱旋王國游玩攻略?
- []【天天新要聞】攜程宣布接入百度文心一言,布局“AI+旅行”應用
- []【全球播資訊】科學家發明事跡有哪些?科學家的發明有哪些?
- []環球快看:凌瑋科技:我司二氧化硅主要是凝膠法和沉淀法工藝合成,純度均在98%以上
- []股東股份減持計劃終止 新寧物流說明情況
- []加盟還沒開店被坑加盟費,看我如何追回
- []每日速訊:中信建投期貨2月15日早間交易策略
- []光威復材:這是一個合作研發項目,目前了解不多
- []天天要聞:海泰科:截至2023年2月10日,公司股東總戶數為7,588戶
- []每日熱文:在上海工作公司交的深圳社保怎么辦(在上海工作交的深圳社保怎么辦)
- []【世界速看料】《海的盡頭是草原》提名香港金像獎最佳亞洲華語電影
- []暫停參保是當月就停了嗎怎么辦(暫停參保是當月就停了嗎)
- []江蘇銀行寶藏信用卡怎么樣好用嗎(江蘇銀行寶藏信用卡怎么樣)
- []【全球快播報】世界上最悲傷作文《淚》的全文
- []微動態丨福龍馬:公司與龍巖卓越新能源股份有限公司沒有業務往來
- []全球訊息:中南文化:公司一定會搶抓經濟復蘇機遇,全力提質增效,積極開拓業務,為當地的經濟發展貢獻力量
- []【天天播資訊】海南高速:公司董事會、監事會換屆工作已于2023年1月6日完成
- []天天熱點評!聚合順:截至2023年01月20日收盤,公司股東人數為10129
- []天天快看點丨意外社保能報銷嗎(社保意外報銷和疾病報銷一樣嗎)
- []環球熱消息:跑贏頂流 600億白酒基金強力反彈!后續空間在哪?國內最大白酒基金經理發聲
- []焦點!中信建投:上游即將進入長周期價格下行通道 繼續看多光伏組件
- []環球短訊!沒有深圳社??梢栽谏钲谫I房嗎(沒有社保的人能在深圳買房嗎)
- []環球滾動:大灣區航空:挑戰老牌王者
- []環球視點!現代和起亞更新830萬輛汽車防盜系統:因只需1根USB線即可破解
- []部分明星私募踏空“甩鍋”預警線遭質疑
- []債基迎建倉時點?火爆募集80億 首批混合估值法產品賣爆
- []當前熱門:乙肝可以報銷醫療保險嗎(乙肝可以報銷醫療保險嗎)
- []鹽湖股份2月14日現6筆大宗交易
- []多家券商暫停內地身份港股開戶,跨境證券何去何從?
- []天天快消息!大葉股份:我們會及時轉達給管理層。有關公司利潤分配計劃敬請關注公司公告
- []每日速看!昆明拔牙可以用醫保嗎現在(昆明拔牙可以用醫保嗎)
- []近100家旅行社被處罰“拉黑”,“大病初愈”的出境游怎么玩?
- []天天熱文:一日售罄、按比例配售再現!還有基金一天涌入超70億元 權益基金又熱起來了?
- []環球最新:農行app可以提前還房貸嗎(農行app可以提前還房貸嗎)
- []全球今亮點!社保10號沒扣到會不會再扣一次(社保10號沒扣到會不會再扣一次)
- []今日要聞!上海拔牙可以走醫保報銷嗎(拔牙上海醫??梢詧箐N嗎)
- []環球快播:在國外可以辦信用卡嗎(在國外可以辦信用卡嗎)
- []世界今日訊!沒有醫??床『苜F嗎(沒有醫??床≠F嗎)
- []環球熱推薦:買車貸款需要什么手續和條件(貸款買車沒有購車合同怎么回事)
- []全球視訊!不看負債和征信的貸款(不看征信的房產抵押貸款)
- []摩托車保險可以退保嗎(摩托車商業險怎么退保)
- []每日精選:中國人財保險(ADR)(PPCCY.US)2月14日收盤報23美元/股,漲0.2%
- []當前通訊!臘腸怎么做比較好吃
- []焦點滾動:美股異動 | 叮咚買菜(DDL.US)逆市漲超10% 單季GAAP凈利潤首次轉正
- []天天新動態:西恩科技更新招股書:IPO前大手筆分紅“套現”, 趙志安為實控人
- []焦點速看:低保戶可以貸款嗎,符合條件可以貸款
- []辦公室管理制度范本
- []泰國將對外國游客征收入境費具體詳細內容是什么
- []1993年以前社保怎么算(1993年到2001年社保怎樣補繳)
- []國內十大文學網站排名
- []世界熱議:沒有浦發銀行網點怎么激活信用卡功能(浦發不去網點能激活嗎)
- []今日快看!江西這些文化火“出圈”!網友:“戳到我心巴上了”
- []環球熱點評!金太陽:2月13日公司高管諸遠繼減持公司股份合計2.4萬股
- []全球微頭條丨天秦裝備:2月13日公司高管張澎、王素榮減持公司股份合計4.1萬股
- []友訊達:2月13日公司高管崔濤減持公司股份合計13萬股
- []今頭條!上海艾錄:2月13日公司高管陳曙減持公司股份合計2萬股
- []醫保幾號可以查詢(醫保每個月幾號可以查到)
- []環球微速訊:合肥市醫??▉G了去哪里補辦(合肥市醫??ㄑa辦地點)
- []今日熱門!*ST中潛:2月13日至2月14日公司高管高宗標減持公司股份合計408萬股
- []實時焦點:步科股份:2月13日公司高管池家武減持公司股份合計12.4萬股
- []速遞!海目星:2月9日公司高管劉明清減持公司股份合計6萬股
- []世界快訊:秦安股份:2月9日至2月13日公司高管孫德山減持公司股份合計3.81萬股
- []建設銀行理財白金卡有年費嗎(建行卡長期不用扣年費嗎)
- []全球快看點丨2022年第四季度五星級飯店平均房價504元
- []養老保險費計入什么會計科目(養老保險費計入什么會計科目)
- []時訊:太陽的壽命還有多久呢_太陽的壽命還有多長
- []神州泰岳:公司目前未與OpenAI、騰訊、百度在自然語言處理(NLP)領域開展合作
- []全球最新:投資者:拿不拿到賠償不重要,但公司要承擔責任 *ST凱樂豈能一退了之?
- []天天觀速訊丨北京社??ㄋ嗅t院都能用嗎(北京社保卡所有醫院都能用嗎)
- []愿得一心人,情人節來寧波阪急“Tu”露真心
- []嘉和美康:截至1月31日,公司的股東人數為8036戶
- []康華生物:公司正在全力推進募投項目建設,公司按照相關規定履行信息披露義務,項目具體進展請關注后續公告
- []環球通訊!盛天網絡:盛天云可以為各種應用提供數據支持,包括ChatGPT
- []健康茶飲新風向,甜啦啦功夫茶系列突圍
- []河南農商銀行信用卡申請(河南農商銀行信用卡到哪里辦)
- []環球熱資訊!競選學生會宣傳部干事演講稿
- []熱點評!不在蘇州工作了社保怎么辦理(不在蘇州工作了社保怎么辦卡)
- []【播資訊】2月多家航司恢復國際及地區航線,東航每周可達410班
- []全球熱推薦:信用卡買手機分期占用額度嗎(信用卡買手機分期占用額度嗎)
- []環球微資訊!只出商業險不出交強險保費上浮嗎怎么算(只出商業險不出交強險保費上浮嗎)
- []焦點要聞:貸款還不上如何和銀行協商延期還款(銀行貸款到期還不上可以延期嗎)
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨家財務顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年營收11.24億元 期內研發費用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發布2021年Q2財報 期內凈利潤達1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內實現營收同比增長17.27億元
- 汽車之家發布2021年第二季度業績 期內新能源汽車品牌收入增長238%
- 中信銀行上半年實現凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價格創新高 全天成交額達1.29億元
- 上半年生物藥大增45% 關鍵財務指標好轉營收賬款持續下降
- 史上第一人!吳亦兵奪得中國網協球員首個ATP巡回賽冠軍
- 新媒股份:截止至2023年2月10日,公司股東總戶數為23,228戶
- 金隅集團:請參考公司以往對您相似問題的
- 焦點快播:奧馬電器:公司有部分出口業務通過線上跨境電子商務平臺開展,目前占比較小
- 錦富技術:公司本次向特定對象發行股票事項已獲得中國證券監督管理委員會同意注冊的批復
- 天天亮點!券商即將入局全國碳市場,我們可以炒碳了?
- 世界觀焦點:超大城市如何打好旅游牌
- 【速看料】大漲近8%!白酒反彈到哪兒了?哪些基金回血快?
- 廣東珠海 :2025年新增光伏裝機規模約3.7GW
- 精選!強強聯手!瑞浦蘭鈞牽手蘇文電能!
- 天天熱頭條丨14.58億買爆!“日光基”再現 戶均認購近15萬!權益基金發行大提速
- 世界關注:寧波銀行信用卡哪個卡好用(寧波銀行信用卡好不好)
- 只有11天!寶利國際HJT概念股之旅的誕生與消亡
- 科士達、上能電氣入圍中石化勝利油田孤東光伏電站項目集中式逆變器框架采購
- 【全球播資訊】興業銀行用了兩年一直不提額(興業銀行兩年不提額)
- 全球要聞:淘寶成交記錄在哪看?買家查看成交記錄的方法是什么?
- 積水成淵是什么意思?積水成淵出自哪里?
- 【當前獨家】基金持倉成本價怎么算?持倉單價是什么?
- 焦點報道:滬指窄幅震蕩漲0.28%,有色金屬板塊逆市走強,市場焦點股中航電測9天飆升超400%
- 【世界報資訊】DNF彈藥帶什么武器裝備?DNF彈藥帶的武器裝備有哪些?
- 全球快消息!我的僵尸王爺電視劇有哪些?我的僵尸王爺系列電視劇介紹?
- NYMEX或跌破78.45美元
- 每日速訊:dnf宇宙靈魂怎么得?dnf宇宙靈魂攻略?
- 東利機械:公司會在定期報告中披露截至報告期末的股東戶數
- 環球今日訊!熊貓tv為什么會倒閉?熊貓tv倒閉的原因是什么?
- 漢宇集團:截至2023年2月10 日,公司股東人數(已合并)為31,617戶
- 桃林口怎樣釣魚?桃林口釣魚策略?
- 全球微頭條丨水芝澳是什么檔次?水芝澳品牌介紹?
- 情人節甜啦啦“莓好”上新
- 地鐵設計:截至2022年6月30日,公司已簽訂的合同保有量累計超過113億元,在手訂單充足
- 全球最資訊丨七彩圣誕樹原理是什么?七彩圣誕樹的“營養液”是什么?
- 每日觀點:珠江鋼琴:公司主要從事鋼琴及數碼樂器產品的研發、制造、銷售與服務以及藝術教育等文化產業
- 全球觀天下!國際油價下跌,應對俄羅斯減產,美國政府再打這張牌
- 環球新動態:信用卡分期三年利息怎么算的(信用卡分期三年利息怎么算)
- 全球熱頭條丨梅嶺茶香圖
- 全球熱消息:2月14日珠城科技漲停分析
- 2月14日納爾股份漲停分析:氫能源/燃料電池,流感/口罩概念熱股
- 2月14日新華傳媒漲停分析:國企改革,移動支付,上海國企改革概念熱股
- 每日速看!長源東谷:公司新能源混動車型的缸體、缸蓋項目開發順利,目前已經通過試驗驗證,進入初步量產階段
- 每日速看!2月14日金達威漲停分析:長壽藥NMN,維生素,新冠藥物概念熱股
- 全球視訊!男的有社保女的有農保,怎么報生育險(男的有社保女的有農保,怎么報生育險)
- 當前關注:人壽康寧終身保險做心臟支架(康寧終身保險保支架嗎)
- 天天關注:社保個人交200多公司交多少(社保個人交200多公司交多少)
- 【獨家】口腔醫院用別人的醫??▓箐N(口腔醫院用別人的醫???
- 天天熱議:工信部組織召開新能源汽車動力電池回收利用工作座談會
- 博菲電氣:截至2023年1月31日公司共有股東9,869戶
- 【環球播資訊】三峽能源:除風電、光伏新能源開發,公司正在積極開展光熱、氫能、壓縮空氣儲能等能源技術研發及工程示范
- 全球最新:羅博特科:目前光伏電池鈣鈦礦技術路徑尚處于早期的研究開發階段,公司對該技術方向保持高度關注
- 創意禮物送男生
- 華媒控股:華泰一媒目前未開展該類技術的業務
- 環球新資訊:儲能+數字化,深耕綠色能源轉型的企業長啥樣?
- 世界視訊!首旅如家總經理孫堅:去搶、去奪,酒店行業打響爭奪戰
- 省能源局赴山西省調研能源綜合改革試點和能源要素市場化配置工作
- 八大券商主題策略:有色大年來了!把握順周期機會 這些標的迎來價值重估
- 山東省實施新型儲能“百萬千瓦”行動計劃!
- 【天天播資訊】上海醫保賬戶每月進多少錢(上海醫保賬戶每個月多少錢)
- 當前簡訊:旅游迎來“暖春”,2023年國內主題公園怎么玩?
- 當前速讀:科華數能巴西最大儲能項目投運
- 頭條:初一下冊生物基礎知識點總結
- 中晟高科:目前我公司不具備二噁英處理技術或產品,感謝您對我們的關注和支持
- 國纜檢測:截至2023年2月10日,公司股東總戶數為6,525戶
- 【環球報資訊】科拓生物:目前公司暫未與明治乳業(天津)公司進行合作
- 當前焦點!佛山醫保在廣州定點醫院(廣州醫保在佛山的定點醫院)
- 天天即時看!“頂流”基金經理頻頻出手 關注定增市場回暖機會
- 每日短訊:德賽西威:公司業務發展良好,近年來業務規模持續提升,目前訂單充沛,市場前景廣闊
- 今日熱議:一張圖:黃金原油外匯股指"樞紐點+多空占比"一覽(2023/02/14周二)
- 全球今頭條!【BT金融分析師】Lyft股價一度下跌超過30%,分析師稱其長期增長前景堪憂
- 四川牛背山變“牛貴山”?觀光車將收費,景區稱訂別墅可自駕
- 福特35億美元磷酸鐵鋰電池工廠定了!寧德時代提供技術支持
- 世界滾動:預期經濟復蘇 市場追捧“元素周期表”!周期主題基金經理梳理
- 【焦點熱聞】6萬億能帶動經濟騰飛么?
- 河北建投4個抽水蓄能項目列入河北抽水蓄能“十四五”重點前期項目
- 世界快播:美盈森:朋友浙江甲骨文超級碼科技股份有限公司為公司參股公司,公司持有甲骨文超級碼9.8%的股權
- 【全球時快訊】金達威:公司在定期報告中按要求披露股東人數 其他時點的股東人數未被董事會授權披露
- 億晶光電:公司目前沒有硅片產能,公司主要業務范圍集中在電池制備、組件封裝、光伏發電等環節
- 快報:長時儲能價值將大幅增長
- 天天觀點:雄韜股份擬105億元投建新能源電池產業園
- 熱門看點:80億元!40GWh!比亞迪河南鄭州電池生產線項目環評公示
- 長慶油田公積金貸款流程圖(長慶油田公積金貸款流程)
- 星巴克的咖啡文化是什么?星巴克咖啡公司哪一年成立?
- 微頭條丨星巴克冰粽子要放冰箱嗎?星巴克冰粽子冷藏保質期多久?
- 怎么把視頻下到蘋果手機里?把視頻下到蘋果手機里的步驟有哪些?
- 怎樣洗豬腰子沒味?清洗豬腰子沒味的方法?
- 環球時訊:《中國大案錄》_中國大案錄全集
- 視訊!星巴克logo是誰?星巴克logo怎么來的?
- 世界聚焦:儲能中標丨中核河南安陽獨立共享儲能項目一期PC公示
- 天天微頭條丨qq群怎么上傳文件?qq群上傳文件的步驟?
- 蘇州哪里買絲綢?在蘇州買絲綢的地方有哪些?
- 短訊!四川哪家旅行社比較好?四川有多少家旅行社?
- 即時:河北移動校訊通是什么?河北移動校訊通介紹?
- 長安期貨原油早評:偏弱震蕩,區間偏空短差為主
- 沈陽有哪些旅行社?沈陽十大旅行社排名一覽?
- 熱推薦:國信期貨早評:金銀震蕩調整延續,關注晚間CPI數據
- 【聚看點】黃金市場分析:突破1877美元對升向1885美元阻力至關重要
- 世界速訊:天奇股份:目前公司及子公司未直接持有深圳市優必選科技股份有限公司的股份
- 2月14日匯市觀潮:歐元、英鎊和日元技術分析
- 陜國投A:感謝對我公司的關注與支持!截至2023年2月10日收盤,我公司在冊股東總數為85227戶
- 全球快播:寧波銀行:根據目前政策,我行暫不能在省外地市新開設分行
- 今頭條!配儲15MW/30MWh ,隴西第二批10萬千瓦光伏競配中選結果公示
- 觀焦點:公募基金參與定增熱情高漲 22家公司年內參與總規模近60億元